[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

Return only characters left of first space

Posted on 2011-03-01
16
Medium Priority
?
500 Views
Last Modified: 2013-11-27
I have been all over EE to try to figure this out and I can't. I know this is super easy to do so I apologize for even asking.

Basically, I have a scale hooked up to a com port; you push the print button on the scale and, with the help of WinWedge, it puts whatever the scale reads into whatever active application you want. Problem is that it sends too much info from the scale. I get a string of  "1.034 lb g" as my string. How do I do a Trim(Left) or whatever to return just the weight portion? Since I do a calcuation with the weight I need to lop off the text.

Sorry I have no example to start with as I have no idea what I am doing. Also, if there is a 'good' website that can instruct me on this I would appreciate the link. I have EE'ed and googled extensively and can't find the exact answer. Thanks for any input you can give me.
0
Comment
Question by:G Scott
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 7
  • 4
  • 2
  • +3
16 Comments
 
LVL 28

Assisted Solution

by:omgang
omgang earned 248 total points
ID: 35009732
Left("1.034 lb g", InStr("1.034 lb g", " ")) will return "1.034"

To convery to number you can
CDbl(Left("1.034 lb g", InStr("1.034 lb g", " "))) = 1.034

OM Gang
0
 
LVL 28

Expert Comment

by:omgang
ID: 35009751
In Access VBA Help search for
String functions
quite a bit of information there.
OM Gang
0
 
LVL 96

Expert Comment

by:Lee W, MVP
ID: 35009764
Mystring = left(string, instr(string," "))

Instr tells you where in the string the first instance of the following string appears.
0
What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

 
LVL 28

Expert Comment

by:omgang
ID: 35009772
Actually, I left a space in there.  Should be
Left("1.034 lb g", InStr("1.034 lb g", " ") - 1) will return "1.034"

OM Gang
0
 
LVL 48

Expert Comment

by:Dale Fye
ID: 35009774
if you can store this value as a string, or in a field, you can parse the part to the left of the first space using the Left( ) function, like:

strValue = "1.034 lb g"
Left(strValue, instr(strValue, " ") - 1)

The problem with this is that if there is not space, then instr(strValue, " ") will return 0, and you cannot take the left -1 (0-1) characters of strValue.

another way to approach it is with the Split function which parses a string based on a delimeter, in this case the space, and returns an array.  

varArray = split(strArray, " ")

But you don't have to actually have to save the entire array, you can refer to an element of the array like:

?split(strValue, " ")(0)

Hope this helps
0
 
LVL 37

Expert Comment

by:Neil Russell
ID: 35009799
You can use

SPLIT("1.034 lb g")(0)

0
 
LVL 1

Author Comment

by:G Scott
ID: 35009906
Ok, when I do this:

Dim myString As String
myString = Left("1034 lb f", InStr("1034 lb f", " ") - 1)
MsgBox myString

Open in new window


the MsgBox says "1034". Just like I want. However, when I do this:

 
Dim myString As String
myString = Left(Me.Text0, InStr(Me.Text0, " ") - 1)
MsgBox myString

Open in new window



I even tried this to no avail:

 
Dim myString As String
myString = Left(" & Me.text0 & ", InStr(" & Me.text0 & ", " ") - 1)

MsgBox myString

Open in new window

0
 
LVL 28

Expert Comment

by:omgang
ID: 35009937
What happens when you
Debug.Print Me.Text0
???
0
 
LVL 28

Expert Comment

by:omgang
ID: 35009944
Or
MsgBox Me.Text0
OM Gang
0
 
LVL 1

Author Comment

by:G Scott
ID: 35009947
Ok. so it appears that the character between the weight and the "lb" is not a space. When I changed the code to:

myString = Left(" & Me.text0 & ", InStr(" & Me.text0 & ", ".") - 1)

It returned a "2", So I changed it to:

myString = Left(" & Me.text0 & ", InStr(" & Me.text0 & ", "l") - 1)

and it worked.
0
 
LVL 37

Expert Comment

by:Neil Russell
ID: 35009950
Dim myString As String
myString = SPLIT(me.Text0)(0)
MsgBox myString
0
 
LVL 1

Author Comment

by:G Scott
ID: 35009978
Here is the text directly from the printer:

    2.240 lb  G

How can I tell that there is no space character in there?
0
 
LVL 28

Expert Comment

by:omgang
ID: 35010174
Dim strASCII As String
Dim i As Integer

For i = 1 to Len(Me.Text0)
    strASCII = strASCII & Asc(Mid(Me.Text0, i, 1)) & ";"
Next

MsgBox strASCII


This will display a semicolon seperated list of the ASCII character codes for the string
OM Gang
0
 
LVL 120

Accepted Solution

by:
Rey Obrero (Capricorn1) earned 252 total points
ID: 35010211
try using the val() function if you are just after the numeric values

val("1.034 lb g")  > 1.034

val(" 1.034 lb g")  > 1.034
0
 
LVL 28

Expert Comment

by:omgang
ID: 35010253
<<try using the val() function if you are just after the numeric values>>

Nahh, that's too easy; not enough lines of code............
How come I didn't think of that?
OM Gang
0
 
LVL 1

Author Closing Comment

by:G Scott
ID: 35010545
Thanks for your help everyone!! It's working great.
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Preparing an email is something we should all take special care with – especially when the email is for somebody you may not know very well. The pressures of everyday working life stacked with a hectic office environment can make this a real challen…
You need to know the location of the Office templates folder, so that when you create new templates, they are saved to that location, and thus are available for selection when creating new documents.  The steps to find the Templates folder path are …
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

656 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question