AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zweispaltige Stringlist

Ein Thema von ozz · begonnen am 11. Nov 2005 · letzter Beitrag vom 11. Nov 2005
Antwort Antwort
ozz

Registriert seit: 26. Jun 2005
131 Beiträge
 
#1

Zweispaltige Stringlist

  Alt 11. Nov 2005, 16:43
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) 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;
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#2

Re: Zweispaltige Stringlist

  Alt 11. Nov 2005, 17:01
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;
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Palando

Registriert seit: 5. Mai 2005
72 Beiträge
 
#3

Re: Zweispaltige Stringlist

  Alt 11. Nov 2005, 17:44
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)
Markus
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#4

Re: Zweispaltige Stringlist

  Alt 11. Nov 2005, 17:46
such hier in der CodeLib nach ExplodeExplode und du wirst finden
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Palando

Registriert seit: 5. Mai 2005
72 Beiträge
 
#5

Re: Zweispaltige Stringlist

  Alt 11. Nov 2005, 17:47
War tatsächlich von hier

Dann kann ich den Code oben ja wieder rausnehmen. Dachte der wär von woanders gewesen...
Markus
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz