Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Memo-Feld mit Zeilenumbruch auslesen (https://www.delphipraxis.net/114248-memo-feld-mit-zeilenumbruch-auslesen.html)

WIng2005 22. Mai 2008 06:15

Datenbank: Postgresql • Zugriff über: Zeos

Memo-Feld mit Zeilenumbruch auslesen
 
Hallo Gemeinde,

ich muss auf eine DB (Postgresql) zugreifen und die dort abgelegten Daten in ein Memo schreiben.
Das Datenfeld, welches hier ein paar Probleme bereitet ist vom Typ Memo und beinhaltet mehrer Zeilen.
Wie kann ich realisieren, dass die enthaltenen Zeilenumbrüche auch im Zielmemo eingefügt werden?
Derzeit werden die Zeilenumbrüche aus '|' angezeigt. Der Zugriff auf die DB erfolgt mittels der Zeos-Komonenten.


MFG
Steffen

taaktaak 22. Mai 2008 06:53

Re: Memo-Feld mit Zeilenumbruch auslesen
 
Moin, Moin,
hab' von Datenbanken keine Ahnung, aber wenn du statt #13#10 ein | erhältst, dann wäre es einen Versuch wert, dieses Zeichen vor der Ablage in der Zieldatenbank einfach wieder durch CRLF zu ersetzen...

mschaefer 22. Mai 2008 06:53

Re: Memo-Feld mit Zeilenumbruch auslesen
 
Delphi-Quellcode:
  Memo.lines.text := StringReplace(Dataset.fieldbyname('Feldname des DBMemos'.AsText, '|', #10#13,[rfReplaceAll]);

taaktaak hat schon recht mit dem Ersetzten. Offensichtlich wird kein volles CR/LF aus der DB gelesen. Wo das allerdings hakt ist mir momentan nicht klar.

Grüße // Martin


PS: Mir ist gerade die Funkmaus abgestürtzt ...

taaktaak 22. Mai 2008 06:54

Re: Memo-Feld mit Zeilenumbruch auslesen
 
huhuhuhu, ich hab' nix gesagt :oops:

mschaefer 22. Mai 2008 07:15

Re: Memo-Feld mit Zeilenumbruch auslesen
 
Klar hast Du! 8)

WIng2005 22. Mai 2008 07:22

Re: Memo-Feld mit Zeilenumbruch auslesen
 
...stimmt, habs auch gehört....

@mschaefer: Vielen Dank...hat mir sehr geholfen.

MFG
Steffen

WIng2005 22. Mai 2008 07:31

Re: Memo-Feld mit Zeilenumbruch auslesen
 
Ein Problem habe ich aber trotzdem noch:

Die Daten des Memos sind Prüfergebnisse. Dummerweise enthalten diese auch Sonderzeichen (ungewollt, aber noch nicht behoben).
Diese versuche ich mit Stringreplace zu ersetzen. Funktioniert jedoch nur bei einem der beiden Sonderzeichen. Hier mal
ein wenig Code:

Delphi-Quellcode:
.
.
.
/////////////////////////////////////////////////////////  Ausschnitt!!
while not zquery2.Eof do
    Begin
      bcs.JvMemo1.Lines.Text:=bcs.JvMemo1.Lines.Text
       + str_rep(zquery2.fieldbyname('user_data1').AsString);
      zquery2.next;
    end;
.
.
.
/////////////////////////////////////////////////////////

function str_rep(s:string):string;
Begin
result:=StringReplace(s,'','',[rfReplaceAll]);
result:=StringReplace(s,'€','',[rfReplaceAll]);
end;
Wie gesagt, es funktioniert nur beim '€'.

MFG
Steffen

Nuclear-Ping 22. Mai 2008 07:39

Re: Memo-Feld mit Zeilenumbruch auslesen
 
Das andere ist glaube ein Steuerzeichen was für alles mögliche genommen wird, was nicht dargestellt werden kann. Am besten du findest raus, was für ein ASCII-Code sich dahinter verbirgt und suchst danach, statt nach dem Zeichen direkt.

WIng2005 22. Mai 2008 07:44

Re: Memo-Feld mit Zeilenumbruch auslesen
 
Habe ich schon probiert. Dummerweise taucht das Zeichen gleich mehrfach auf -> http://www.torsten-horn.de/techdocs/ascii.htm
Habe via

result:=StringReplace(s,chr(129),'',[rfReplaceAll]);

alle Möglichkeiten durch. Bringt nix.
Wie könne ich denn den ASCII-Code des Zeichens mal per Messagebox ausgeben?

MFG
Steffen

Nuclear-Ping 22. Mai 2008 07:49

Re: Memo-Feld mit Zeilenumbruch auslesen
 
Chr (129) ist aber = ü :gruebel:

Wenn du die Möglichkeit hast, den Text als Hex darzustellen, mach es.

[edit]
Zitat:

Zitat von WIng2005
Wie könne ich denn den ASCII-Code des Zeichens mal per Messagebox ausgeben?

Als Hex / Byte dumpen. Also einen leeren String hernehmen und in 'ner Schleife deinen Text durchgehen und mit IntToHex (Byte (MemoText[i]), 2) + ', ' verknüpfen.
[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:46 Uhr.
Seite 1 von 2  1 2      

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