Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zeichen mit StringReplace aus Memo entfernen (https://www.delphipraxis.net/83490-zeichen-mit-stringreplace-aus-memo-entfernen.html)

Yheeky 3. Jan 2007 16:14


Zeichen mit StringReplace aus Memo entfernen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

habe dieses Mal nur eine kurze Frage ;-)
Wie bekomme ich die im Anhang zu sehenden Zeichen per StringReplace aus einem Memo raus?

Luckie 3. Jan 2007 16:22

Re: Zeichen mit StringReplace aus Memo entfernen
 
Das sieht aus, als wenn das nicht darstellbare Steuerzeichen wären. Guck dir die Datei mal in einem HexEditor an. Bei StringReplace gibst du dann die ordinal Werte an. Zum Beispiel $0D$0A würde alle Zeilenumbrüche entfernen.

Yheeky 3. Jan 2007 16:26

Re: Zeichen mit StringReplace aus Memo entfernen
 
Du hast recht - es handelt sich in der Tat um einen Zeilenumbruch...ich habe bereits folgendes (ohne Erfolg) probiert:

Delphi-Quellcode:
Result := StringReplace(Text, #10#13, '', [rfReplaceAll]);
oder
Result := StringReplace(Text, #10, '', [rfReplaceAll]);
oder
Result := StringReplace(Text, #13, '', [rfReplaceAll]);
Ich denke das ist das, was du mit $0D$0A meintest oder?

idontwantaname 3. Jan 2007 16:30

Re: Zeichen mit StringReplace aus Memo entfernen
 
Zitat:

Zitat von Yheeky
Du hast recht - es handelt sich in der Tat um einen Zeilenumbruch...ich habe bereits folgendes (ohne Erfolg) probiert:

Delphi-Quellcode:
Result := StringReplace(Text, #10#13, '', [rfReplaceAll]);
oder
Result := StringReplace(Text, #10, '', [rfReplaceAll]);
oder
Result := StringReplace(Text, #13, '', [rfReplaceAll]);
Ich denke das ist das, was du mit $0D$0A meintest oder?

Du musst Text := StringReplace(Text, #10#13, '', [rfReplaceAll]); verwenden, da der neue String ja wieder dem Memo zugewiesen werden muss!

marabu 3. Jan 2007 16:46

Re: Zeichen mit StringReplace aus Memo entfernen
 
Hallo,

es genügt eine Zuweisung von Text an Text um die falsch platzierten Zeilenumbrüche zu entfernen. Besser ist es aber diese Zeilenumbrüche garnicht erst einzubauen. Das geht am besten über eine temporäre StringListe:

Delphi-Quellcode:
procedure AddText(s: TStrings; sText: String);
var
  sTemp: TStrings;
begin
  sTemp := TStringList.Create;
  sTemp.Text := sText;
  s.AddStrings(sTemp);
  sTemp.Free;
end;
Grüße vom marabu

Christian Seehase 3. Jan 2007 16:52

Re: Zeichen mit StringReplace aus Memo entfernen
 
Moin Zusammen,

nur noch mal der Vollständigkeit halber:
Der Zeilenumbruch in #13#10 (bzw. $0D$0A), und nicht anders herum.

Yheeky 3. Jan 2007 17:28

Re: Zeichen mit StringReplace aus Memo entfernen
 
Also

Delphi-Quellcode:
Result := StringReplace(Text, #13#10, '', [rfReplaceAll]);
funktioniert! Danke für den Hinweis und an alle anderen Postings!


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