Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TStringList: Arbeiten ohne Add-Methode (https://www.delphipraxis.net/47112-tstringlist-arbeiten-ohne-add-methode.html)

Robert_G 7. Jun 2005 21:02

Re: TStringList: Arbeiten ohne Add-Methode
 
Zitat:

Zitat von Sanchez
Zitat:

Zitat von Robert_G
...als Tlist Descendant ist TStringList nix weiter als eine komfortable Kapselung eines PPointerArrays,...

:warn: TStringList ist ein Nachfahre von TStrings, was wiederum ein Nachfahre von TPersistent ist.
Die Stringliste speichert seinen Inhalt in einem Array von TStringItem, dass sich wie folgt zusammen setzt:

<ROFL> Natürlich hast du recht. :lol:
Ehrlich gesagt haben mich die Internals von TStrings nie wirklich interessiert. ;) Aber TPersistent hätte mich stutzig machen sollen....

malo 7. Jun 2005 21:07

Re: TStringList: Arbeiten ohne Add-Methode
 
Zitat:

Zitat von alzaimar
1. mit Add('') und dann aList[aList.count - 1] := aList[aList.count - 1] + aNewChar gehts.

Danke. Wenn das soweit problemlos funktioniert, mach ich es auch so :)


Zitat:

Zitat von alzaimar
Warum nicht so:
Delphi-Quellcode:
Procedure LineToStrings (aInput : String; aSrc : TStringList);
Var
  aStart, i, n : Integer;
  aLine : String;

Begin
  aSrc.Clear;
  aStart := 1; // Index auf das erste Zeichen der aktuellen Zeile
  aInput := aInput + ccEOF; // sicherstellen, das auch die LETZTE Zeile erkannt wird.
  For i:=1 To Length (aInput) do
    If aInput[i] in [';', ccEOF] then Begin   // Zeilenende erreicht?
      // Die Zeile ist zwischen aStart und i-1
      aLine := Trim (Copy (aInput, aStart, i - aStart));
      If aLine<>'' Then aSrc.Add (aLine);
      aStart := i + 1;
      End;
End;

Würde dieser Code nicht für JEDE ZEILE einen StringList-Eintrag machen? Wenn ja, dann ist genau das der FALSCHE Weg. Ich muss den String ja auseinandernehmen und analysieren. Ich mache beispielsweise für jede Zeile EINE NEUE STRINGLISTE. Dann in die entsprechenden Indizen der StringListen jeweils EINEN AUSDRUCK meines "Codes".

Es ist mir übrigens egal, ob das jemand versteht... Das ist nunmal meine Methode, ich hab sie so angefangen und ziehe es so durch. Und Hauptsache ist ja, dass ich es verstehe ;)

Sanchez 7. Jun 2005 21:16

Re: TStringList: Arbeiten ohne Add-Methode
 
Zitat:

Zitat von Robert_G
Ehrlich gesagt haben mich die Internals von TStrings nie wirklich interessiert.

Mich auch nicht, aber was macht man nicht alles um Falschaussagen anderer aufzudecken :stupid:

Ne, im Ernst. Ich hatte es irgendwo im Hinterkopf und hab mich eben mal vergewissert.
Aber jetzt wo ich den Aufbau kenne, wäre mir lieber gewesen, ich hätte ihn nie gesehen. :cry:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:02 Uhr.
Seite 2 von 2     12   

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