Hallo,
ich möchte den Text eines RichEdit in eine Datei schreiben (zusammen mit noch weiteren Daten). Der Text aus dem RichEdit wird in meinem Formular einem Feld des Objekts AktuelleSiFkt der Klasse SicherheitsFunktion zugewiesen:
Code:
ereignisse := AusloesendeEreignisseRichEdit.Lines;
SetAusloesendeEreignisse(ereignisse);
Variable ereignisse und auch das Feld AusloesendeEreignisse des Objekts sind vom Typ TStrings.
Dann in der Klasse SicherheitsFunktionFatei erfolgt das Schreiben in die Datei, dabei wird das Objekt der Klasse SicherheitsFunktion als Parameter übergeben. Der Text aus dem Feld des Objekts wird dann der Variable tempLines zugewiesen. Beim Ermitteln der Anzahl der Zeilen gibts zur Laufzeit einen Zugriffsfehler.
Code:
procedure SicherheitsFunktionDatei.Write(persSiFkt: SicherheitsFunktion);
var
tempLines: TStrings;
tempLine: String;
i, anzahlStrings, anzahlBloeckeKanal1, anzahlBloeckeKanal2: integer;
begin
try
//Stream := TFileStream.Create(DateiName, fmOpenWrite);
Stream := TFileStream.Create(DateiName, fmCreate);
except
Stream := TFileStream.Create(DateiName, fmCreate);
end;
try
writer := TWriter.Create(Stream,100);
//Freitext zu Auslösende Ereignisse speichern (zeilenweise)
tempLines := persSiFkt.GetAusloesendeEreignisse;
anzahlStrings := tempLines.Count; //hier hängt's
writer.WriteInteger(anzahlStrings);
for i := 0 to anzahlStrings - 1 do
begin
tempLine := tempLines.Strings[i];
writer.WriteString(tempLine);
end;
...
Wäre schön, wenn mir jemand sagen kann, warum das nicht so funktionieren soll.