Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit String und #$A am Ende (https://www.delphipraxis.net/20803-problem-mit-string-und-%24-am-ende.html)

seddto1977 23. Apr 2004 13:35


Problem mit String und #$A am Ende
 
Hallo,

Ich habe versucht mit der indy idhttp-kompo einen Webseite in einen String zu laden um nachher die Links auf der Webseite auslesen zu können. Das dumme ist das machmal beim einlesen einer Webseite hinten an den String von Delphi die zeichen '#$A' angehängt werden. Obwohl es drei Zeichen sind kann man die drei Zeichen mit dem Befehl letztes zeichen des Strings löschen abschneiden, also vermute ich mal das es ein befehl für "Neue zeile" oder sowas ist was Delphi da anhängt. Kann mir jemand sagen wie ich das abschalten kann , das diese Steuerzeichen an den String angehängt werden. Wenn ich nämlich nun die URLs aus dem String herausschneiden will bleiben die zeichen da, obwohl ich von der letzten Stelle des Strings aus abgeschnitten hab. Und wenn ich dann die URl aufrufen will hab ich sowas wie http://www.irgendwas.de/#$A was natürlich dann eine Fehlermeldung produziert :( Kann mir jemand helfen?

glkgereon 24. Apr 2004 17:21

Re: Problem mit String und #$A am Ende
 
keine ahnung, ich würds so lösen:

ich gehe davon aus, das du die urls in einem string (zwischen)speicherst

dann würd ich einfach sagen

Delphi-Quellcode:
repeat
url:=ziehdieurlraus;
url:=schneidab(url);
speichern(url);
until keineUrlmehrda;
wobei die function schneidab das da ist:

Delphi-Quellcode:
function schneidab(url:string):string;
begin
for i:=1 ton 3 do machletzteszeichenweg(url);
schneidab:=url;
end;
ums kurz zu sagen: doofheit hinnehmen und mit dem holzhammer jedesmal den string wieder zurechtschneiden :-D

MathiasSimmack 24. Apr 2004 17:26

Re: Problem mit String und #$A am Ende
 
Man könnte, um bei dieser tollen Analogie zu bleiben, auch einfach sagen:
Code:
Prüfe ob letztes Zeichen im String ein $0a ist
  Wenn Ja: weg und noch mal prüfen
  Wenn Nein: diese Prüfschleife verlassen
Aber ich glaube, da gab es auch fertige Funktionen dafür, die solche Steuerzeichen u.ä. automatisch vom Ende oder Anfang des Strings entfernen. Trimirgendwas ...

glkgereon 24. Apr 2004 17:32

Re: Problem mit String und #$A am Ende
 
das problem ist nur, wenn du sagst wenn letztes zeichen=# oder 0 oder $:

was ist wenn der string rauskommen soll?

'sdkfhsaithrhfksdfsdfg#&###&&0&&&00&#0'

gut, übertrieben, aber möglich

MathiasSimmack 24. Apr 2004 18:21

Re: Problem mit String und #$A am Ende
 
Ich verstehe deine Frage nicht.

Es geht wohl darum, die Zeichen $, 0 und A am Ende eines Strings zu entfernen (und nicht, wie ich erst dachte, das Zeichen $0a als CHAR an sich), aber das nur wenn sie in genau der Form $0A auftauchen. Es sind also drei Zeichen in einer bestimmten Reihenfolge.

Und? Man überprüft also meinetwegen die letzten 3 Zeichen und entfernt sie, wenn sie der o.g. Form entsprechen. Und diese Form sehe ich in deinem übertriebenen Beispiel
Zitat:

sdkfhsaithrhfksdfsdfg#&###&&0&&&00&#0
nicht.

glkgereon 24. Apr 2004 18:51

Re: Problem mit String und #$A am Ende
 
Zitat:

wenn du sagst wenn letztes zeichen=# oder 0 oder $
das war nichts als ein hinweis auf die ausführung der if-konstrukion...

MathiasSimmack 24. Apr 2004 23:02

Re: Problem mit String und #$A am Ende
 
Dann war´s ein falscher Hinweis, denn immerhin soll ja geprüft werden, ob die letzten 3 Zeichen # und $ und A sind.

MrKnogge 25. Apr 2004 09:15

Re: Problem mit String und #$A am Ende
 
Hast du vor dem Anzeigen schon mal folgendes Probiert ?
Delphi-Quellcode:
trim(DeinString);

seddto1977 26. Apr 2004 19:53

Re: Problem mit String und #$A am Ende
 
Naja ich verstehe eigentlich auch nicht ganz wie das geht, denn Delphi hängt 3 Zeichen an den String an, nämlich #$A. Allerdings verhalten sich diese 3 Zeichen wie ein Zeichen...wenn ich nämlich das letzte Zeichen des Strings lösche, sind alle 3 Zeichen weg! Das Problem ist, das die Zeichen nicht immer angehängt werden, sondern nur manchmal. Wenn ich also standartmäßig das letzte Zeichen lösche könnte es auch passieren, das ich mal eine ulr rauskriege wie www. delphipraxis.co wenn kein Zeichen angehängt wurde. Und Suchen nach #$A kann ich leider auch nicht denn selbst wenn die Zeichen an den String angehängt sind wird nix gefunden weil die 3 Zeichen offenbar nur ein zeichen belegen...Keine Ahnung wie das geht :gruebel: :wall:

//Edit

@ MrKnogge

Danke werds gleich mal probieren ;)

SirThornberry 26. Apr 2004 20:01

Re: Problem mit String und #$A am Ende
 
also ich kann gar nicht glauben das wirklich "#A" oder so angehängt wird. Wenn ich debuge zeits das bei mir auch an, allerdings nur weil es ein nicht darstellbares zeichen ist (zeilenumbruch). Ich würde auch nich behaupten das dieses zeichen von den indies angehangen wird sondern es ist vielmehr die eingabetaste hinter der letzten zeile im htmldokument. Es gibt fast keine seite wo im quelltext nicht nach dem letzten tag noch eine eingabetaste ist.... dementsprechend gehört es zum quelltext und liegt nicht an den indies


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