Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Memo-Inhalt wird nicht richtig gespeichert (https://www.delphipraxis.net/87997-memo-inhalt-wird-nicht-richtig-gespeichert.html)

hasserwahn 8. Mär 2007 15:45


Memo-Inhalt wird nicht richtig gespeichert
 
also ich habe folgenden code:
Delphi-Quellcode:
procedure form1.button1click(Sender: TObject)
begin
 memo3.lines.loadfromfile('c:\test.txt');
 memo2.text:='hallo';
 memo1.text:='tschüss';
 memo3.lines[7]:=memo2.lines[0];
 memo3.lines[6]:=memo1.lines[0];
 memo3.lines.savetofile('c:\test.txt');
end;
in der textdatei stand vorher nichts

so wenn ich denn hinterher in die textdatei gucke steht aber in der 7. bzw. 6. zeile einfach nichts.

warum steht da nichts und wie kann ich das ändern?

Bernhard Geyer 8. Mär 2007 15:52

Re: Memo-Inhalt wird nicht richtig gespeichert
 
Komisch das keine Exception kommt. Mach es lieber so:

Delphi-Quellcode:
memo3.lines.Add(memo2.lines[0]);
memo3.lines.Add(memo1.lines[0]);

inherited 8. Mär 2007 16:38

Re: Memo-Inhalt wird nicht richtig gespeichert
 
Das Problem ist, dass, weil die Datei leer ist, weder die 6. noch die 7. Zeile existiert.

IngoD7 8. Mär 2007 17:11

Re: Memo-Inhalt wird nicht richtig gespeichert
 
Zitat:

Zitat von Bernhard Geyer
Komisch das keine Exception kommt.

Ja, Memos und Konsorten sind manchmal seltsam (zumindest noch in D7).

Die Write-Methode von TMemo.Lines.Strings[] ist TMemoStrings.Put.
Diese Methode arbeitet etwas seltsam:
Ein Beschreiben/Ändern der vorhandenen Zeilen lässt sie zu. So weit, so richtig. Aber auch das Beschreiben der nächsten, noch gar nicht vorhandenen Zeile erledigt sie. :cyclops:
In einem Memo mit nur einer vorhandenen Zeile in Lines[0] kann man die nächste mit Memo.Lines[1]:=... einbringen (soll man natürlich nicht --> Add benutzen!).
Eine weitere Zeile mit Memo.Lines[2]:=... einbringen, geht dann schon nicht mehr. Es wird aber nicht gemeckert.

In den Fällen, in denen die Put-Methode vorzieht, lieber nichts zu machen, tut sie auch genau das: Gar nichts.
Bezogen auf den Code des Fragestellers bedeutet das: Einen Index 6 oder 7, der kilometerweit vom einzig möglichen nutzbaren Index 0 entfernt liegt, übersieht sie gnädig und wirft nicht mal einen Indexfehler.

hasserwahn 10. Mär 2007 17:31

Re: Memo-Inhalt wird nicht richtig gespeichert
 
also ich hab's mit diesem hier probiert:

Delphi-Quellcode:
memo3.lines.Add(memo2.lines[0]);
memo3.lines.Add(memo1.lines[0]);
und es funktioniert :-D


vielen dank an alle
mfg

hasserwahn


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:47 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