Entwickler-Ecke

Sonstiges (Delphi) - String-Variable und TStringList


G-McKree - Do 03.04.03 19:59
Titel: String-Variable und TStringList
wie kann ich eine string-variable in ne TStringList laden?


AndyB - Do 03.04.03 20:02

Enthält der String Zeilenumbrüche? Wenn ja:

Quelltext
1:
MeineStringListe.Text := MeinString;                    

wenn nein:

Quelltext
1:
MeineStringListe.Add(MeinString);                    


G-McKree - Do 03.04.03 20:06

das mit dem add befehl hab ich schon mal versucht, aber mein delphi hat was dagegen


Alibi - Do 03.04.03 20:12

Kristallkugeln raus, er will einfach nicht sagen, was er machen will bzw. was er mit der Add Funktion versucht hat, die funktioniert garantiert. ;)


AndyB - Do 03.04.03 20:12

Die StringList-Variable hast du aber schon deklariert?


G-McKree - Do 03.04.03 20:23


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    RichEdit1: TRichEdit;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
   list: tstringlist;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 list:= tstringlist.create;
 list.loadfromfile('c:\test.txt');
 richedit1.text:= list[1];
 list.free;
end;

end.


delphi findet den source ok, aber bei run kommt ne fehlermeldung

Moderiert von user profile iconUGrohne: Quote- durch Code-Tags ersetzt


LCS - Do 03.04.03 20:57

Hi
an dem Code ist nix auszusetzen ausser dass du versuchst die zweite Zeile aus der Liste in das RichEdit zu laden, ohne zu wissen ob die überhaupt vorhanden ist.
[KristallkugelMode]
Hast du vielleicht nur eine Zeile in deiner Textdatei?
[/KristallkugelMode]

Gruss Lothar


G-McKree - Do 03.04.03 21:01

index 1 ist die zweite zeile? das is ja mal wieder eine delphihaftigkeit
demnach ist index 0 die erste?
super, jez hab ich das problem behoben, danke
kann man irgentwie heraus finden wie viel zeilen ne datei hat?


Alibi - Do 03.04.03 21:06

Wieso delphihaftigkeit?
Also bis jetzt ist das bei jeder Programmiersprache, die mir über den Weg gelaufen ist so gewesen, dass die bei 0 anfängt zu zählen, nicht bei eins. Irgendwie auch logisch.


LCS - Do 03.04.03 21:06

Hi
Zitat:

index 1 ist die zweite zeile? das is ja mal wieder eine delphihaftigkeit

Arrays werden nun mal standardmässig ab 0 gezählt.
Zitat:

kann man irgentwie heraus finden wie viel zeilen ne datei hat?

Nachdem du sie in die Stringliste geladen hast? Klar
Anzahl: List.Count
Letzte zeile ist demnach:List.Count - 1
Einfaches Nachschlagen in der Online-Hilfe hätte das zutage gebracht :wink:

Gruss Lothar


UGrohne - Do 03.04.03 21:07


Quelltext
1:
list.count;                    


Bittscheee.....

Schönen Abend noch


G-McKree - Do 03.04.03 21:14

warum ist die letzte zeil nicht nur list.count?
isst list [list.count] dann die zeile nach der letzten?


LCS - Do 03.04.03 21:16

Hi
G-McKree hat folgendes geschrieben:
warum ist die letzte zeil nicht nur list.count?

Wenn die Anzahl 2 ist und du bei 0 zu zählen anfängst, dann kommst du eben nicht weiter als bis 1
G-McKree hat folgendes geschrieben:

isst list [list.count] dann die zeile nach der letzten?

Ne, das ist Zugriffverletztung :twisted:

Gruss Lothar


Alibi - Do 03.04.03 21:17

Warum sollte?
List.Count liefert die Anzahl der Einträge zurück.
Eintrag 0 ist der erste Eintrag.
Und list[list.count] wird deswegen auch eine Exception auslösen.
Richtig: list[list.count-1]