AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Zeilenumbruch in ini dateien

Ein Thema von Tigermoon · begonnen am 22. Mär 2005 · letzter Beitrag vom 23. Mär 2005
Antwort Antwort
Tigermoon

Registriert seit: 11. Mär 2005
Ort: Baumholder
100 Beiträge
 
Delphi 7 Enterprise
 
#1

Zeilenumbruch in ini dateien

  Alt 22. Mär 2005, 13:52
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
Stephanie
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Zeilenumbruch in ini dateien

  Alt 22. Mär 2005, 13:56
Ini dateien unterstzützen keinen Zeilenumbruch.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Zeilenumbruch in ini dateien

  Alt 22. Mär 2005, 13:57
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!
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#4

Re: Zeilenumbruch in ini dateien

  Alt 22. Mär 2005, 14:06
Ich mache es so, dass ich alle Zeilen mit einem Trennzeichen zu einem String zusammenfügen:
Delphi-Quellcode:
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;
Und hier der Aufruf:
Delphi-Quellcode:
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;
MfG Pr0g
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

Re: Zeilenumbruch in ini dateien

  Alt 22. Mär 2005, 18:35
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 :

TStrings.SaveToFile (Dateiname); behandelt wird. 8)
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Zeilenumbruch in ini dateien

  Alt 22. Mär 2005, 18:47
hi,

ich habs zwar schonmal irgendwo in der DP geschrieben, aber für dich extra nochmal

Delphi-Quellcode:
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;
aenogym
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#7

Re: Zeilenumbruch in ini dateien

  Alt 22. Mär 2005, 19:02
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);
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: Zeilenumbruch in ini dateien

  Alt 22. Mär 2005, 19:23
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 ? ". 8)
Gruß
Hansa
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 17. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Zeilenumbruch in ini dateien

  Alt 22. Mär 2005, 22:16
Zitat von Hansa:
eine INI Datei zu benutzen, um ein Memo abzuspeichern ist schon recht krass.
Dem stimme ich schon mal pauschal zu.

Ansonsten wäre es mal interessant zu erfahren, wie Tigermoon das Abspeichern und Einlesen überhaupt bewerkstelligt.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

Re: Zeilenumbruch in ini dateien

  Alt 23. Mär 2005, 01:01
Zitat von IngoD7:
...Ansonsten wäre es mal interessant zu erfahren, wie Tigermoon das Abspeichern und Einlesen überhaupt bewerkstelligt.
[Läster-Modus ein]Das ist doch egal. Ich schlage noch die BOOT.INI vor. Die wäre sicherlich geeignet. Oder wie wäre es, gleich eine EXE zu nehmen, diese in INI umzubenennen und das Memo da drin als INI zu speichern ? [Läster-Modus aus]



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.
Gruß
Hansa
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:45 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