AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Leerzeichen -> neue Zeile

Ein Thema von TheAn00bis · begonnen am 7. Feb 2005 · letzter Beitrag vom 7. Feb 2005
Antwort Antwort
TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#1

Leerzeichen -> neue Zeile

  Alt 7. Feb 2005, 16:45
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?
  Mit Zitat antworten Zitat
KrasserChecker

Registriert seit: 21. Jul 2004
120 Beiträge
 
#2

Re: Leerzeichen -> neue Zeile

  Alt 7. Feb 2005, 16:58
Memo.Text:= StringReplace(Memo.Text,' ',#13#10,[rfReplaceAll]);
  Mit Zitat antworten Zitat
TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#3

Re: Leerzeichen -> neue Zeile

  Alt 7. Feb 2005, 17:05
"#13#10" ist der Ansi-Code für eine neue Zeile? Wenn ja dann danke!
  Mit Zitat antworten Zitat
KrasserChecker

Registriert seit: 21. Jul 2004
120 Beiträge
 
#4

Re: Leerzeichen -> neue Zeile

  Alt 7. Feb 2005, 17:07
#13#10 = CRLF
oder anders ausgedrückt: Zeilenumbruch
  Mit Zitat antworten Zitat
TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#5

Re: Leerzeichen -> neue Zeile

  Alt 7. Feb 2005, 17:14
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?
  Mit Zitat antworten Zitat
KrasserChecker

Registriert seit: 21. Jul 2004
120 Beiträge
 
#6

Re: Leerzeichen -> neue Zeile

  Alt 7. Feb 2005, 17:18
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.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#7

Re: Leerzeichen -> neue Zeile

  Alt 7. Feb 2005, 17:18
Das kommt, weil Text[x] ein Char ist, aber #13#10 ein String (2 Chars).
  Mit Zitat antworten Zitat
TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#8

Re: Leerzeichen -> neue Zeile

  Alt 7. Feb 2005, 17:41
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 )
  Mit Zitat antworten Zitat
KrasserChecker

Registriert seit: 21. Jul 2004
120 Beiträge
 
#9

Re: Leerzeichen -> neue Zeile

  Alt 7. Feb 2005, 17:44
Auch auf die Gefahr hin, mich zu wiederholen:

 Result := StringReplace(text,' ',#13#10,[rfReplaceAll]);
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#10

Re: Leerzeichen -> neue Zeile

  Alt 7. Feb 2005, 17:45
Zitat von TheAn00bis:
Kann mir jemand sagen, ob das irgnedwie einfacher geht? (Ich will ja nicht auf meinem Delphi-Niveau stehen bleiben )
Natürlich ...

Delphi-Referenz durchsuchenStringReplace (Wurde ja schon gesagt)

Delphi-Quellcode:
for i := 1 to length (Str) do
  if Str[i] = ' then Str2 := Str2 + #13#10
  else Str2 := Str2 + Str[i];
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:20 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