PDA

View Full Version : Taking Apart a string


alpha5
08-15-2005, 10:42 AM
Currently I have one large string read in from a file:




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?

alpha5
08-15-2005, 12:17 PM
ok, well, this is a lua issue i guess

[code]
text_contents = TextFile.ReadToString("c:\\TEMP\\packageinfoinstall.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

Worm
08-15-2005, 12:38 PM
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);