Mark Yeah, I sort of thought you might want to actually extract the column data Here are a couple of primative routines that I use to extract delim items from a string (You could also use ExtractFieldName function in the DB unit)
Prob has less overhead and flexibility thatn using commatext of a stinglist the GetStrCell can be used as a loop ie I := 0 while GetStrCell(S,I,C';') do begin // process C here inc(I) end function GetStrCell(AString: string; ACol: Integer; var AStrResult: string; Sep: char): Boolean; var Col, StartPos, i: Integer; begin AStrResult := ''; Result := False; StartPos := 1; Col := -1; for i := 1 to Length(AString) do begin if AString[i] = Sep then begin Inc(Col); if Col <> ACol then StartPos := i+1 else begin AStrResult := Copy(AString, StartPos, i - StartPos); Result := True; Break; end; end; end; if (i >= Length(AString)) and (Length(AString) > 0) and (Col+1 = ACol) then begin AStrResult := Copy(AString, StartPos, Length(AString) - StartPos + 1); Result := True; end; end; procedure SetStrCell(var AString: String; ACol: Integer; ANewStr: String); var Col, StartPos, i: Integer; begin StartPos := 1; Col := -1; i := 1; while i <= Length(AString) do begin if AString[i] = DefSep then begin Inc(Col); if Col <> ACol then StartPos := i+1 else begin Delete(AString, StartPos, i - StartPos); Insert(ANewStr, AString, StartPos); Break; end; end; Inc(i); end; if (i > Length(AString)) then begin while (Col+1 < ACol) do begin AString := AString + DefSep; StartPos := Length(AString)+1; Inc(Col); end; Delete(AString, StartPos, Length(AString) - StartPos + 1); Insert(ANewStr, AString, StartPos); end; end; ----- Original Message ----- From: "Mark Howard" <[EMAIL PROTECTED]> To: "Multiple recipients of list delphi" <[EMAIL PROTECTED]> Sent: Friday, November 08, 2002 11:31 AM Subject: Re: [DUG]: Multi-column String List? > Neven > > Not exactly what I was after :-( > > I have implemented the following (where SL is a Stringlist in the > Names=Values format you suggested), but would be interested if a > variant of your method could do the same more efficiently. > > function GetValue(Entry: String; col: Integer): String; > var StRec: TstringList; > begin > try > StRec := TStringList.Create; > StRec.CommaText := SL.Values[Entry]; > Result := StRec[col]; > finally > StRec.Free; > > Mark > end; > end; > > On 8 Nov 2002 at 11:00, Neven MacEwan wrote: > > > Mark > > > > Sorry I coded it as a Method (hence Self is the TStringList) > > > > as a function > > > > function GetValue(Strings: TStringList; Index: integer): string; > > begin > > Result := copy(Strings[Index],pos('=',Strings[Index])+1,MaxInt) > > end; > > > > > > N > > > > > > ----- Original Message ----- > > From: "Mark Howard" <[EMAIL PROTECTED]> > > To: "Multiple recipients of list delphi" <[EMAIL PROTECTED]> > > Sent: Friday, November 08, 2002 10:35 AM > > Subject: Re: [DUG]: Multi-column String List? > > > > > > > Sorry, not trivial enough for me. > > > I can't figure out how to call it - 'Self' is putting me off. > > > > > > Mark > > > > > > On 7 Nov 2002 at 16:46, Neven MacEwan wrote: > > > > > > > No > > > > > > > > but what you are asking is trivial > > > > > > > > function GetValue(Index: integer): string; > > > > begin > > > > Result := copy(Self[Index],pos('=',Self[Index])+1,MaxInt) > > > > end; > > > > > > > > Neven > > > > > > > > ----- Original Message ----- > > > > From: "Mark Howard" <[EMAIL PROTECTED]> > > > > To: "Multiple recipients of list delphi" <[EMAIL PROTECTED]> > > > > Sent: Thursday, November 07, 2002 4:34 PM Subject: Re: [DUG]: > > > > Multi-column String List? > > > > > > > > > > > > > Neven > > > > > > > > > > Can Values be an enumerated list? ie can you refer > > > > > to Values[i]? > > > > > Couldn't see any reference to that in Help. > > > > > > > > > > Mark > > > > > > > > > > On 7 Nov 2002 at 15:10, Neven MacEwan wrote: > > > > > > > > > > > Mark > > > > > > > > > > > > You could use a std string list with the 'name' and 'values' > > > > > > properties > > > > > > > > > > > > Entry_Field=Col1,Col2,Col3.... etc > > > > > > > > > > > > Beyond that I'd look at kbmMemTable > > > > > > > > > > > > HTH > > > > > > > > > > > > Neven > > > > > > > > > > > > ----- Original Message ----- > > > > > > From: "Mark Howard" <[EMAIL PROTECTED]> > > > > > > To: "Multiple recipients of list delphi" > > > > > > <[EMAIL PROTECTED]> Sent: Thursday, November 07, 2002 3:00 > > > > > > PM Subject: [DUG]: Multi-column String List? > > > > > > > > > > > > > > > > > > > Hi all > > > > > > > > > > > > > > I want a very simple way to load and access a small lookup > > > > > > > table from a comma delimited text file. > > > > > > > > > > > > > > What would be ideal would be an implementation of a multi > > > > > > > column string list that would allow: LoadFromFile and access > > > > > > > to a particular row of columns to the right of #1 using > > > > > > > Items.IndexOf('Entry_Field') to determine the row > > > > > > > > > > > > > > I feel sure there must be something simple available. > > > > > > > > > > > > > > TIA > > > > > > > > > > > > > > Mark > > > > > > > ------------------------------------------------------------ > > > > > > > ---- ---- ------ > > > > > > - > > > > > > > New Zealand Delphi Users group - Delphi List - > > > > > > > [EMAIL PROTECTED] > > > > > > > Website: http://www.delphi.org.nz > > > > > > > To UnSub, send email to: [EMAIL PROTECTED] > > > > > > > with body of "unsubscribe delphi" > > > > > > > Web Archive at: > > > > > > > http://www.mail-archive.com/delphi%40delphi.org.nz/ > > > > > > > > > > > > > > > > > > > -------------------------------------------------------------- > > > > > > ---- ---- ----- > > > > > > New Zealand Delphi Users group - Delphi List - > > > > > > [EMAIL PROTECTED] > > > > > > Website: http://www.delphi.org.nz > > > > > > To UnSub, send email to: [EMAIL PROTECTED] > > > > > > with body of "unsubscribe delphi" > > > > > > Web Archive at: > > > > > > http://www.mail-archive.com/delphi%40delphi.org.nz/ > > > > > > > > > > > > > > > > > > > > > ---------------------------------------------------------------- > > > > > ---- ------ > > > > - > > > > > New Zealand Delphi Users group - Delphi List - > > > > > [EMAIL PROTECTED] > > > > > Website: http://www.delphi.org.nz > > > > > To UnSub, send email to: [EMAIL PROTECTED] > > > > > with body of "unsubscribe delphi" > > > > > Web Archive at: > > > > > http://www.mail-archive.com/delphi%40delphi.org.nz/ > > > > > > > > > > > > > ------------------------------------------------------------------ > > > > ---- ----- > > > > New Zealand Delphi Users group - Delphi List - > > > > [EMAIL PROTECTED] > > > > Website: http://www.delphi.org.nz > > > > To UnSub, send email to: [EMAIL PROTECTED] > > > > with body of "unsubscribe delphi" > > > > Web Archive at: > > > > http://www.mail-archive.com/delphi%40delphi.org.nz/ > > > > > > > > > > > > > -------------------------------------------------------------------- > > > ------ > > - > > > New Zealand Delphi Users group - Delphi List - > > > [EMAIL PROTECTED] > > > Website: http://www.delphi.org.nz > > > To UnSub, send email to: [EMAIL PROTECTED] > > > with body of "unsubscribe delphi" > > > Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/ > > > > > > > ---------------------------------------------------------------------- > > ----- > > New Zealand Delphi Users group - Delphi List - > > [EMAIL PROTECTED] > > Website: http://www.delphi.org.nz > > To UnSub, send email to: [EMAIL PROTECTED] > > with body of "unsubscribe delphi" > > Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/ > > > > > -------------------------------------------------------------------------- - > New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED] > Website: http://www.delphi.org.nz > To UnSub, send email to: [EMAIL PROTECTED] > with body of "unsubscribe delphi" > Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/ > --------------------------------------------------------------------------- New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED] Website: http://www.delphi.org.nz To UnSub, send email to: [EMAIL PROTECTED] with body of "unsubscribe delphi" Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/