Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Messages mit Zeilenbruch aus Datei laden (https://www.delphipraxis.net/53341-messages-mit-zeilenbruch-aus-datei-laden.html)

LoL 14. Sep 2005 14:45


Messages mit Zeilenbruch aus Datei laden
 
Moin,

eine Frag zum ausgeben von Messages:
Wenn ich eine Message ausgebe muss ich diese ja als String angeben. Kann ich einen Zeilenumbruch auch in den String schreiben?
zb in einer Ini:

[test]
test=ich_mache_einen_zeilenumbruch #13 das_steht_in_der_zewiten_zeile

Das das nicht funktionieren kann weis ich ja :mrgreen: , aber ich hoffe ihr wisst was ich mein und könnt mir helfen.

Bernhard Geyer 14. Sep 2005 15:05

Re: Messages mit Zeilenbruch aus Datei laden
 
Wieso? Schau mal die Funktion StringReplace an.

mr.unbekannt 14. Sep 2005 15:08

Re: Messages mit Zeilenbruch aus Datei laden
 
meinst du ungefähr so: 'message1'+#13+'message2' ich denke das müsste klappen1 oder?

LoL 14. Sep 2005 15:14

Re: Messages mit Zeilenbruch aus Datei laden
 
Folgendes:

@Bernhard Geyer:
Das ist ganz nett und funktioniert soweit, nur würde ich das gerne alles in die Datei speichern um die von dir genannte Funktion noch zu übergehen.

@mr.unbekannt
Wenn das in der INI-Datei steht:
[sec]
id= 'message1' + #13 + 'message2'

und dann folgendes in delhi schreibe:
Delphi-Quellcode:
  showmessage(ini.ReadString('sec','id','bla'));
dann habe ich immer noch keinen zeilenumbruch!

Khabarakh 14. Sep 2005 15:19

Re: Messages mit Zeilenbruch aus Datei laden
 
Kodiere den String mit Base64Base64, dann verschwinden alle Steuerzeichen, oder speicher die Strings in einem anderen Format.

BrunoT 14. Sep 2005 15:27

Re: Messages mit Zeilenbruch aus Datei laden
 
Hi Lol,

speichere die Strings in der ini-Datei mit einem # dazwischen und ersetze ihn.
Code:
[sec]
id=Blabla#blublu
und dann
Delphi-Quellcode:
showmessage(StringReplace(ini.ReadString('sec','id','bla'), '#', #13,rfReplaceAll ));
mfg

BrunoT

LoL 14. Sep 2005 15:31

Re: Messages mit Zeilenbruch aus Datei laden
 
@Khabarakh:
Könntest du das noch etwas erläutern was du genau meinst? Ich weis nicht genau was du mir damit sagen willst

@BrunoT
Zitat:

Zitat von Bernhard Geyer
Wieso? Schau mal die Funktion StringReplace an.

Zitat:

Zitat von LoL
Das ist ganz nett und funktioniert soweit, nur würde ich das gerne alles in die Datei speichern um die von dir genannte Funktion noch zu übergehen.

Ich hab ja das auch schon erfolgreich getestet, aber dann hab ich halt noch eine zusätzliche Funktion mehr was halt unschön ist.

Khabarakh 14. Sep 2005 15:40

Re: Messages mit Zeilenbruch aus Datei laden
 
@BrunoT: Und was machst du, wenn es mehrere '#' gibt :stupid: ? Base64 ist IMO die beste Lösung, auch andere Steuerzeichen werden damit "unschädlich gemacht". Einziger Nachteil: Die Stringlänge vergrößert sich ein wenig, außerdem kann man den kodierten String nicht lesen (aber ich hoffe doch, dass Lols User die Ini nicht von Hand bearbeiten müssen :mrgreen: ).

@Lol: Base64 kodiert einen String, sodass er nur noch aus "sichtbaren" Zeichen besteht. Damit kannst du ihn ohne Probleme in eine Ini schreiben, sonst wirst du immer Probleme mit Steuerzeichen bekommen. Einziger Ausweg wäre noch, wie gesagt, ein ganz anderes Format (z.B. Binärdateien per TFileStream).

Beispiel
Hätten Hüte ein ß im Namen, wären sie möglicherweise keine Hüte mehr,
sondern Hüße.
Zitat:

SMOkdHRlbiBIw7x0ZSBlaW4gw58gaW0gTmFtZW4sIHfDpHJlbi BzaWUgbcO2Z2xpY2hlcndlaXNl
IGtlaW5lIEjDvHRlIG1laHIsDQpzb25kZXJuIEjDvMOfZS4NCg ==

BrunoT 14. Sep 2005 15:41

Re: Messages mit Zeilenbruch aus Datei laden
 
Zitat:

Zitat von LoL
... aber dann hab ich halt noch eine zusätzliche Funktion mehr was halt unschön ist.

:gruebel: :gruebel: :gruebel:

Was ist daran so schlimm?
Mach doch eine Unterfunktion daraus, die beide Funktionen zusammenfasst und einen String zurückgibt.

mfg

BrunoT

@Khabarakh: Klar ist das eine gute Lösung, aber wenn die ini-Datei auch von anderen gelesen werden soll?


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:09 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