![]() |
Leerzeichen -> neue Zeile
Ich lese aus einem Memo einen String aus, filtere Sonderziechen heraus und will jetzt jedes Leerzeichen in eine neue Zeile umwandeln, um dann das ganze wieder ins Memo zurückzurschreiben. Wie bekomme ich das mit der neuen Zeile realisiert? Kann ich die schon im String angeben oder muss ich das Memofeld durchlaufen lassen?
|
Re: Leerzeichen -> neue Zeile
Delphi-Quellcode:
Memo.Text:= StringReplace(Memo.Text,' ',#13#10,[rfReplaceAll]);
|
Re: Leerzeichen -> neue Zeile
"#13#10" ist der Ansi-Code für eine neue Zeile? Wenn ja dann danke!
|
Re: Leerzeichen -> neue Zeile
#13#10 = CRLF
oder anders ausgedrückt: Zeilenumbruch |
Re: Leerzeichen -> neue Zeile
thx, wenn ich das nicht wie du machen will, sondern so:
Delphi-Quellcode:
bekomme ich die Fehlermeldung das #13#10 Char und kein String ist. Kann ich das irgendwie umgehen und trotzdem so machen?
function Zeilenumbruch(text: String):String;
begin while pos(' ', text)<>0 do text[pos(' ', text)]:=#13#10; result:=text; end; Denn eigentlich ist ein char ja auch ein kleiner String, oder? //edit: also ich meine trotzdem mit pos? |
Re: Leerzeichen -> neue Zeile
Ja, Char & String sind (bedingt) kompatibel, aber #13#10 sind nunmal 2 Zeichen.
Wenn Du nun unbedingt nicht darauf vertrauen willst, dass es die Delphi-Funktion richtig macht musst Du eben Deinen Ergebnisstring neu zusammenbauen und anstelle des Leerzeichen eben die beiden Zeichen einfügen. |
Re: Leerzeichen -> neue Zeile
Das kommt, weil Text[x] ein Char ist, aber #13#10 ein String (2 Chars).
|
Re: Leerzeichen -> neue Zeile
Danke, Leute!
Ist zwar wahrscheinlich viel zu umständlich, aber ich als Delphi Noob bin ganz stolz auf die Funktion. Falls sie noch irgnedjemand gebrauchen kann:
Delphi-Quellcode:
Kann mir jemand sagen, ob das irgnedwie einfacher geht? (Ich will ja nicht auf meinem Delphi-Niveau stehen bleiben ;))
function Zeilenumbruch(text: String):String;
var position: Integer; anfang, ende:String; begin while pos(' ', text)<>0 do begin position:=pos(' ', text); anfang:=copy(text, 0, position-1); ende:=copy(text, position+1, length(text)); text:=anfang+#13#10+ende; end; result:=text; end; |
Re: Leerzeichen -> neue Zeile
Auch auf die Gefahr hin, mich zu wiederholen:
Delphi-Quellcode:
Result := StringReplace(text,' ',#13#10,[rfReplaceAll]);
|
Re: Leerzeichen -> neue Zeile
Zitat:
:arrow: ![]() :arrow:
Delphi-Quellcode:
for i := 1 to length (Str) do
if Str[i] = ' ' then Str2 := Str2 + #13#10 else Str2 := Str2 + Str[i]; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:58 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 by Thomas Breitkreuz