Entwickler-Ecke

Sonstiges (Delphi) - Tstring probleme


Gosa - Do 26.02.04 03:41
Titel: Tstring probleme
Hi ich probiere gerade in eine Datei einiege Sachen zu speichern was ich aber nicht hinkriege ist den Text von einen Memo feld da rein zu schreiben. Zumindest nicht so das alles andere weg ist. Ich hätte das gerne ungefähr so:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var
IniF: TIniFile;
Begin
   IniF := TIniFile.Create(C:\xyz.txt); 
   IniF.Writeinteger('Zahl''Zahl'5);
   
   IniF.Writestring('TextvonMemo''Text', Memo1.Lines);
End;



Leider will Delphi diese Zeile IniF.Writestring('TextvonMemo', 'Text', Memo1.Lines); nicht. Delphi sagt mir: [Error] USpeichernLaden.pas(29): Incompatible types: 'String' and 'TStrings'.

Wie kann ich es denn trozdem hinkriegen? Wie mache ich aus TString einen String (odere mehrere)? Am liebsten wäre es mir wenn dann in der Datei sowas steht:

[TextvonMemo]
Text=naja und hier eben der Text

(Dieses Memo.Lines.SaveToFile(C:\xyz.txt); bringt mir nicht soviel da ich wenn ich noch ein memo feld da drin speichern will die nicht mehr unterscheiden kann (beim laden des textes). Oder geht das doch irgenwei?)

Hoffe jemand weis ne Lösung.

Moderiert von user profile iconMotzi: Code- durch Delphi-Tags ersetzt


Delete - Do 26.02.04 03:51

Memo1.Text

Aber du wirst Probleme mit den Zeilenumbrüchen bekommen. Desweitern ist die größe von Ini-Dateien zu mindest unter Win9x beschränkt. Und ab einer bestimmten Größe dürftest du auch arge Performance Probleme beommen.


Gosa - Do 26.02.04 03:55

Vielen Dank für die schnell antwort! Ich habe nur im Object Inspector geguckt und da wir text gar nicht angezeigt :(.


Delete - Do 26.02.04 06:25

Die Property ist auch, nicht published, sondern nur public. ;)


Chatfix - Do 26.02.04 09:44

Un wie Delphi schon sagte TString und TStrings sind verschiedene Typen.
Du müsstest jede Zeile einzeln in die ini schreiben


Delphi-Quelltext
1:
2:
3:
4:
for i := 0 to Memo1.Lines.Count - 1 do
begin
  IniF.WriteString('Memo1''Zeile' +IntToStr(i), Memo1.Lines[i]);
end;


Beim Laden gehts dann etwas einfacher


Delphi-Quelltext
1:
2:
Memo1.Clear;
IniF.ReadSectionValues('Memo1', Memo1.Lines);