![]() |
Wie alle zeilenumbrüche löschen?
Wie kann ich einen String nach zeilenumbrüchen durchsuchen die z.B durch betätigen der entertaste in einem Memo gemacht wurden und diese dann auch löschen?
|
Re: Wie alle zeilenumbrüche löschen?
|
Re: Wie alle zeilenumbrüche löschen?
Zeilenumbrüche werden i.d.R. unter Windows durch die ASCII-Codes 13 und 10 (in dieser Reihenfolge!) dargestellt. Du müsstest also diese Zeichen per StringReplace durch einen Leerstring ('') ersetzen.
Allerdings kann es sein, dass einige Programme (speziell ursprünglich von anderen Betriebssystemen kommende) die Zeilenumbrüche als #10, #13 oder gar #10#13 speichern. Das beste wird also sein, alle Vorkommen von diesen Zeichen getrennt durch Leerstrings zu ersetzen. |
Re: Wie alle zeilenumbrüche löschen?
ok danke.
|
Re: Wie alle zeilenumbrüche löschen?
Also ich mach es jetzt so und es klappt nicht:
Delphi-Quellcode:
Warum?
StringReplace(S, #13#10, '', [rfReplaceAll, rfIgnoreCase]);
|
Re: Wie alle zeilenumbrüche löschen?
Hallo alle zusammen.
@jonny: Versuchs mal damit:
Delphi-Quellcode:
Ansosten eventuell so:
StringReplace(S, #13+#10, '', [rfReplaceAll, rfIgnoreCase]);
Delphi-Quellcode:
...
StringReplace(S, ''+#13+#10, '', [rfReplaceAll, rfIgnoreCase]);
funktioniert beides nicht...hmmm. |
Re: Wie alle zeilenumbrüche löschen?
Dann versuche doch mal das:
Delphi-Quellcode:
Der Code sucht das erste Auftauchen von #10 und gibt dir die ASCII Codes der 2 Zeichen davor und dahinter.
Var
i, LfPos : Integer; s, OutStr : String; Begin s := Memo1.Text; LfPos := Pos(#10, s); If LfPos > 0 Then For i := -2 To 2 Do If i = 0 Then OutStr := OutStr + ', ' + '|' + IntToStr(ord(s[i + LfPos])) + '|' Else OutStr := OutStr + ', ' + IntToStr(ord(s[i + LfPos])); ShowMessage(Copy(outstr, 3, Length(OutStr))); End; Damit kannst du dann deinen Suchstring bestimmen. Edit: Tippfehler... |
Re: Wie alle zeilenumbrüche löschen?
meine Lösung sieht so aus:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
function DeleteWordWraps(Value: String): String; begin Result := Value; While AnsiPos(String(#13+#10), Result) > 0 do Delete(Result, AnsiPos(String(#13+#10), Result), 2); end; begin Memo1.Text := DeleteWordWraps(Memo1.Text); end; |
Re: Wie alle zeilenumbrüche löschen?
Und was kann ich dann mit soeinen ergebniss wie ",58, 13, |10|, 118, 111" machen?
|
Re: Wie alle zeilenumbrüche löschen?
Wie meinst du das ?
Möchtest du Substrings ersetzen? edit... sorry, fühlte mich angesprochen. |
Re: Wie alle zeilenumbrüche löschen?
Jetzt weißt du, dass du mit...
Delphi-Quellcode:
... alle Zeilenumbrüche rauskriegst. :mrgreen:
XYZ := StringReplace(DeinText, #13#10, '', [rfReplaceAll]);
|
Re: Wie alle zeilenumbrüche löschen?
Danke an alle, läuft schon!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz