Creating string array constant

Hey, this is probably a stupid question but I am still trying to figure out everything in LabVIEW. Is there a way to create an array constant that holds strings? I know you can define an numerical array constant but can you also do one for strings, or do I just have to pass multiple text fields into a "build array" function.
Thanks,
Paul

Another tip:
Many times, you already have a function on the diagram that expects an array of strings (or whatever you specifically need), so the easiest is to right-click the connector and select "create constant". You will get an diagram constant of the default type for that input or output terminal.
LabVIEW Champion . Do more with less code and in less time .

Similar Messages

  • String Array Constant Addition

    Is there an elegant way of marking the last element in a string array
    constant? i.e. I take an Array constant, and add a simple string to it,
    so that it becomes a String Array Constant. Now I add elements 1 and 2
    and 3. But now I want to take element 3 out. If I just delete Element 3
    contents from the string control, that is fine, but the # of Array
    elements is still 3. It is just that the 3rd elelment is null. How can I
    make the array length 2? Now I know that starting over is one option
    (just creat a new array constant, and add the two elements) but what if
    my array constant has 100 elements and I want to make it 99. I also
    know that programatically I can remove these elelents, but I am taking
    about in the programming of th
    is constant. I must be over looking
    something... Any ideas???
    Sent via Deja.com http://www.deja.com/
    Before you buy.

    [email protected] wrote:
    > Is there an elegant way of marking the last element in a string array
    > constant? i.e. I take an Array constant, and add a simple string to it,
    > so that it becomes a String Array Constant
    Arrays must be all the same type. If the last element is a constant, all
    elements are
    > Now I add elements 1 and 2
    > and 3. But now I want to take element 3 out. If I just delete Element 3
    > contents from the string control, that is fine, but the # of Array
    > elements is still 3. It is just that the 3rd elelment is null.
    In a string, yes, Empty strings are essentially nulls.
    > How can I
    > make the array length 2? Now I know that starting over is one option
    > (just creat a new array constant, and add the two elements) but what if
    > my array cons
    tant has 100 elements and I want to make it 99. I also
    > know that programatically I can remove these elelents, but I am taking
    > about in the programming of this constant. I must be over looking
    > something... Any ideas???
    This is one of my problems. It is easy to size an array up, but hard to size
    down.
    Of course you can resize at run time but the only way I know to do this
    when editing is to start over.
    Kevin Kent
    Attachments:
    Kevin.Kent.vcf ‏1 KB

  • How to declare and initialize a STRING ARRAY (assign strings to array elements)

    How to declare and initialize a STRING ARRAY (assign desired strings to elements of an array, for example "abc", "def", "ghi", "jkl", etc.) in LabVIEW? I saw a "string array" block in help, but could not find it in the function palette. Does a spreadsheet string have to be in a file (or can it be in a string constant block)? Thank you.

    Hi,
    you can do it in several ways:
    1. Direct way: Create string array control on front panel and type strings in its elements
    2. Programmatically 1: Create string array indicator (or local variable of control), right click on it in block diagram, select "Create constant" from drop down menu. The array constant will appear. Now type values in this constant's strings
    3. Programmatically 1: Use "Build array", "Replace array subset", "Insert into array" or "Initialize array" functions from "Functions->Array" palette.
    And of course you can combine all of these methods.
    Good luck.
    Oleg Chutko.

  • How to create a string array?

    Thanks!

    Use Create Array, Build Array, an array constant on the block diagram or front panel, for loop, etc. The best way depends on what the heck you're actually trying to accomplish. I suggest you provide some more details and maybe take a class or on-line tutorial. Info on leaning LabVIEW can be found here.

  • "Using a CIN to Create an Array of Strings in LabVIEW" example crashes LV on Linux

    Tried to utilize this NI example: "Using a CIN to Create an Array of Strings in LabVIEW" (http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=B4B282BE7EF907C8E034080020E74861&p_node=&p_source=External)
    Compiles OK with the makefile made by the LV's lvmkmf utility. Nevertheless when I try to run the VI (with the code loaded into the CIN, of course), LabVIEW 7.1.1 on a SUSE 9.3 Linux machine crashes:
    LabVIEW caught fatal signal
    7.1.1 - Received SIGSEGV
    Reason: address not mapped to object
    Attempt to reference address: 0x0
    Segmentation fault
    Any ideas? Did anybody try this on a Windows machine?

    H View Labs wrote:
    Tried to utilize this NI example: "Using a CIN to Create an Array of Strings in LabVIEW" (http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=B4B282BE7EF907C8E034080020E74861&p_node=&p_source=External)
    Compiles OK with the makefile made by the LV's lvmkmf utility. Nevertheless when I try to run the VI (with the code loaded into the CIN, of course), LabVIEW 7.1.1 on a SUSE 9.3 Linux machine crashes:
    LabVIEW caught fatal signal
    7.1.1 - Received SIGSEGV
    Reason: address not mapped to object
    Attempt to reference address: 0x0
    Segmentation fault
    Any ideas? Did anybody try this on a Windows machine?
    This code is badly broken. In addition to resizing the actual handle to hold the number of string handles you also would need to create the string handles itself before attempting to write into them. NumericArrayResize is the fucntion to use as it will either resize an existing handle (if any) or create a new one if the value is uninitialized (NULL).
    /* resize strarr to hold handles to NUMSTRINGS strings */
    err = SetCINArraySize((UHandle)strarr, 0, NUMSTRINGS);
    if (err)
    goto out;
    /* perform this loop once for each element */
    /* of array of strings being created */
    for (i = 0; i < NUMSTRINGS;) {
    LStrHandle handle = (*strarr)->arg1[i];
    /* determine length of string that will be element of strarr */
    strsize = StrLen(str[i]);
    err = NumericArrayResize(uB, 1, &handle, strsize);
    if (err)
    goto out;
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    /* moves strsize bytes from the address pointed to */
    /* by str[i] to the address pointed to by the data pointer in the handle */
    MoveBlock(str[i], LStrBuf(*handle), strsize);
    /* manually set size of string pointed to by *strarr */
    (*((*strarr)->arg1[i]))->cnt = strsize;
    /* manually set dimSize of strarr */
    (*strarr)->dimSize = ++i;
    return noErr;
    out:
    return err;
    Rolf KalbermatterMessage Edited by rolfk on 06-30-2005 03:15 AM
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • How to create an array list of strings by using buttons?

    HI, i need some guidance from you guys to help me out. How do i create a list of array whenever i click on a button it will generate a string and place it in an array row by row. if i dont click on the button it will ignore it and wont create the array. i have tried many technics such as looping and building array but it wont generate the list that i want.
    Attachments:
    untitled.JPG ‏97 KB

    I am not sure if I have understood your question correctly, but is the attached what you were looking for?
    Adnan Zafar
    Certified LabVIEW Architect
    Coleman Technologies
    Attachments:
    Example.vi ‏12 KB
    example.JPG ‏100 KB

  • Creating String frm new String(charBuffer.array()) Vs charBuffer.toString()

    Whats the difference in creating String from CharBuffer by using array and by using toString() ?
    When ever i have some UTF-8 chars in my file (""someFile"), String created from new String( charBuffer.array()) appends some extra null/junk charaters at the very end of the file.
    How ever when i try charBuffer.toString() its working fine.
    For simple ASCII i.e ISO-*** charset both methods are working fine.
    Please see below code for reproducing. Here "someFile" is any text file with some UTF-8 characters.
    public char[] getCharArray()
    throws IOException
    Charset charset = Charset.forName("UTF-8");
    CharsetDecoder decoder = charset.newDecoder();
    FileInputStream fis = new FileInputStream("someFile");
    FileChannel channel = fis.getChannel();
    int size = (int) channel.size();
    MappedByteBuffer mbb = channel.map(FileChannel.MapMode.READ_ONLY, 0 , size);
    CharBuffer cb = decoder.decode(mbb);
    channel.close();
    fis.close();
    return cb.array();
    public String getAsString()
    throws IOException
    Charset charset = Charset.forName("UTF-8");
    CharsetDecoder decoder = charset.newDecoder();
    FileInputStream fis = new FileInputStream("someFile");
    FileChannel channel = fis.getChannel();
    int size = (int) channel.size();
    MappedByteBuffer mbb = channel.map(FileChannel.MapMode.READ_ONLY, 0 , size);
    CharBuffer cb = decoder.decode(mbb);
    channel.close();
    fis.close();
    return cb.toString();
    String fromToString = getAsString();
    String fromCharArray = new String(getCharArray());

    Whats the difference in creating String from CharBuffer by using array and by using toString() ?array() returns the entire backing array regardless of offset and position. toString() takes those into account.
    When ever i have some UTF-8 chars in my file (""someFile"), String created from new String( charBuffer.array()) appends some extra null/junk charaters at the very end of the file.More probably you haven't filled the array.
    How ever when i try charBuffer.toString() its working fine.So there you go.

  • How to dynamically create a JSF dataTable from a String[][] array

    Hi, I�m developing an application that uses columns, rows and data instead of any other attributes, so I got from a database Resultset a String[] array with the rows headers, other String[] array with the columns headers, and a String[][] array with the information between every row[] and column[] header al this String arrays depend on a method that receives the group title as a parameter so they are dynamically created, anyway I can display this information in a jsp page but I don�t know how to display this information in a JSF dataTable.
    Does anybody knows how I could do this? and which is the proper way to create a dynamically rows and columns dataTable?

    Hi, I�m developing an application that uses columns, rows and data instead of any other attributes, so I got from a database Resultset a String[] array with the rows headers, other String[] array with the columns headers, and a String[][] array with the information between every row[] and column[] header al this String arrays depend on a method that receives the group title as a parameter so they are dynamically created, anyway I can display this information in a jsp page but I don�t know how to display this information in a JSF dataTable.
    Does anybody knows how I could do this? and which is the proper way to create a dynamically rows and columns dataTable?

  • Creating an Array of Strings

    Does anyone know how to create an array of three strings? I need to then prompt a user for the three strings and enter them into the array...No idea how to code this at all.

    i'm not quite sure about your problem,anyway i've posted a snippet hope this helps,if not explain in detail.. :)
    import java.io.*;
    class ts{
         public static void main(String as[]) throws Exception{
              int j=3;//no of strings to be inputted i.e 3 in ur case
              String sArray[]=new String[j];
              for(int i=0;i<j;i++){
              BufferedReader reader = new BufferedReader
             (new InputStreamReader(System.in));
              System.out.println("Enter name"+(i+1));
              sArray[i] = reader.readLine();
              for(int i=0;i<j;i++){
                   System.out.println("array name"+(i+1)+" = "+sArray);

  • How to avoid NullPointerException---String array created from JTextArea

    Hi,
    I use the method getText() to put the contents of a JTextArea into a String object. Then I use split("\\s+") on that String object to get a String array. Before the contents of the String array are output, I get a NullPointerException. How do I avoid this exception? My code is below.
    //: net/mindview/util/SwingConsole.java
    package net.mindview.util;
    import javax.swing.*;
    public class SwingConsole {
      public static void
      run(final JFrame f, final int width, final int height) {
        SwingUtilities.invokeLater(new Runnable() {
          public void run() {
            f.setTitle(f.getClass().getSimpleName());
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setSize(width, height);
            f.setVisible(true);
    } ///:~
    //: gui/Charts.java
    package gui;
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    import java.awt.event.*;
    import net.mindview.util.SwingConsole;
    public class Charts extends JFrame {
        private int[] numbers;
        private JTextArea input = new JTextArea();
        private JScrollPane areaScrollPane = new JScrollPane(input);
        private JButton b1 = new JButton("Submit");
        private JButton b2 = new JButton("Clear");
        public Charts() {
            add(areaScrollPane);
            areaScrollPane.setPreferredSize(new Dimension(250, 250));
            b1.addActionListener(a1);
            b2.addActionListener(a2);
            add(b1);
            add(b2);
        private ActionListener a1 = new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String data = input.getText();
                String[] stringArray = data.split("\\s+");
                for (String s:stringArray)
                    System.out.print(s + " ");
                int i = 0;
                for (String s:stringArray)
                    numbers=Integer.parseInt(s);
    i++;
    private ActionListener a2 = new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    input.setText("");
    * @param args the command line arguments
    public static void main(String[] args) {
    // TODO code application logic here
    SwingConsole.run(new Charts(), 400, 400);
    Edited by: gluedtothecomputer on Feb 1, 2009 7:59 PM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    don't forget to init your int array:
          String[] stringArray = data.split("\\s+");
          numbers = new int[stringArray.length];

  • How to create an array of a cluster?

    Hello!
    Now we need some help or tip again :-) We have an array of strings coming out from a for-loop. We want to pick this array in peaces and get the string-elements out. These elements we want to get into a cluster together with boolean constant. Of this cluster we then want to create an array. The problem is that we do not know how to overcome the trouble with data-types and for-loopes... *scratching our head...* Anyone? Thank you

    Hello Ex-jobb,
    have a look at my example. I included a second way to build your array of cluster.
    The string generation at the left of the diagram is to simulate your text file reading, it also gives you an array of strings.
    This array is in the upper part converted by using autoindexing of an for-loop. In the lower part I used just an "Index Array" with
    "Build cluster" and "build array".
    Hope this helps,
    GerdW
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome
    Attachments:
    ArrayOfCluster.vi ‏29 KB

  • Error : Array constants can only be used in initializers

    Hello All,
    I am using tableview model and declared two-dimensional array.
    Getting error Array constants can only be used in initializers in the line retVal<i>[j] =  {  {  createBy,desc,dispName }  };
    String[][] retVal;
    retVal = new String[20][20]
    //Fetching IResorce propeties here
    int resourceCounter = 0;
    for (int i = 0; i < list.size(); i++) {
       for (int j = 0; j < i; j++) {
          IResource ir = list.get(i);
          createBy = ir.getCreatedBy();
          desc = ir.getDescription();
            dispName = ir.getDisplayName();
         retVal<i>[j] =  {  {  createBy,desc,dispName }  };
         resourceCounter++;
    return retVal;
    Please help me out.
    Thanks
    Risha                              }

    I created ArrayList 
    static public String[] colnames =
                   "News Title",
                   "Short Description",
                   "Published",
                   "Valid To",
                   "Read Count",
                   "Users Details",
                   "Reply" };
         public ArrayList createData() {
               ArrayList rowArrList = new ArrayList();
              ArrayList tableArrList = new ArrayList();
              String createBy = null;
              String desc = null;
              String dispName = null;
              String lastMod = null;
              String name = null;
              String resType = null;
              try {
                   com.sapportals.portal.security.usermanagement.IUser user = null;
                   user = WPUMFactory.getUserFactory().getEP5User(request.getUser());
                   IResourceContext resourceContext = new ResourceContext(user);
                   String path = "/documents/Australia/News";
                   RID rid = RID.getRID(path);
                   com.sapportals.wcm.repository.IResource res =
                        ResourceFactory.getInstance().getResource(rid, resourceContext);
                   IProperty prop = null;
                   String propValue = null;
                   PropertyName propName = null;
                   if (res != null) {
                        if (res.isCollection()) {
                             ICollection collection = (ICollection) res;
                             IResourceList list = collection.getChildren();
                             int resourceCounter = 0;
                             for (int i = 0; i < list.size(); i++) {                              
    //                              for (int j = 0; j < i; j++) {
                                       IResource ir = list.get(i);
                                       createBy = ir.getCreatedBy();
                                       desc = ir.getDescription();
                                       dispName = ir.getDisplayName();
                                       lastMod = ir.getLastModifiedBy();
                                       name = ir.getName();
                                       resType = ir.getResourceType();
                                       rowArrList.add(createBy);
                                       rowArrList.add(desc);
                                       rowArrList.add(dispName);
                                       rowArrList.add(lastMod);
                                       rowArrList.add(name);
                                       rowArrList.add(resType);
                                       tableArrList.add(i,rowArrList);
                                  //}//Inside for loop
                             }//First for loop
                        }//Inside If
              } catch (ResourceException e) {
                   // TODO Auto-generated catch block
                   response.write("Error " + e.getMessage());
              } catch (UserManagementException ex) {
                   ex.printStackTrace();
                   response.write("Error " + ex.getMessage());
              return tableArrList;
          * Constructor.
         public TableViewBean() {
              ArrayList tabArr = createData();
              String[][] data = (String[][])tabArr.toArray();          
              model = new DefaultTableViewModel(data, colnames);
    Edited by: Risha on May 26, 2011 8:52 AM

  • Can't create an array of WebBrowser​s

    I drop an array constant down (and I tried this with a cluster also) and I try to add a WebBrowser into it but it won't take it.  The web browser is in the .Net and ActiveX pallete - if you hover over it, its type says SHDocVw.IWebBrowser2.  I was hoping to have an array of webBrowsers because (as I've mentioned in numerous other threads) I need to talk via secure (TLSV1) link to numerous radios - each will have a different IP address, and would need their specific html (or xml in some cases) data displayed on its specific browser.  I would then process that radio's specific data.  I could probably create X (upto 32) instantiations of my EXE (that currently has one webBrowser), but that seems extremely difficult to manage.  I did see that I can have a tab control with numerous tabs (say 32) and have a web browser on each.  I currently (for one webBrowser) get its Document property, its body, then its inner text, and if that string length is > 0 then there is something there.  This isn't a very reliable method of detecting a message has arrived, so I'm open to suggestions.  Regardless, I would need a way to know which of my 16 (or maybe 32) web servers received data, and process that message accordingly.   I thought of somehow incorporating an object-oriented approach such that everytime a new radio was desired, a new object would be created to support all its properties/methods - this is somewhat uncharterd territory, however.

    Hi mrbean,
    instead of creating a lot of instances of your program, you can create a vi template with one activex browser in it and create as many instances as you need.
    Hope it helps.
    Mike

  • How do you create an array without using a shell on the FP?

    I want to be able to read the status of front panel controls (value, control box selection, etc.) and save it to a file, as a "configuration" file -- then be able to load it and have all the controls set to the same states as were saved in the file. I was thinking an array would be a way to do this, as I have done that in VB. (Saving it as a text file, then reading lines back into the array when the file is read and point the control(s) values/states to the corresponding array element.
    So how do I create an array of X dimensions without using a shell on the front panel? Or can someone suggest a better way to accomplish what I am after? (Datalogging doesn't allow for saving the status by a filename, so I
    do not want to go that route.)

    Thanks so much m3nth! This definitely looks like what I was wanting... just not really knowing how to get there.
    I'm not sure I follow all the icons. Is that an array (top left with 0 constant) in the top example? And if so, that gets back to part of my original question of how to create an array without using a shell on the FP. Do I follow your diagram correctly?
    If I seem a tad green... well I am.
    I hope you understand the LabVIEW environment and icons are still very new to me.
    Also, I had a response from an NI app. engineer about this problem. He sent me a couple of VI's that he threw together approaching this by using Keys. (I still think you are pointing to the best solution.) I assume he wouldn't mind m
    e posting his reply and the VI's for the sake of a good, thorough, Roundtable discussion. So here are his comments with VI's attached:
    "I was implementing this exact functionality this morning for an application I'm working on. I only have five controls I want to save, but they are all of different data types. I simply wrote a key for each control, and read back that key on initialization. I simply passed in property node values to the save VI at the end, and passed the values out to property nodes at
    the beginning. I've attached my initialize and save VI's for you to view. If you have so many controls that this would not be feasible, you may want to look into clustering the controls and saving the cluster as a datalog file.
    Attachments:
    Initialize_Settings.vi ‏55 KB
    Save_Settings.vi ‏52 KB

  • How to add elements into java string array?

    I open a file and want to put the contents in a string array. I tried as below.
    String[] names;
    s = new Scanner(new BufferedReader(new FileReader("outfile.txt")));
    while (s.hasNext()) {
                    String item = s.next();
                    item.trim();
                    email = item;
                    names = email;
                }But I know that this is a wrong way of adding elements into my string array names []. How do I do it? Thanks.

    Actually you cannot increase the size of a String array. But you can create a temp array with the lengt = lengthofarray+1 and use arraycopy method to copy all elements to new array, then you can assign the value of string at the end of the temp array
    I would use this one:
    String [] sArray = null;
    s = new Scanner(new BufferedReader(new FileReader("outfile.txt")));
    while (s.hasNext()) {
        String item = s.next();
        item.trim();
        email = item;
        sArray = addToStringArray(sArray, email);
    * Method for increasing the size of a String Array with the given string.
    * Given string will be added at the end of the String array.
    * @param sArray String array to be increased. If null, an array will be returned with one element: String s
    * @param s String to be added to the end of the array. If null, sArray will be returned.(No change)
    * @return sArray increased with String s
    public String[] addToStringArray (String[] sArray, String s){
         if (sArray == null){
              if (s!= null){
                   String[] temp = {s};
                   return temp;
              }else{
                   return null;
         }else{
              if (s!= null){
                   String[] temp = new String[sArray.length+1];
                   System.arraycopy(sArray,0,temp,0,sArray.length);
                   temp[temp.length-1] = s;
                   return temp;
              }else{
                   return sArray;
    }Edited by: mimdalli on May 4, 2009 8:22 AM
    Edited by: mimdalli on May 4, 2009 8:26 AM
    Edited by: mimdalli on May 4, 2009 8:27 AM

Maybe you are looking for