Subj : A little stringing along To : Sean Dennis From : mark lewis Date : Thu May 06 2010 12:54 pm SD> What I'm wanting to do is this: I want to start at the beginning of SD> the line and read each "block" that's delimited by spaces into a SD> string, so I can put the last name in one string, the first name in SD> one string, the graphics type in another string, the DCE rate in SD> another, so on and so forth. All data will be treated as strings SD> and this will be read from a text file, so it's pretty easy to get SD> the data in. here's something i had laying around... the original used a ';' as a divider with #32 and #9... i just changed the ';' to ',' so it would break out all of the comma delimited fields as well... it is the 3rd "str[i]" in each of the three while lines... program extract_word_test; const t1_str : string = 'A Daryl Stout SY,SH,KL,DR,DN,UP,'; t2_str : string = 'PR,MS,MMV,CC,RC,PW,CU,QK,MB,MU,CB,'; t3_str : string = 'TB=05/05/02/01/03/01/01/60/60:120/120 '; t4_str : string = 'LOCAL ANSI 5-4-10 4880 307 18:53'; var my_cnt : integer; my_str, result_str : string; function extractword(str : string; n : integer) : string; var count : integer; i : integer; len : integer; done : boolean; retstr : string; begin retstr := ''; len := length(str); count := 0; i := 1; done := false; while (i <= len) and (not done) do begin while ((i <= len) and ((str[i] = #32) or (str[i] = #9) or (str[i] = ','))) do inc(i); if i <= len then inc(count); if count = n then begin retstr[0] := #0; if (i > 1) then if str[i-1] = ';' then retstr := ';'; while ((i <= len) and ((str[i] <> #32) and (str[i] <> #9) and (str[i] <> ','))) do begin inc(retstr[0]); retstr[ord(retstr[0])] := str[i]; inc(i); end; done := true; end else while ((i <= len) and ((str[i] <> #32) and (str[i] <> #9) and (str[i] <> ','))) do inc(i); end; extractword := retstr; end; begin my_str := t1_str + t2_str + t3_str + t4_str; writeln(my_str); for my_cnt := 0 to 28 do begin result_str := extractword(my_str,my_cnt); writeln(my_cnt, ' : ''',result_str,''''); end; end. * Origin: (1:3634/12) .