| Autor |
Beitrag |
Airwolf
      
Beiträge: 92
|
Verfasst: 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
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: 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
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Fr 31.10.08 18:47
Airwolf hat folgendes geschrieben : | | Könnte jetzt zwar alles hintereinanderweg schreiben |
Wenn du das kannst, kannst du sicher auch nach jeder Zeile einen #10#13 hinzufügen. 
|
|
nagel
      
Beiträge: 708
Win7, Ubuntu 10.10
|
Verfasst: Fr 31.10.08 19:23
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Fr 31.10.08 19:26
nagel hat folgendes geschrieben : | Yogu hat folgendes geschrieben : | Airwolf hat folgendes geschrieben : | | Könnte jetzt zwar alles hintereinanderweg schreiben |
Wenn du das kannst, kannst du sicher auch nach jeder Zeile einen #10#13 hinzufügen.  |
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
      
Beiträge: 2562
Erhaltene Danke: 46
Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
|
Verfasst: 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
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Sa 01.11.08 19:56
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
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Sa 01.11.08 20:35
Blackheart666: 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:
Quelltext 1:
| "Erste Zeile","Zweite Zeile, die ein Komma enthält" |
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Sa 01.11.08 21:19
_________________ Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
|
|