Scan string for "returns"

Hi,
I have a multi lined string and want to put it as list into a listbox (i
did it with a for loop and the "i"attached to the line index of the
"pick line" vi) but now a have let my for loop know how many rounds it
must do! How can scan a multi lined strings for "number of lines"?
Regards Thijs

Thijs,
Use the "Spreadsheet String to Array" function (in string functions). Wire
it as follows:
format string: string constant containing "%s"
spreadsheet string: your string
array type: (empty) array string constant
delimiter: string constant containing enter ("\n" with string in code
display mode)
The output "spreadsheet" is an array with strings that can be wired to the
attribute node of the listbox.
Important notice: \n is not the same as \r ! If your string comes from a
..txt file, this can cause unexpected results!
Regards,
Wiebe Walstra.
AIR technical Automation.
By the way, Thijs. If your in the Nederlands, maybe you'd like to visit our
annual LabVIEW meeting, PierVIEW. This also applies to the rest of the
group. Check out www.air.nl, and follo
w PierVIEW 2001.
AIR technical Automation
www.air.nl
"Thijs Boeree" wrote in message
news:[email protected]..
Hi,
I have a multi lined string and want to put it as list into a listbox (i
did it with a for loop and the "i"attached to the line index of the
"pick line" vi) but now a have let my for loop know how many rounds it
must do! How can scan a multi lined strings for "number of lines"?
Regards Thijs

Similar Messages

  • Is Scan String for Tokens documented correctly?

    I attempted to parse the following string using " as the only delimiter (no operators):
    this "is a test" for "you and me"
    The first call produced: "this " w/o the quotes.
    I expected "is a test" w/o the quotes.
    The documentation says the function will return tokens "surrounded by" delimiters. If this is not a bug, I think the documentation should be improved.
    W. Brown

    Thank you for commenting on the Scan String for Tokens documentation. We will look into this issue and try to make the documentation more clear about how this function works.
    We're constantly striving to improve the documentation, so any specific suggestions you have are welcome. In the future, please send any comments on National Instruments documentation to [email protected] so we can address your concerns in a timely matter.
    Kelly Holmes
    LabVIEW Documentation Team
    Kelly H
    LabVIEW Documentation
    National Instruments

  • VISA and Scan string for tokens

    Hi there,
    I am currently developing a piece of software which needs to take in data from an Arduino board via the serial port and parse the input accordingly.
    I have the 2 pieces of code working perfectly well separately, but I can not seem to figure out why they are not functioning properly together.
    Just now, the input is being retrieved fine and passed into the Scan string for tokens method, but it is not being split on the tokens, it is just outputting the string as a whole.
    The input is in the form of 1:0 2:0 3:1 etc. so I am trying to split it on any spaces found.  If I attach a string to the Scan strings for tokens it works fine, just not when I am attaching the data from the serial port to it.
    Any help would be appreciated.
    Attachments:
    input manipulation.vi ‏16 KB

    Hi,
    In the output which you are getting from the serial port, is there space between 1:0 and 2:0 and 3:1? If there is no space between them, then it wont be able to scan for tokens and will output the whole string. I don't have the hardware here and so don't know what exactly is the output which you are receiving. Try to see in the read buffer indicator whether the tokens are seperated by a space or not.
    I have attached your vi after adding a small part in it. If the problem is with the spacing then this will work fine for 1:0 2:0 3:1.
    Regards,
    Nitzz
    (Give kudos to good Answers , Mark it as a Solution if your problem is Solved) 
    Attachments:
    input manipulation.vi ‏18 KB

  • Scan string for tokens

    Can anyone help me out on how to detect a new line using the scan string for tokens function? I am using the "\n" delimiter but it is not working
     

    Syntyche wrote:
    I opened a text file and display it on string indicator. The following is an example of my text file
    START
    SETMASS 5
    WAIT 5s
    SETVELOCITY 10
    WAIT 3s
    END
    So what I want to do is to obtain the string line by line.
    I am thinking I can use scan string for tokens with delimeter \n.
    So if i put this in while loop, in the first iteration, I would want the ouput to be START
    Second iteration: SETMASS 5
    Third iteration WAIT 5s. and etc....
    In C programming i believe this can be done by using strtok. So i want to have a similar function.
    See James' post above, which is what I was hinting at when I said it could be less complicated.  And that's why I asked WHAT you were trying to do, instead of HOW.  In this latest post, you show WHAT you wanted to do, and doing that in the first place would have made the thread a lot shorter. 

  • "Scan String For Tokens" weird behaviour

    I am trying to carry out the simple task of getting a string with
    comma delimiters and produce a string_array with the values in between
    the commas; this would simplify calling the different parts of the
    string.
    Example:
    INPUT: this,is,an,example
    OUTPUT: this|is|an|example (this would be an array of strings)
    Using a while loop with the two VI "Scan String For Tokens" and
    "Insert to array" should be enough to carry this task. I started
    using a FOR loop as the number of tokens I´ll be using is fixed.
    However I wanted to make the subVI more general by allowing any
    #tokens in the input string and using the token index with a WHILE
    loop to do this. The "token index" output from the "Scan String For
    Tokens" is said to be use
    d in a while loop to process the whole
    string.
    However,I´m getting -1 as an output even if I´ve got more tokens left
    and the while loop therefore exits.
    What am I doing wrong?
    Should I use -2 as the comparison to decide whether I´m at hte end or
    not of the string?
    Cheers and TIA

    Check the offset for -1, not the token index. (See attached image). If course if this is a multiline string, the you also need /n etc as delimiter.
    If the string ends in a delimiter, you need to clip the last array element. I usually use "reshape array" with the output from [n] as input.
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    ScanForTokens.gif ‏17 KB

  • Scan string for computer user name

    Good morning NI Forums,
    I need direction on a file path scan. I'm trying to get to the user name on any system, primarily XP or 7. I'd like to compare the user name from the "Get System Directory" VI with a constant user name.This way I can pass that to a case structure and close LabVIEW if the computer is logged into the wrong user (there are network read/write permissions which is why I need to control where the program isrun from). Any suggestions for the format string constant or maybe a better mouse trap?
    I've attached my VI for reference.
    Thanks!
    Tyler C. | Certified LabVIEW Associate Developer
    Solved!
    Go to Solution.
    Attachments:
    Check Computer Name.vi ‏12 KB

    I don't have LV2011.
    Have you seen this Knowledgebase article?
    Programmatically Retrieving a Windows User Name in LabVIEW
    Now is the right time to use %^<%Y-%m-%dT%H:%M:%S%3uZ>T
    If you don't hate time zones, you're not a real programmer.
    "You are what you don't automate"
    Inplaceness is synonymous with insidiousness

  • Scanning string for uppercase letters

    Hey guys just a simple question that i'm stuck on. im working on a program and i need to scan a string to see if it has uppercase letters. the only thing i know about that even seems helpful is isUppercase but im not sure how i'd use it. i'm basically generating a sentence form categories which are in uppercase and need to expand the sentence as long as there are categories left. id appreciate any help! Thanks!

         String  ts = "i Have a capital";
         boolean hc = false;
         for (int i=0; i < ts.length(); i++)
              if (Character.isUpperCase(ts.charAt(i)))
                   hc = true;
                   break;
         System.out.println(""+hc);

  • Scan String Token Problem with leading Tokens

    Hi, I'm using the scan string for token to read in a string of tokens that contain a leading "*" char in front of each string and terminates when the token index = -2. This works great if I have say *12345*1234 and so forth, but if there is bad data, say 1234 without the leading "*" in front, the token index return value is still -1 and it returns data which I read in thinking it found the "*". Maybe I shouldn't use the string for token function since it's probably just designed for ending tokens and not data with leading tokens. Is there a way to make this work properly or should I use another method to search for leading tokens in a string?
    Thanks.
    Solved!
    Go to Solution.

    Here.  Try this one.  It does the same thing and uses exposed functions.
    The string functions look for something to mark the end of a string.  All languages that I know of do this.  So, like I said, remove the first element.  I recommend the Subarray function with the index set to 1 and length unwired.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines
    Attachments:
    Parse Message.png ‏10 KB

  • String of letters to 1-D Array of strings for spreadsheet

    What I would like to do is be able to take this string as it is the A's and B's that are being generated as the program runs,
    I would like to take this string and get it into file in delimited tabs just as the numbers are. If there is a created 1-D array of
    strings that works, but that is controlled on the front panel, I would like to create this from data that is comming in. In other words
    I am stuck on how to create a 1-D array of Sting from the string value comming in. I want to do this so that I can get all the different
    values A's or B's into the different tab fields. As it is they are comming all up in the first column and not "tabbing" Please see the
    attached file in the rows 5 an
    d 7.
    Thanks,
    Brian
    Attachments:
    Array_of_strings_to_spreadsheet2.vi ‏28 KB
    Turn_data1.xls ‏1 KB

    Brian
    You need to convert your string to contain single tabs as separator. The problem is that your string is "dirty", i.e. it contains a variable amount of spaces to seperate the items. If you strictly had single space separators, you could just replace all spaces with tabs.
    "Scan string for tokens" by default does not allow empty tokens, thus takes care of the multiple spaces.
    The attached simplified code assumes a fixed number of items (12), if this is a variable, you need to use a while loop and sense the end of the input string. Let me know if this is clear.
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    StringToArrayofstringsToSpreadsheetstring.vi ‏21 KB

  • Labview novice with a question about scanning strings

    Hello, I'm a research assistant tasked with taking data received via TCP-IP and plotting it. I've had a couple of problems, probably because I've never used Labview before.
    The data is sent in sets of six values separated using semicolons as delimiters, for example
    "0.086842;0.00020341;0.00039838;-0.14057;-0.12614;​-0.1327;" is one such data set
    Receiving these strings through TCP connection is working just fine, however I just noticed that after passing a string such as my example into a 'Scan String for Tokens' block, the negative signs are dropped from the latter three values. I assumed it has something with setting '-' as an operator, but simply wiring negative sign in as an operator didn't change anything. I know there has to be a way to retain my negative signs, but I can't figure it.

    Is this what you need?
    Attachments:
    SNAG-002.jpg ‏91 KB
    SNAG-003.jpg ‏20 KB

  • Maximum length of query string for functions return a SELECT

    Hi all,
    I have a report that gets it's SELECT statement from a function, instead of being coded into the region. All was well but I suspect now I'm blowing some kind of limit as I'm getting an error :
         ORA-06502: PL/SQL: numeric or value error
         Error      ERR-1101 Unable to process function body returning query.
    However if I run the procedure out of ApEx and grab the SELECT statement then it works fine. The length of the query is 8636 bytes (yup, it's a beauty!).
    Does anyone know if there is a hard limit to the size of the string that can be returned?
    I'm using ApEx 3.1.
    Thanks,
    Steve H

    I do have a similar painfull scenario - Although my query length is very less i.e 618 bytes only.
    I have defined a stored function, which returns an SQL query string, this return SQL string executes fantastic but when I tried to to call this function from a APEX report it gives error. the details are as follows. Please help.......
    The function code:
    CREATE OR REPLACE function PROD."TEST_C_QRY"
    return VARCHAR2
    is
    msql VARCHAR2(32767);
    Begin
    msql:='Select null,statusname,AgeInd, ';
    For m_stat in (select statusname from a02_status)
    loop
    msql:= msql || q'[decode(statusname,']';
    msql:= msql || m_stat.statusname;
    msql:= msql || q'[',count(id),0) ]';
    msql:= msql || m_stat.statusname|| ',';
    end loop;
    msql:=rtrim(msql,',');
    msql:= msql||' from ';
    msql:= msql||'( ';
    msql:= msql||'select a.id, round(sysdate-a.registeredon) TimeSpan,';
    msql:= msql||'case ';
    msql:= msql||q'[when round(sysdate-a.registeredon)<=7 then 'Week' ]';
    msql:= msql||q'[when round(sysdate-a.registeredon)>7 and round(sysdate-a.registeredon)<14 then 'Fortnight' ]';
    msql:= msql||q'[when round(sysdate-a.registeredon)>14 and round(sysdate-a.registeredon)<30 then 'Month' ]';
    msql:= msql||q'[else 'More...'  end ageind,]';
    msql:= msql||'a.status_id,b.statusname ';
    msql:= msql||'from a02_task a,a02_status b ';
    msql:= msql||'where b.id=a.status_id) ';
    msql:= msql||'group by statusname,AgeInd;';
    return msql;
    end TEST_C_QRY;
    The Output SQL comes from this is
    SQL> Select null,statusname,AgeInd, decode(statusname,'Scheduled',count(id),0) Scheduled,decode(statusname,'Executing',count(id),0) Executing,decode(statusname,
    'Completed',count(id),0) Completed from ( select a.id, round(sysdate-a.registeredon) TimeSpan, case when round(sysdate-a.registeredon)<=7 then 'Week' when round
    (sysdate-a.registeredon)>7 and round(sysdate-a.registeredon)<14 then 'Fortnight' when round(sysdate-a.registeredon)>14 and round(sysdate-a.registeredon)<30 then
    'Month' else 'More...' end ageind, a.status_id,b.statusname from a02_task a,a02_status b where b.id=a.status_id) group by statusname,AgeInd;
    The result that comes when I execute the above resultant SQL is as follows.
    N STATUSNAME AGEIND SCHEDULED EXECUTING COMPLETED
    Completed More... 0 0 4
    Completed Week 0 0 1
    Scheduled Week 1 0 0
    Completed Month 0 0 3
    Executing More... 0 1 0
    Executing Month 0 6 0
    Scheduled More... 1 0 0
    7 rows selected.
    But the surprising error that comes from Oracle XE when I use the following code for stacked bar chart
    Code:
    begin
    return TEST_D_QRY;
    end;
    Error thrown by XE report builder is as follows:
    1 error has occurred
    Failed to parse SQL query!
    Select null,statusname,AgeInd, decode(statusname,'Scheduled',count(id),0) Scheduled,decode(statusname,'Executing',count(id),0) Executing,decode(statusname,'Completed',count(id),0) Completed from ( select a.id, round(sysdate-a.registeredon) TimeSpan, case when round(sysdate-a.registeredon)<=7 then 'Week' when round(sysdate-a.registeredon)>7 and round(sysdate-a.registeredon)<14 then 'Fortnight' when round(sysdate-a.registeredon)>14 and round(sysdate-a.registeredon)<30 then 'Month' else 'More...' end ageind, a.status_id,b.statusname from a02_task a,a02_status b where b.id=a.status_id) group by statusname,AgeInd;
    Certain queries can only be executed when running your application, if your query appears syntactically correct, you can save your query without validation (see options below query source).
    Regards,
    Soumen

  • How to code a method that returns string for class object

    I have a class named Address.
    public class Addresss{   
    private String street;   
    private String city;            // instance variables  
    private String zipcode;}I have been asked to write a method that returns a string for Address object. I dont understand how to create address object.Can anyone pls help me understand.
    do I have to write (for creating object)
    Address addressObject  = new Address(); ( coding method that returns a string for address object) ---> I really dont understand this part.

    looks almost right. The problem is that your method name AddressBookEntry does not match the name of your class AddressBook and therefore is not a constructor.
    Furthermore, you probably need to make a distinction between a single entry into the address book which consists of a single name and a single address, (which is just what you have done) and an address book itself which is probably a list of AddressBookEntries
    So for your code I would change the class that you called "AddressBook" to "AddressBookEntry" and have a third class that represents the collection of AddressBookEntries.
    Now to be honest, I don't know why you keep the name split apart from the street address portion of the address. I would be more inclined to keep the name as a field of the address itself, but it's your code, you carve it up the way you like.

  • F5 Big IP 4000 Send /Return String for Exchange 2013

    Hi,
    I need to Implement F5 Big IP 4000 and need to set send / return string for Exchange 2013 server for OWA monitoring... Can anyone help me with Exact output String.
    Amit

    Hi,
    In the Send String box enter in GET /owa/healthcheck.htm.  In the
    Receive String box, enter in 200 OK.
    Here is a related article for your reference.
    http://port25guy.com/2013/07/24/how-to-use-managed-availability-in-exchange-2013-with-your-load-balancer/
    Note: Microsoft is providing this information as a convenience to you. The sites are not controlled by Microsoft. Microsoft cannot make any representations regarding the quality, safety, or suitability of any software or information found there. Please make
    sure that you completely understand the risk before retrieving any suggestions from the above link.
    Hope this is helpful to you.
    Best regards,
    Belinda Ma
    TechNet Community Support

  • How to use multiple VCI strings for lap 1300 and 1200 (option 60) in one pool?

    Hi All,
    Hope to you a very happy new year,
    I have two differnt LAP 1300 and 1200 in my network and I need to add theme to the WLC,
    I successed to add one of theme by the option 60 in the DHCP pool at the Core SW,
    So my quetion is below:
    How to use multiple VCI strings for lap 1300 and 1200 (option 60) in one pool?
    Thanks in Advanced,
    Ahmed,

    To add to Scott's post.  Option 60 would be useful if you needed to put certain types of AP on specific controllers.  Otherwise, no real need to use it for the most part.
    Though, I do recall an issue a few years ago that some windows machines had issues getting DHCP if option 43 is being returned.
    Now, on an IOS switch, you can only configure one option 60 per DHCP scope
    HTH,
    Steve
    Please remember to rate useful posts, and mark questions as answered

  • Formatting a Double to a String for Swing output

    Hi, I'm new to Java and I'm working on a project with AWT & Swing. I'm trying to read in a user entered number, convert it to a double, work on it and then output the String value of the result with only two decimal places. The code I have is:
    public void actionPerformed(ActionEvent e)
    double result = 99;
    double temp;
    DecimalFormat newTemp = new DecimalFormat("#,###.00");
    if (e.getSource() == bConvert1)
    temp = (Double.parseDouble(tTemp1.getText().trim()));
    result = (temp*1.8)+32;
    newTemp.format(result);
    tResult1.setText(String.valueOf(result));
    else if (e.getSource() == bConvert2)
    temp = (Double.parseDouble(tTemp2.getText().trim()));
    result = (5.0/9)*(temp-32);
    newTemp.format(result);
    tResult2.setText(String.valueOf(result));
    This is working for some values, but for some values entered, the result displayed is just the remainder.

    The reason it doesn't always work could be because DecimalFormat (for reasons known only to Sun) uses ROUND_HALF_EVEN...
    This means that you will have to round the value to the number of decimal places you require before calling format()
    I use something like the following formatter class
    class Formatter {
      public static final int DEFAULT_PRECISION = 2;
      public static final String DEFAULT_PATTERN = "#.00";
      public static final String ZEROS = "0000000000000000";
      public static String convertDoubleToString(Double d) {
        return convertDoubleToString(round(d, DEFAULT_PRECISION), DEFAULT_PATTERN);
      public static String convertDoubleToString(double d) {
        return convertDoubleToString(round(d, DEFAULT_PRECISION), DEFAULT_PATTERN);
      public static String convertDoubleToString(Double d, int precision) {
        return convertDoubleToString(round(d, precision), "#." + ZEROS.substring(precision));
      public static String convertDoubleToString(double d, int precision) {
        return convertDoubleToString(round(d, precision), "#." + ZEROS.substring(precision));
      public static String convertDoubleToString(Double d, String pattern) {
        return new DecimalFormat(pattern).format(d.doubleValue());
      public static String convertDoubleToString(double d, String pattern) {
        return new DecimalFormat(pattern).format(d);
      private static final double round(Double d, int precision) {
        double factor = Math.pow(10, precision);
        return Math.round((d.doubleValue() * factor)) / factor;
      private static final double round(double d, int precision) {
        double factor = Math.pow(10, precision);
        return Math.round((d * factor)) / factor;
    }

Maybe you are looking for

  • HT4711 Where can I buy iPhoto for Mac OS X 10.6.8?

    Where can I buy iPhoto for Mac OS X 10.6.8?

  • Indesign CS5 7.0.4 crash on OS X Lion 10.7.2

    Hi folks, I need some help determining the issue for a constantly crashing Indesign CS5 7.0.4 (English) on OS X Lion 10.7.2. I have submitted the crash log to Pastebin: http://pastebin.com/PGtMjjAU. It seems that the crash occurs when Indesign calls

  • Report Painter Formatting

    Guys, I have designed a profit center report using library 0FL in report painter.its working fine, but I have problem in formatting.I wanted to make the lines appear in BOLD font.I tried "color for emphasis".it didn't work,then I checked color for to

  • Content Server link in CV01N

    Dear All, I was in the process of configuring content server for an ECC 6.0. I had installed the content server version 4.6 in a separate system and its working well. Then i finished all the configurations relating to creation of repository and linki

  • Mountain Lion won't display wacom cintiq screen

    Since mountain lion is installed, I experienced the problem a lot of people had : the express key lags on cintiq 21UX 2010. But I didn't have the time to fix it. Now the cintiq as second screen can't be displayed. After running all dignosis recommand