Autor Beitrag
Airwolf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 92



BeitragVerfasst: Fr 31.10.08 16:34 
Hi,

titel sagt ja schon viel aus. Möchte gerne einen Text, der einem Namen zugewiesen ist und über mehrere Zeilen geht, mit einem Schlag aus der ini Datei laden und in ein Memo schreiben.

Leider lädt er nur die erste Zeile. Was kann ich dagegen tun? Bzw. was muss ich in der ini schreiben dass der ganze Text geladen wird. Könnte jetzt zwar alles hintereinanderweg schreiben, aber dann wäre der Text halt ziemlich.... unformatiert, es wär schon wichtig wenn der so da steht wie ich das haben möchte.

Geht sowas?

Danke im voraus.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 31.10.08 16:43 
Entweder schreibst du die Zeilen eben zeilenweise benannt in die Ini oder du benutzt ein eigenes Dateiformat statt Inis. Inis selbst kennen keinen mehrzeiligen Text.
Ansonsten könntest du nur die Zeilenumbrüche durch Ersatzzeichen ersetzen.
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Fr 31.10.08 18:25 
Kommatext

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Fr 31.10.08 18:47 
user profile iconAirwolf hat folgendes geschrieben Zum zitierten Posting springen:
Könnte jetzt zwar alles hintereinanderweg schreiben

Wenn du das kannst, kannst du sicher auch nach jeder Zeile einen #10#13 hinzufügen. :idea:
nagel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 708

Win7, Ubuntu 10.10

BeitragVerfasst: Fr 31.10.08 19:23 
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconAirwolf hat folgendes geschrieben Zum zitierten Posting springen:
Könnte jetzt zwar alles hintereinanderweg schreiben

Wenn du das kannst, kannst du sicher auch nach jeder Zeile einen #10#13 hinzufügen. :idea:


Dann ist er genausoweit wie am Anfang.
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Fr 31.10.08 19:26 
user profile iconnagel hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconAirwolf hat folgendes geschrieben Zum zitierten Posting springen:
Könnte jetzt zwar alles hintereinanderweg schreiben

Wenn du das kannst, kannst du sicher auch nach jeder Zeile einen #10#13 hinzufügen. :idea:


Dann ist er genausoweit wie am Anfang.

Ach so, jetzt verstehe ich den Satz. Es ist also noch nicht klar, wie die Zeilenumbrüche in die INI geschrieben werden sollen. Ich dachte, das hätte er schon geschafft.

Füge an Stelle der Zeilenumbrüche \n ein. Für Backslashes verwendest du \\.

Jetzt musst du das ganze nur noch umsetzen. Das einfachste wäre die Methode StringReplace - ist allerdings nicht sehr performant.
galagher
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2562
Erhaltene Danke: 46

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Sa 01.11.08 19:38 
Hallo!
Ich denke, TBigIni kann das. Google mal!

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Sa 01.11.08 19:56 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.SaveClick(Sender: TObject);
begin
   Ini.WriteString('Text','Memo',Memo.Lines.CommaText);
end;

procedure TForm1.LoadClick(Sender: TObject);
begin
  Memo.Lines.CommaText := Ini.Readstring('Text','Memo','');
end;

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Sa 01.11.08 20:35 
user profile iconBlackheart666: Deine Variante scheitert dann, wenn ein Komma in einer Zeile vorkommt. Das passiert, wie man hier sieht, relativ häufig. ;)

Edit: Besser wäre QuotedText (oder wie das heißt). Damit kannst du auch noch einen QuoteChar angeben, welcher dem ganzen nochmal mehr Sicherheit verleiht:

ausblenden Quelltext
1:
"Erste Zeile","Zweite Zeile, die ein Komma enthält"					
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Sa 01.11.08 21:19 
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconBlackheart666: Deine Variante scheitert dann, wenn ein Komma in einer Zeile vorkommt. Das passiert, wie man hier sieht, relativ häufig. ;)

Edit: Besser wäre QuotedText (oder wie das heißt). Damit kannst du auch noch einen QuoteChar angeben, welcher dem ganzen nochmal mehr Sicherheit verleiht:

ausblenden Quelltext
1:
"Erste Zeile","Zweite Zeile, die ein Komma enthält"					

Hast Recht mit der normalen gehts nicht aber wie galagher sagte mit TBigIni gehts habs ausprobiert.

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)