![]() |
Zeilenumbruch in ini dateien
Hallo
ich gebe text in ein memofeld ein und speichere es in einer ini datei beim auslesen werden zeilenumbrüche nicht mit ausgelesen kann mir einer helfen |
Re: Zeilenumbruch in ini dateien
Ini dateien unterstzützen keinen Zeilenumbruch.
|
Re: Zeilenumbruch in ini dateien
Du kannst versuchen die Daten z.B. Base64-Codiert zu speichern. Aber Ini-Dateien über die WinAPI gehen eh nur bis 64 kByte - also Achtung!
|
Re: Zeilenumbruch in ini dateien
Ich mache es so, dass ich alle Zeilen mit einem Trennzeichen zu einem String zusammenfügen:
Delphi-Quellcode:
Und hier der Aufruf:
function GetIniString(const ABreak: String; const AStrings: TStrings): String;
var i: Integer; begin Result := ''; for i := 0 to AStrings.Count - 1 do begin if i > 0 then Result := Result + ABreak; Result := Result + AStrings[i]; end; end; procedure GetIniStringList(const ABreak: String; AString: String; var AStrings: TStrings); var p: Integer; begin AStrings.Clear; while Pos(ABreak, AString) > 0 do begin p := Pos(ABreak, AString) - 1; AStrings.Add(Copy(AString, 1, p)); Delete(AString, 1, p + Length(ABreak)); end; AStrings.Add(AString); end;
Delphi-Quellcode:
MfG Pr0g
procedure TForm1.Button1Click(Sender: TObject);
var s: String; begin s := GetIniString('[~#~]', Memo1.Lines); //s in Ini Speichern end; procedure TForm1.Button2Click(Sender: TObject); var s: String; SL: TStrings; begin //s aus Ini auslesen SL := TStringList.Create; try GetIniStringList('[~#~]', s, SL); Memo1.Lines := SL; finally SL.Free; end; end; |
Re: Zeilenumbruch in ini dateien
Hi,
eine INI Datei zu benutzen, um ein Memo abzuspeichern ist schon recht krass. 8) Was soll denn das werden ? Ist das Memo immer gleich, oder was ? Ich habe die Vermutung, daß hier INI-Dateien mit Textdateien verwechselt werden, was sie allerdings auch sind. INI Dateien sind allerdings eher zeilenorientiert. D.h. in jeder Zeile steht ein Wert. Da es sich ja um einen einfachen einzugebenden Text handelt und wie Luckie bereits gesagt hat, die Zeilenumbrüche höchstens Ärger machen, frage ich mich, warum, der eingegenene Text nicht einfach mit :
Delphi-Quellcode:
behandelt wird. 8)
TStrings.SaveToFile (Dateiname);
|
Re: Zeilenumbruch in ini dateien
hi,
ich habs zwar schonmal irgendwo in der DP geschrieben, aber für dich extra nochmal :zwinker:
Delphi-Quellcode:
aenogym
var ini: TIniFile;
begin ini := tinifile.create; try //kompletten memo-inhalt als einen string speichern (zeilenumbrüche werden konvertiert) ini.writestring('section', 'key', memo1.lines.commatext); //string wieder in ini laden (zeilenumbrüche sind wieder da) memo1.lines.commatext := ini.readstring('section', 'key', 'default'); finally ini.free; end; end; |
Re: Zeilenumbruch in ini dateien
Wieso nicht einfach:
Delphi-Quellcode:
Memo1.Lines.SaveToFile(ParamStr(0) + 'datei.txt');
ini.WriteString('bla','textdatei',(ParamStr(0) + 'datei.txt')); .... s := ini.ReadString('bla','textdatei',''); if s <> '' then Memo1.Lines.LoadFromFile(s); |
Re: Zeilenumbruch in ini dateien
Ich befürworte neues Thema : "Kriege ich einen Nagel besser in die Wand gehauen mit einem Kreuzschraubenzieher, mit einer Gabel oder doch mit einer CD-Hülle ? ". :gruebel: 8) :lol:
|
Re: Zeilenumbruch in ini dateien
Zitat:
Ansonsten wäre es mal interessant zu erfahren, wie Tigermoon das Abspeichern und Einlesen überhaupt bewerkstelligt. |
Re: Zeilenumbruch in ini dateien
Zitat:
:mrgreen: Nene, im Ernst : wie gesagt, es geht um die Auswahl des richtigen Werkzeuges für eine bestimmte Aufgabe. Eine INI Datei zu vergewaltigen und der dafür nicht vorgesehene Zeilenumbrüche beizubringen ist einfach nur leichtsinnig und vor allem total überflüssig. Ich verstehe ehrlich gesagt nicht, daß dafür hier sogar noch Lösungsvorschläge kommen, obwohl die ganze Lösungsstrategie von vorneherein in die falsche Richtung geht. 8) Eine INI - Datei heißt deshalb so, weil sie dafür gedacht ist, gewisse Voreinstellungen einzulesen. Also eine Initialisierung von Variablen z.B. beim Programmstart vorzunehmen (Fensterkoordinaten, Maximale Eingabewerte) usw. Hierbei handelt es sich in der Regel um Konstanten. Da es um die Eingabe in ein Memo geht, also Daten, die sich schnell verändern, ist das aber nicht der Sinn einer INI Datei und deshalb nicht geeignet. Wie es mit TStrings geht habe ich bereits gesagt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz