Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Steuerzeichen (Zeilenumbrüche) aus einem String entfernen? (https://www.delphipraxis.net/81540-steuerzeichen-zeilenumbrueche-aus-einem-string-entfernen.html)

simlei 29. Nov 2006 06:09


Steuerzeichen (Zeilenumbrüche) aus einem String entfernen?
 
Hallo!
Ich habe ein Problem mit Strings, die einen Zeilenumbruch beinhalten, in folgender Weise:
Ich lese eine HTML-Seite ein, aus der ich eben einige Inhalte extrahieren will. nur funktioniert das mit AnsiMidStr oft nicht, da inmitten des Substr, den ich herausgesucht habe, ein Zeilenumbruch ist. Die gesamte Website liegt in einem String vor, die Zeilenumbrüche sind eben noch als Steuerzeichen enthalten. Man muss noch dazu sagen, dass der String sehr lang ist, optimal wäre also eine zugleich schnelle Methode, aber ich bin da jetzt nicht so wählerisch :)
Kann mir jemand verraten, wie ich vor dem Beginnen des Durchlaufes diese Steuerzeichen entfernen kan, sodass alles funktioniert? Danke!

Ines 29. Nov 2006 06:16

Re: Steuerzeichen (Zeilenumbrüche) aus einem String entferne
 
Hallo,
ich entferne Steuerzeichen, Umlaute u.ä. mit "StringReplace".
Code:
function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string
Gruß Ines

Duffy 29. Nov 2006 06:17

Re: Steuerzeichen (Zeilenumbrüche) aus einem String entferne
 
Hallo simlei

so könnte es gehen ...
Delphi-Quellcode:
function DelCRLF(const S: string): string;
var
  I: Integer;
begin
  Result := S;
  for I := Length(Result) downto 1 do
  begin
    if (Result[I] = #13) or (Result[I] = #10) then
    begin
      Delete(Result, I, 1);
    end;
  end;
end;
bye
Claus

Blackheart 29. Nov 2006 09:47

Re: Steuerzeichen (Zeilenumbrüche) aus einem String entferne
 
Hallo
Schau mal nach Trim, das könnte auch was sein für Dich.

Blackheart

Thorben_K 29. Nov 2006 10:34

Re: Steuerzeichen (Zeilenumbrüche) aus einem String entferne
 
trim entfern aber nur leerzeichen (und steuerzeichen) am ende und am anfang eines string, nicht in der mitte

SirThornberry 29. Nov 2006 11:46

Re: Steuerzeichen (Zeilenumbrüche) aus einem String entferne
 
@Duffy: Die Deletevariante ist nicht besonders schnell. Besser ist wenn du eine zweite String-Variable nimmst und alle Zeischen darein kopierst außer das #13#10 und am Ende einmal die Länge setzt.

Duffy 29. Nov 2006 12:15

Re: Steuerzeichen (Zeilenumbrüche) aus einem String entferne
 
Hallo Jens,
Zitat:

Zitat von SirThornberry
@Duffy: Die Deletevariante ist nicht besonders schnell. Besser ist wenn du eine zweite String-Variable nimmst und alle Zeischen darein kopierst außer das #13#10 und am Ende einmal die Länge setzt.

Es war ja nur ein Hinweis wie es gehen könnte ...


bye
Claus

marabu 29. Nov 2006 14:15

Re: Steuerzeichen (Zeilenumbrüche) aus einem String entferne
 
Hallo,

bei HTML-Text sollte man etwas genauer hinschauen. Eine Zeilentrennung kann in der Regel nicht einfach entfernt werden, sondern muss in der Regel (Ausnahme z.B. PRE) durch ein Leerzeichen ersetzt werden. Außerdem müsste streng genommen noch eine white space Verdichtung nachgeschoben werden. Ich würde auf den HTML-Code aber nicht mit String-Routinen losgehen, sonder den MSHTML-Parser benutzen.

Freundliche Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:00 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