![]() |
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? |
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:
wobei die function schneidab das da ist:
repeat
url:=ziehdieurlraus; url:=schneidab(url); speichern(url); until keineUrlmehrda;
Delphi-Quellcode:
ums kurz zu sagen: doofheit hinnehmen und mit dem holzhammer jedesmal den string wieder zurechtschneiden :-D
function schneidab(url:string):string;
begin for i:=1 ton 3 do machletzteszeichenweg(url); schneidab:=url; end; |
Re: Problem mit String und #$A am Ende
Man könnte, um bei dieser tollen Analogie zu bleiben, auch einfach sagen:
Code:
Aber ich glaube, da gab es auch fertige Funktionen dafür, die solche Steuerzeichen u.ä. automatisch vom Ende oder Anfang des Strings entfernen. Trimirgendwas ...
Prüfe ob letztes Zeichen im String ein $0a ist
Wenn Ja: weg und noch mal prüfen Wenn Nein: diese Prüfschleife verlassen |
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�' gut, übertrieben, aber möglich |
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:
|
Re: Problem mit String und #$A am Ende
Zitat:
|
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.
|
Re: Problem mit String und #$A am Ende
Hast du vor dem Anzeigen schon mal folgendes Probiert ?
Delphi-Quellcode:
trim(DeinString);
|
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 ;) |
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 04:38 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