Indigo Rose Software

Professional Software Development Tools

 
Results 1 to 3 of 3
  1. #1
    Join Date
    Aug 2005
    Posts
    3

    Taking Apart a string

    Currently I have one large string read in from a file:


    Code:
    filethere = File.DoesExist("c:\\TEMP\\packageinfoinstall.txt");
    text_contents = TextFile.ReadToString("c:\\TEMP\\packageinfoinstall.txt");
    
    foundpos = String.Find(text_contents," ");
    startpos = 1;
    --case for one 
    if (foundpos == -1) then 
    	packagename = String.Mid(text_contents,1,-1).."\r\n";
    end
    
    
    while (foundpos ~= -1) do
    
    packagename = String.Mid(text_contents,start,foundpos);
    
    
    
    	Dialog.Message("packagename", packagename);
    
    
    startpos = foundpos + 1;
    foundpos = String.Find(text_contents," ",startpos,false);
    
    end
    I am using " " as a delimter, right now though, the output is always something like this:

    output:

    blah
    blah blah2
    blah blah2 blah3


    It seems as if packagename is concatenated every time it loops? Why is this happening? Am I missing something?

  2. #2
    Join Date
    Aug 2005
    Posts
    3
    ok, well, this is a lua issue i guess

    [code]
    text_contents = TextFile.ReadToString("c:\\TEMP\\packageinfoinstal l.txt");
    --placeholder = String.Find(text_contents," ");
    foundpos = String.Find(text_contents," ");
    startpos = 1;
    --case for one package
    if (foundpos == -1) then
    packagename = String.Mid(text_contents,1,-1).."\r\n";
    end

    --case for more than one package
    while (foundpos ~= -1) do


    packagename = String.Mid(text_contents,start,foundpos);
    text_contents = String.Mid(text_contents,foundpos+1,-1);


    --do something with package
    --if (packagename == "blah blah2") then
    --Dialog.Message("string", text_contents);
    Dialog.Message("packagename", packagename);
    Dialog.Message("start", startpos);
    Dialog.Message("found", foundpos);
    --end

    --increment

    foundpos = String.Find(text_contents," ",startpos,false);
    --startpos = 1;
    end
    [\code]

    this works

  3. #3
    Join Date
    Jul 2002
    Location
    USA
    Posts
    3,959
    In your original While loop, you have

    packagename = String.Mid(text_contents,start,foundpos);

    and it should be

    packagename = String.Mid(text_contents,startpos,foundpos-startpos);
    Last edited by Worm; 08-15-2005 at 11:40 AM.

Similar Threads

  1. Function : Validate String (Great for passwords, etc.)
    By Corey in forum AutoPlay Media Studio 5.0 Examples
    Replies: 3
    Last Post: 04-28-2005, 02:42 AM
  2. attempt to index a string value
    By csd214 in forum AutoPlay Media Studio 5.0
    Replies: 8
    Last Post: 08-08-2004, 01:23 AM
  3. "Get Delimited String" -- Delimiter can be a string?
    By Bishal in forum Setup Factory 6.0
    Replies: 1
    Last Post: 10-16-2003, 10:40 AM
  4. replace a character in a string
    By boudie in forum Setup Factory 6.0
    Replies: 7
    Last Post: 06-10-2003, 08:48 AM
  5. While loop in a string
    By Option_Explicit in forum AutoPlay Media Studio 4.0
    Replies: 4
    Last Post: 03-04-2003, 07:10 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts