Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Leerzeichen -> neue Zeile (https://www.delphipraxis.net/39768-leerzeichen-neue-zeile.html)

TheAn00bis 7. Feb 2005 16:45


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?

KrasserChecker 7. Feb 2005 16:58

Re: Leerzeichen -> neue Zeile
 
Delphi-Quellcode:
Memo.Text:= StringReplace(Memo.Text,' ',#13#10,[rfReplaceAll]);

TheAn00bis 7. Feb 2005 17:05

Re: Leerzeichen -> neue Zeile
 
"#13#10" ist der Ansi-Code für eine neue Zeile? Wenn ja dann danke!

KrasserChecker 7. Feb 2005 17:07

Re: Leerzeichen -> neue Zeile
 
#13#10 = CRLF
oder anders ausgedrückt: Zeilenumbruch

TheAn00bis 7. Feb 2005 17:14

Re: Leerzeichen -> neue Zeile
 
thx, wenn ich das nicht wie du machen will, sondern so:

Delphi-Quellcode:
function Zeilenumbruch(text: String):String;
begin
while pos(' ', text)<>0 do text[pos(' ', text)]:=#13#10;
result:=text;
end;
bekomme ich die Fehlermeldung das #13#10 Char und kein String ist. Kann ich das irgendwie umgehen und trotzdem so machen?
Denn eigentlich ist ein char ja auch ein kleiner String, oder?

//edit: also ich meine trotzdem mit pos?

KrasserChecker 7. Feb 2005 17:18

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.

jfheins 7. Feb 2005 17:18

Re: Leerzeichen -> neue Zeile
 
Das kommt, weil Text[x] ein Char ist, aber #13#10 ein String (2 Chars).

TheAn00bis 7. Feb 2005 17:41

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:
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;
Kann mir jemand sagen, ob das irgnedwie einfacher geht? (Ich will ja nicht auf meinem Delphi-Niveau stehen bleiben ;))

KrasserChecker 7. Feb 2005 17:44

Re: Leerzeichen -> neue Zeile
 
Auch auf die Gefahr hin, mich zu wiederholen:

Delphi-Quellcode:
 Result := StringReplace(text,' ',#13#10,[rfReplaceAll]);

jfheins 7. Feb 2005 17:45

Re: Leerzeichen -> neue Zeile
 
Zitat:

Zitat von TheAn00bis
Kann mir jemand sagen, ob das irgnedwie einfacher geht? (Ich will ja nicht auf meinem Delphi-Niveau stehen bleiben ;))

Natürlich ...

:arrow: Delphi-Referenz durchsuchenStringReplace (Wurde ja schon gesagt)

: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 05:32 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