Entwickler-Ecke
Datenbanken - DatenBank-Memo und einzeilig
Jakane - Mi 18.05.11 15:18
Titel: DatenBank-Memo und einzeilig
Hallo liebe Delphi-Helfer :)
In meinem Programm lese ich eine DatenbankFelder aus und gebe sie über eine ListBox in eine .txt Datei.
Jetzt habe ich nur das Problem, dass eines dieser Felder ein MemoFeld ist, welches ich auch nicht ändern kann.
Dadurch rutscht aber auch in der .txt eine 2.Zeile mit rein und macht sowohl Filter als auch Sortierung kaputt :(
Da das Memo nur 80 Zeichen fassen kann und die Vorfelder "nur" auf knapp 150, kommt man nicht an die 255 Grenze der txt-Zeilen.
Wie bringe ich das DBMemo dazu statt
"Ich habe einen Fehler "
"gefunden."
das in mein .txt zu schreiben
"Ich habe einen Fehler gefunden."
Danke für Hilfen :)
Nersgatt - Mi 18.05.11 15:20
Ersetze in dem String das #13#10 durch nix (= '') bzw. durch einen Leerschritt.
Jakane - Mi 18.05.11 15:42
Nersgatt hat folgendes geschrieben : |
| Ersetze in dem String das #13#10 durch nix (= '') bzw. durch einen Leerschritt. |
Problem... es gibt kein #13#10 in dem String soweit ich das sehe, wie löscht man was unsichtbares?
Jakane - Mi 18.05.11 16:00
Ich verwende selbst #13 um ein Zeilenumbruch zu provozieren.
Aber was ich nicht sehe kann ich nicht löschen. und ein #13 sieht man nicht als #13 sondern als zeilenumbruch, wie löscht mal sowas?
zuma - Mi 18.05.11 16:23
Jakane hat folgendes geschrieben : |
Aber was ich nicht sehe kann ich nicht löschen.
|
wenn du mit dem Auge guckst, siehst du nicht alles, schau lieber mit dem Verstand ;)
Delphi-Quelltext
1:
| lstr := StringReplace(DeinMemoText, '#13#10', '', [rfReplaceAll]); |
sollte dir helfen
Jakane - Mi 18.05.11 16:28
zuma hat folgendes geschrieben : |
wenn du mit dem Auge guckst, siehst du nicht alles, schau lieber mit dem Verstand ;)
Delphi-Quelltext 1:
| lstr := StringReplace(Memo, '#13#10', '', [rfReplaceAll]); |
sollte dir helfen |
Leider nicht, das Memo wird nach wir vor 2-Zeilig gezeigt.
sowohl Memo als auch lstr :(
zuma - Mi 18.05.11 16:34
was ist memo für ein typ? TMemo oder String?
zeig mal die codestelle, wo du die ersetzung machst ...
Jakane - Do 19.05.11 09:18
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| Var Sx : String Begin . . . Sx:= '|' + DBtxtNummer.Field.AsString + '|' + txtKundenNr.Text + '|' + DBtxtVersion.Field.AsString + '|' + DBtxtUsername.Field.AsString + '|' + DBtxtDatumZeit.Field.AsString + '|' + DBtxtPerMail.Field.AsString + '|' + DBtxtFehlertext.Field.AsString + '|' + DBtxtFormCaption.Field.AsString + '|' + DBtxtFormClassName.Field.AsString;
lbTransport.Items.Add(Sx); |
DBtxtFehlertext.Field.AsString ist in der Datenbank als Memo/Blob markiert und das kann ich in der Datenbank auch nicht ändern
Moderiert von
Narses: Code- durch Delphi-Tags ersetzt
Nersgatt - Do 19.05.11 09:29
Und wo ist da die Ersetzung?
Jakane - Do 19.05.11 09:39
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| Var Sx, Memo : String; Begin . . . Memo := StringReplace(DBtxtFehlertext.Field.AsString, '#13#10', '', [rfReplaceAll]); Sx:= '|' + DBtxtNummer.Field.AsString + '|' + txtKundenNr.Text + '|' + DBtxtVersion.Field.AsString + '|' + DBtxtUsername.Field.AsString + '|' + DBtxtDatumZeit.Field.AsString + '|' + DBtxtPerMail.Field.AsString + '|' + Memo + '|' + DBtxtFormCaption.Field.AsString + '|' + DBtxtFormClassName.Field.AsString;
lbTransport.Items.Add(Sx); |
Was nicht funktioniert, lass ich üblicherweise nicht drin.
So hatte ich sie verwendet.
Moderiert von
Narses: Code- durch Delphi-Tags ersetzt
Nersgatt - Do 19.05.11 09:43
Da stimmt ja die Abfolge nicht. Mach die Ersetzung auf Sx:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| Sx:= '|' + DBtxtNummer.Field.AsString + '|' + txtKundenNr.Text + '|' + DBtxtVersion.Field.AsString + '|' + DBtxtUsername.Field.AsString + '|' + DBtxtDatumZeit.Field.AsString + '|' + DBtxtPerMail.Field.AsString + '|' + Memo + '|' + DBtxtFormCaption.Field.AsString + '|' + DBtxtFormClassName.Field.AsString;
Sx := StringReplace(Sx, '#13#10', '', [rfReplaceAll]);
lbTransport.Items.Add(Sx); |
Oder nur auf das eine Feld direkt beim Zusammensetzen des Strings.
Jakane - Do 19.05.11 09:51
Funktioniert leider auch nicht
Selbst wenn ich nur '#' statt #13#10 mache, löscht er mir zwar alle # zeichen, aber der zeilenumbruch bleibt
Nersgatt - Do 19.05.11 10:17
:shock:
Jetzt sehe ich es. ZUMA!!!! :twisted:
Delphi-Quelltext
1:
| Sx := StringReplace(Sx, #13#10, '', [rfReplaceAll]); |
So muss es sein (ohne die ' beim #13#10)
Jakane - Do 19.05.11 10:21
Moderiert von
Narses: Komplett-Zitat des letzten Beitrags entfernt.
:D :D :!:
funktioniert!
und eine neue funktion gelernt die ich auch woanders benutzen kann (happy)
zuma - Do 19.05.11 10:58
ups :oops:
schnell vor Feierabend noch antworten, etwas c&p, kontroll-lesen gestrichen und schon schreibt man so'n sch...
Jakane - Do 19.05.11 11:14
zuma hat folgendes geschrieben : |
ups :oops:
schnell vor Feierabend noch antworten, etwas c&p, kontroll-lesen gestrichen und schon schreibt man so'n sch... |
Trotzdem Danke :)
DonManfred - Do 19.05.11 12:57
zuma hat folgendes geschrieben : |
Delphi-Quelltext 1:
| lstr := StringReplace(DeinMemoText, '#13#10', '', [rfReplaceAll]); |
sollte dir helfen |
Das sucht aber den STRING '#13#10' und nicht nach CRLF...
Delphi-Quelltext
1:
| lstr := StringReplace(DeinMemoText, #13#10, '', [rfReplaceAll]); |
Dürfte besser sein.
Jakane - Do 19.05.11 13:21
Nersgatt war 2,5h schneller :D :wink:
DonManfred - Do 19.05.11 15:28
Jakane hat folgendes geschrieben : |
| Nersgatt war 2,5h schneller :D :wink: |
Yo, sollte lieber erst alles lesen bevor ich antworte :D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!