Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Leerzeichen/Zeilenumbrüche bis unbekannten Text löschen (https://www.delphipraxis.net/111296-leerzeichen-zeilenumbrueche-bis-unbekannten-text-loeschen.html)

Firewing 1. Apr 2008 21:10


Leerzeichen/Zeilenumbrüche bis unbekannten Text löschen
 
Ahoi Matrosen, wie im anderen Thread auch schon in der Art gefragt:

Wie bekomme ich es realisiert, dass er meine Zeichenkette löscht (HTML Quelltext), bis der erste unbekannte Buchstabe auftritt?

Die Zeichenkette sieht etwa so aus: [Zeilenumbruch][Zeilenumbruch][Leerzeichen][Leerzeichen][Leerzeichen]xy Peter Pan ist ein toller...

(Die Zeilenumbruch/Leerzeichenanzahl wechselt und der Text (xy Peter Pan ist ein toller...) auch...)

Habe den Ansatz verfolgt alle Zeilenumbrüche/Leerzeichen mit Replace '' zu ersetzen - bei Zeilenumbrüchen OK, aber bei Leerzeichen nicht (Sätze usw haben ja auch Leerzeichen ;) )

(Info: Die Leerzeichen sind nicht als &bnsp; im Quelltext angezeigt, der Quelltext ist nur "übersichtlich" dargestellt, deswegen die vielen "überflüssigen Leerzeichen".)

Hat da jemand ne gute Idee? Danke schön, schon im Vorraus :)

dominikkv 1. Apr 2008 21:32

Re: Leerzeichen/Zeilenumbrüche bis unbekannten Text löschen
 
Delphi-Quellcode:
  Delete(MeineHTMLSeite, 1, Pos(MeineHTMLSeite, 'Der Text ab dem nicht mehr gelöscht werden soll'));
oder (wenn der Anfangstext nicht bekannt ist)
Delphi-Quellcode:
  while (length(MeineHTMLSeite) > 0) and not (MeineHTMLSeite[1] in ['A'..'Z', 'a'..'z', '0'..'9']) do
    Delete(MeineHTMLSeite, 1, 1);

marabu 2. Apr 2008 07:54

Re: Leerzeichen/Zeilenumbrüche bis unbekannten Text löschen
 
Moin,

Zitat:

Zitat von Firewing
... Wie bekomme ich es realisiert, dass er meine Zeichenkette löscht ..., bis der erste unbekannte Buchstabe auftritt? ...

bei einfachem Text könnte ich mir das so vorstellen:

Delphi-Quellcode:
function SkipChars(sz: PChar; chars: TSysCharSet): PChar;
begin
  while Assigned(sz)
  and (sz^ in chars) do
    Inc(sz);
  Result := sz;
end;

// ZeichenKette := SkipChars(ZeichenKette, [#10,#13,#32]);
Wobei speziell whitespace auch mit Trim() entfernt werden kann.

Grüße vom marabu


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