![]() |
Zweispaltige Stringlist
Hallo zusammen,
ich habe eine grundsätzliche Frage: Gibt es eigentlich sowas wie zweispaltige Tstringlisten (zwei Spalten, n-Einträge). Gleichzeitig wäre quasi der Funktionsumfang von TStringlist cool. TSTringlist.Item[i].spalte1 TSTringlist.Item[i].spalte2 TSTringlist.add(i) TSTringlist.delete(i) Prinzipiell könnte ich es wie in meinem letzten Posting machen (s.u.). Gibt es noch eine einfacher (komfortabler) :mrgreen: Lösung. Danke!
Delphi-Quellcode:
type TClDiS = class (Tcomponent)
private ... FDocumentlist:TObjectList; function Get(Index: Integer): TDocument; procedure Put(Index: Integer; const Value: TDocument); Published ... function add(item: TWebbrowser):integer; function Count: Integer; public property Document[Index: Integer]: TDocument read Get write Put; ... function TCldis.Count: Integer; begin result:=FDocumentList.Count; end; function TCldis.Get(Index: Integer): TDocument; begin result:=TDocument(FDocumentList[Index]); end; procedure TCldis.Put(Index: Integer; const Value: TDocument); begin FDocumentList[Index]:=Value; end; |
Re: Zweispaltige Stringlist
versuchs doch mal mit explode...
ich hatte dasselbe Problem auch mal, und hab einfach irgendeine Zeichenkombination dazwischen getan "#?#!#?#" oder so :) dann immer mit explode rausgeholt. wär auch einfach zu implementieren.
Delphi-Quellcode:
type
TMySL = class(TStringList) public procedure Add2(I1, I2: String); procedure Set2(Index: Integer; I1, I2: String); procedure Get2(Index: Integer; var I1, I2: String); function IndexOf2(I1, I2: String):Integer; end; const cSepVal = '#?#!#?#'; implementation //explode... procedure TMySL.Add2(I1,I2: String); begin Add(I1+cSepVal+I2); end; procedure TMySL.Set2(Index: Integer; I1, I2: String); begin if (Index<Count) and (Index>-1) then Strings[i]:=I1+cSepVal+I2; end; procedure TMySL.Get2(Index: Integer; var I1, I2: String); var T: TStringDynArray; begin if (Index<Count) and (Index>-1) then begin T:=Explode(cSepVal,Strings[i]); I1:=T[0]; I2:=T[1]; end; end; function TMySL.IndexOf2(I1, I2: String):Integer; begin Result:=IndexOf(I1+cSepVal+I2); end; |
Re: Zweispaltige Stringlist
Wenn ich meinen Vorschreiber richtig verstanden ahbe, brauchst du dazu allerdings noch eine Explode-Funktion. Hier eine, die ich aus nem Projekt von mir rauskopiert ahbe, sie ist allerdings nicht (!) von mir und ich weiß auch nicht mehr, wo se her war:
(Siehe nachschreibenden Vorschreiber) |
Re: Zweispaltige Stringlist
such hier in der CodeLib nach
![]() |
Re: Zweispaltige Stringlist
War tatsächlich von hier :D
Dann kann ich den Code oben ja wieder rausnehmen. Dachte der wär von woanders gewesen... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz