AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

in Ini Datei mehrzeiligen text schreiben

Ein Thema von thetrue · begonnen am 31. Mai 2006 · letzter Beitrag vom 31. Mai 2006
Antwort Antwort
Benutzerbild von thetrue
thetrue

Registriert seit: 27. Mai 2006
65 Beiträge
 
#1

in Ini Datei mehrzeiligen text schreiben

  Alt 31. Mai 2006, 13:59
moin,

wie kann man in eine Ini datei einen Mehrzeiligentext schreiben?
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: in Ini Datei mehrzeiligen text schreiben

  Alt 31. Mai 2006, 14:03
Hi,
denke das wird nicht direkt unterstützt. Aber du kannst einfach alle Zeilenumbrüche durch ein anderes Zeichen (z.B. chr(26) = Substitute) ersetzen, was wiederum sehr einfach mittels String-Replace klappt.

Natürlich nach dem Laden andersrum

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Benutzerbild von thetrue
thetrue

Registriert seit: 27. Mai 2006
65 Beiträge
 
#3

Re: in Ini Datei mehrzeiligen text schreiben

  Alt 31. Mai 2006, 14:04
Öhm, joa, wäre ne möglichkeit, aber ich kenne die Replacce Function von Delphi nicht ^^
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#4

Re: in Ini Datei mehrzeiligen text schreiben

  Alt 31. Mai 2006, 14:05
Indem man die Datei öffnet (TFileStream, TStrings) und den Text reinschreibt.
Natürlich ist es dann keine Ini-Datei mehr, sondern eine ehemalige Ini-Datei mit mehrzeiligem Text.
Oder du nutzt die WriteStream Methode von TIniFile und speicherst dir den Text als "binär" Daten ab. Aber Achtung: Hier gibt es eine Längenbegrenzung.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

Re: in Ini Datei mehrzeiligen text schreiben

  Alt 31. Mai 2006, 14:52
Oder den Text vorher Base64 kodieren und beim laden dekodieren.
Dann kannst du mehrzeiligen Text in einer Zeile speichern.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#6

Re: in Ini Datei mehrzeiligen text schreiben

  Alt 31. Mai 2006, 15:05
In der JCL gibt es dazu die Funktionen StrStringToEscaped und StrEscapedToString.
Ich glaube uebrigens das die INI-Funktionen eine Laengenbegrenzung bei den Strings haben. Zumindest erinnere ich mich schwach an so etwas.
Relativ sicher bin ich mir das es eine 64K-Grenze fuer das gesamte INI-File gibt bzw. gab.
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#7

Re: in Ini Datei mehrzeiligen text schreiben

  Alt 31. Mai 2006, 16:41
alternativ kannst du auch eine solche ini-datei anlegen:

Delphi-Quellcode:
linecount=5
line1="erste"
line2="zweite"
line3="dritte"
...
und dann halt einlesen:

Delphi-Quellcode:
memo1.lines.clear;
c:=readInteger('section','linecount',0);
for i:=1 to c do
begin
  Memo1.Lines.Add(ini.ReadString('section','line'+IntToStr(i),''));
end;
oder so, wie ich es in meine Sprachdateien mache:

Delphi-Quellcode:
function ConvertLineBreak(s:string):string;
var p:integer;
begin
  p:=pos('\n',s);
  while p>0 do
  begin
    s[p]:=#13;
    s[p+1]:=#10;
    p:=pos('\n',s);
  end;
  result:=s;
end;

s:='erste\nzweite\ndritte';
s:=ConvertLineBreak(s);
Gruß Frank
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: in Ini Datei mehrzeiligen text schreiben

  Alt 31. Mai 2006, 17:23
Zitat von thetrue:
Öhm, joa, wäre ne möglichkeit, aber ich kenne die Replacce Function von Delphi nicht ^^
Aber doch spätestens nach dem die "StringReplace" Funktion genannt wurde solltest du Sie doch jetzt kennen (schließlich kennst du auch die anderen Lösungen nicht)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#9

Re: in Ini Datei mehrzeiligen text schreiben

  Alt 31. Mai 2006, 17:25
Wenns schnell gehen soll verwende ich eine StringList, speichere den Text darin und schreibe StringList.DelimitedText in die INI und lade den DelimitedText hinterher wieder.
Sonst kodiere ich den String wie gesagt vorher Base64.

Beispiel:
Delphi-Quellcode:
//Text speichern (Text ist in Memo1)
var
  Tmp: TStringList;
begin
  Tmp := TStringList.Create;
  Tmp.Text := Memo1.Lines.Text;
  Ini.WriteString('Section', 'Value', Tmp.DelimitedText);
  Tmp.Free;
end;

//Text laden (In Memo1)
var
  Tmp: TStringList;
begin
  Tmp := TStringList.Create;
  Tmp.DelimitedText := Ini.ReadString('Section', 'Value', '');
  Memo1.Lines.Text := Tmp.Text;
  Tmp.Free;
end;
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:28 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