Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Fehler in function zum löschen von Elementen eines Strings (https://www.delphipraxis.net/98083-fehler-function-zum-loeschen-von-elementen-eines-strings.html)

Brakeman 21. Aug 2007 07:58


Fehler in function zum löschen von Elementen eines Strings
 
Hallo,
ich habe hier im Forum folgende function gefunden:

Delphi-Quellcode:
function withouttags (Zeile: string): string;
var i,anfang, ende: integer;

begin
    i := 0;
    While i < length (Zeile) do
     begin
      If Zeile[i] = '<' then
       anfang := i;
      If Zeile[i] = '>' then
       begin
        ende := i;
        delete (Zeile,anfang , ende );
        i := 1;
       end
      else
       inc(i);
     end;
     result := zeile;
end;
Leider funktioniert sie nicht richtig. Denn wenn ich die funktion folgendermassen aufrufe:

Delphi-Quellcode:
withouttags ('[B]das soll übrig bleiben[/B]');
Dann erhalte ich folgendes zurück: das soll übrig bleiben[/B]

Der abschliessende Tag wird also nicht entfernt. Was ist denn an der function falsch?

Danke für die Hilfe!

s-off 21. Aug 2007 08:03

Re: Fehler in function zum löschen von Elementen eines Strin
 
Hallo.
Zitat:

Zitat von Brakeman
[...]Was ist denn an der function falsch?

Danke für die Hilfe!

Diese Frage sollte Dir der Debugger beantworten können.

Edit:
Er findet das abschliessende Token '>' nicht, daher wird 'delete' nicht ausgeführt.
Delphi-Quellcode:
While i < length (Zeile) do
Die Position vom letzten '>' ist aber gleich length(Zeile)...

Brakeman 21. Aug 2007 08:15

Re: Fehler in function zum löschen von Elementen eines Strin
 
Die Funktion an sich verarbeitet den String und liefert auch etwas zurück. Nur möchte ich auch den abschließenden Tag entfernt haben.

Sieht jemand den Fehler?

Sorry, habe deine zweite Antwort nicht gelesen. Habe jetzt
Delphi-Quellcode:
While i <= length (Zeile) do
gesetzt und es funktioniert.

Danke!

s-off 21. Aug 2007 08:19

Re: Fehler in function zum löschen von Elementen eines Strin
 
Schreibe ich heute in Geheimtinte?
Zitat:

Zitat von Brakeman
Sieht jemand den Fehler?

Ja, ich...

Brakeman 21. Aug 2007 08:23

Re: Fehler in function zum löschen von Elementen eines Strin
 
Danke für den Tipp. Es funktioniert!


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