Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wie alle zeilenumbrüche löschen? (https://www.delphipraxis.net/17346-wie-alle-zeilenumbrueche-loeschen.html)

jonny 3. Mär 2004 15:10


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?

sakura 3. Mär 2004 15:12

Re: Wie alle zeilenumbrüche löschen?
 
Da sollte Dir Hier im Forum suchenStringReplace helfen. Zeilenumbrüche sind #10 und #13.

...:cat:...

Chewie 3. Mär 2004 15:15

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.

jonny 3. Mär 2004 15:20

Re: Wie alle zeilenumbrüche löschen?
 
ok danke.

jonny 4. Mär 2004 11:01

Re: Wie alle zeilenumbrüche löschen?
 
Also ich mach es jetzt so und es klappt nicht:
Delphi-Quellcode:
  StringReplace(S, #13#10, '', [rfReplaceAll, rfIgnoreCase]);
Warum?

AlphaBug 4. Mär 2004 11:09

Re: Wie alle zeilenumbrüche löschen?
 
Hallo alle zusammen.

@jonny:

Versuchs mal damit:
Delphi-Quellcode:
StringReplace(S, #13+#10, '', [rfReplaceAll, rfIgnoreCase]);
Ansosten eventuell so:
Delphi-Quellcode:
StringReplace(S, ''+#13+#10, '', [rfReplaceAll, rfIgnoreCase]);
...

funktioniert beides nicht...hmmm.

Robert_G 4. Mär 2004 11:12

Re: Wie alle zeilenumbrüche löschen?
 
Dann versuche doch mal das:
Delphi-Quellcode:
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;
Der Code sucht das erste Auftauchen von #10 und gibt dir die ASCII Codes der 2 Zeichen davor und dahinter.
Damit kannst du dann deinen Suchstring bestimmen.

Edit: Tippfehler...

AlphaBug 4. Mär 2004 11:23

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;

jonny 4. Mär 2004 11:23

Re: Wie alle zeilenumbrüche löschen?
 
Und was kann ich dann mit soeinen ergebniss wie ",58, 13, |10|, 118, 111" machen?

AlphaBug 4. Mär 2004 11:27

Re: Wie alle zeilenumbrüche löschen?
 
Wie meinst du das ?

Möchtest du Substrings ersetzen?

edit...

sorry, fühlte mich angesprochen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:02 Uhr.
Seite 1 von 2  1 2      

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