Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Zeile von Memo auslesen und als string speichern


nove - Sa 06.11.04 16:19
Titel: Zeile von Memo auslesen und als string speichern
hallo..

..kleine fraaage..und zwar, wie kann ich in einer memo die erste zeile auslesen und als string (text1) speichern?
und dann nach einer bestimmten zeit die 2. zeile als string (text1) speichern?
und nun die eigentliche frage: Wie kann ich feststellen, dass alle Zeilen bereits durchgenommen wurden, und wieder von vorne beginnen?

wär schön, wenn mir wer helfen könnte..

danke!

mfg


Moderiert von user profile iconTino: Topic aus Sonstiges verschoben am Mo 08.11.2004 um 12:56


jasocul - Sa 06.11.04 16:42
Titel: Re: Zeile von Memo auslesen und als string speichern
nove hat folgendes geschrieben:
hallo..

..kleine fraaage..und zwar, wie kann ich in einer memo die erste zeile auslesen und als string (text1) speichern?
und dann nach einer bestimmten zeit die 2. zeile als string (text1) speichern?
und nun die eigentliche frage: Wie kann ich feststellen, dass alle Zeilen bereits durchgenommen wurden, und wieder von vorne beginnen?

wär schön, wenn mir wer helfen könnte..

danke!

mfg

1. Erste Zeile ausm Memo lesen

Delphi-Quelltext
1:
Edit1.Text := Memo1.Lines[0]; // 0 (Null) für den Index der ersten Zeile                    

2. Was heßt nach einer bestimmten Zeit? Schau mal in die OH unter TTimer. Vielleicht willst du auf sowas hinaus.
3. Die letzte Zeile im Memo hat den Index memo1.lines.count-1.


JayEff - Sa 06.11.04 16:43

Du kannst auf jede Zeile eines Memos mit einem sog. Index zugreiffen:

Delphi-Quelltext
1:
2:
3:
Memo1.Lines[0]:='Erste zeile!!';
Memo1.Lines[1]:='Zweite zeile!!';
Memo1.Lines[2]:='Dritte zeile!!';


Die anzahl der Zeilen bekommst du mit der Eigenschaft Count des TSTrings:

Delphi-Quelltext
1:
Memo1.Lines.Count                    

Anstelle der Variablen text1, text2 undsoweiter würde ich ausserdem mit einem Array arbeiten. damit kannst du einer einzigen Variable mehrere Strings zuordnen:

Delphi-Quelltext
1:
text[1]:=Memo1.Lines[1];                    

Ich habe eine Procedure geschrieben, die dem Array texts alle Zeilen des Memos zuordnet:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.Button1Click(Sender: TObject);
var
  i:integer;
  texts:array of String;
begin
SetLength(texts,Memo1.Lines.Count);
for i:=0 to Memo1.Lines.Count-1 do texts[i]:=Memo1.Lines[i];
end;

Beachte, das der Array ein dynamischer ist, und das die anzahl seiner Elemente mit SetLength auf die anzahl der Zeilen des Memos gesetzt werden muss. Dynamisch heist, dass man die Anzahl seiner elemente bestimmen kann. Im gegensatz dazu der statische Array:

Delphi-Quelltext
1:
 var texts: Array[0..10of String;                    

Hierbei hat der Array genau 11 Elemente: von 0 bis 10.