Autor Beitrag
Jakane
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 257



BeitragVerfasst: Mi 18.05.11 15:18 
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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Mi 18.05.11 15:20 
Ersetze in dem String das #13#10 durch nix (= '') bzw. durch einen Leerschritt.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Jakane Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 257



BeitragVerfasst: Mi 18.05.11 15:42 
user profile iconNersgatt hat folgendes geschrieben Zum zitierten Posting springen:
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?
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Mi 18.05.11 15:55 
user profile iconJakane hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconNersgatt hat folgendes geschrieben Zum zitierten Posting springen:
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?

Dann siehst Du nur den Wald vor lauter Bäumen nicht. Das #13#10 (oder manchmal auch nur #13) ist der Zeilenumbruch. Diese Zeichen sagen dem Memo also "hey, hier an dieser Stelle fang mal ne neue Zeile an!". Und genau das musst Du rauslöschen.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Jakane Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 257



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: Mi 18.05.11 16:23 
user profile iconJakane hat folgendes geschrieben Zum zitierten Posting springen:

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 ;)

ausblenden Delphi-Quelltext
1:
lstr := StringReplace(DeinMemoText, '#13#10''', [rfReplaceAll]);					


sollte dir helfen

_________________
Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
Jakane Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 257



BeitragVerfasst: Mi 18.05.11 16:28 
user profile iconzuma hat folgendes geschrieben Zum zitierten Posting springen:

wenn du mit dem Auge guckst, siehst du nicht alles, schau lieber mit dem Verstand ;)

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: 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 ...

_________________
Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
Jakane Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 257



BeitragVerfasst: Do 19.05.11 09:18 
ausblenden 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 user profile iconNarses: Code- durch Delphi-Tags ersetzt
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Do 19.05.11 09:29 
Und wo ist da die Ersetzung?

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Jakane Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 257



BeitragVerfasst: Do 19.05.11 09:39 
ausblenden 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 user profile iconNarses: Code- durch Delphi-Tags ersetzt
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Do 19.05.11 09:43 
Da stimmt ja die Abfolge nicht. Mach die Ersetzung auf Sx:
ausblenden 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.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Jakane Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 257



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Do 19.05.11 10:17 
:shock:

Jetzt sehe ich es. ZUMA!!!! :twisted:
ausblenden Delphi-Quelltext
1:
Sx := StringReplace(Sx, #13#10'', [rfReplaceAll]);					

So muss es sein (ohne die ' beim #13#10)

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)

Für diesen Beitrag haben gedankt: Jakane
Jakane Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 257



BeitragVerfasst: Do 19.05.11 10:21 
Moderiert von user profile iconNarses: Komplett-Zitat des letzten Beitrags entfernt.

:D :D :!:

funktioniert!
und eine neue funktion gelernt die ich auch woanders benutzen kann (happy)
zuma
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: 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...

_________________
Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!

Für diesen Beitrag haben gedankt: Jakane
Jakane Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 257



BeitragVerfasst: Do 19.05.11 11:14 
user profile iconzuma hat folgendes geschrieben Zum zitierten Posting springen:
ups :oops:
schnell vor Feierabend noch antworten, etwas c&p, kontroll-lesen gestrichen und schon schreibt man so'n sch...


Trotzdem Danke :)
DonManfred
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 148
Erhaltene Danke: 2

Windows 7
Delphi XE3 Pro + HTML5Builder
BeitragVerfasst: Do 19.05.11 12:57 
user profile iconzuma hat folgendes geschrieben Zum zitierten Posting springen:

ausblenden Delphi-Quelltext
1:
lstr := StringReplace(DeinMemoText, '#13#10''', [rfReplaceAll]);					

sollte dir helfen


Das sucht aber den STRING '#13#10' und nicht nach CRLF...

ausblenden Delphi-Quelltext
1:
lstr := StringReplace(DeinMemoText, #13#10'', [rfReplaceAll]);					


Dürfte besser sein.

_________________
Gruss Manfred
Jakane Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 257



BeitragVerfasst: Do 19.05.11 13:21 
Nersgatt war 2,5h schneller :D :wink:
DonManfred
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 148
Erhaltene Danke: 2

Windows 7
Delphi XE3 Pro + HTML5Builder
BeitragVerfasst: Do 19.05.11 15:28 
user profile iconJakane hat folgendes geschrieben Zum zitierten Posting springen:
Nersgatt war 2,5h schneller :D :wink:


Yo, sollte lieber erst alles lesen bevor ich antworte :D

_________________
Gruss Manfred