Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TWebbrowser Sonderzechen bei innterhtml (https://www.delphipraxis.net/85197-twebbrowser-sonderzechen-bei-innterhtml.html)

cokotech2 27. Jan 2007 08:25


TWebbrowser Sonderzechen bei innterhtml
 
Hallo!

Sagt mal ich will einen Quellcode einer Seite auslesen mittels der Funktion vom TWebbrowser.
Vorher hatte ich es per Indy gemacht, aber das geht nicht mehr, weil man sich an der Seite anmelden muss.
Bei der Variante mit dem TWebbrowser fehlen aber einige obskure Sonderzeichen, die aber auf der Seite korrekt angezeigt werden und werden durch ein ? ersetzt (leider tatsächlich ein ?).
Wenn ich mir den Quellcode per Firefox anschaue, dann sind die zeichen dort korrekt abgebildet.
Wie kann ich sowas mit dem TWebbrowser schaffen?
Ich habe bereits versucht anstatt TWebbrowser die lib von Mozilla zu nehmen, aber da kann ich gerade mal Benutzername und Kennwort eingeben und bekomme eine Warnung wegen der ungesicherten seite. Dann kommt nix mehr!



Guß Coko!

Ydobon 27. Jan 2007 09:23

Re: TWebbrowser Sonderzechen bei innterhtml
 
Ein Fragezeichen hört sich wie eine schief gegangene Codepagekonvertierung an. Verwendest du AnsiStrings oder WideStrings für den Text?

cokotech2 27. Jan 2007 16:58

Re: TWebbrowser Sonderzechen bei innterhtml
 
Hai!

Naja ehrlich gesagt schreibe ich das ergebnis direkt in eine Datei.... und da ist es lt. Hexeditor tatsächlich ein ?.
Ich habe es auch mit einem memo probiert, gleiches Resultat.
Es muss aber da sein, es wird ja auch dem Schirm korrekt angezeigt, nur in der Datei und im Memo nicht!


Gruß Sven!

cokotech2 27. Jan 2007 17:07

Re: TWebbrowser Sonderzechen bei innterhtml
 
Also ich habe beide typen mal mit umweg in eine Datei gschrieben.... gleiches Ergebnis. Wie gesagt mit Indy gehts, aber das ist mir zu kompliziert mich da einzuloggen.
Falls es eine Rolle spielt, das Zeichen ist ein NO wobei das O unterstrichen ist und es EIN Zeichen ist, nicht zwei wie man annehmen mag. Alle anderen völlig verrückten Zeichen (z.B. ¥†±ÞØæ) werden korrekt wiedergegeben!

Gruß Sven!

mkinzler 27. Jan 2007 17:09

Re: TWebbrowser Sonderzechen bei innterhtml
 
Wie liest du den Quelltext aus?

marabu 27. Jan 2007 17:34

Re: TWebbrowser Sonderzechen bei innterhtml
 
Hallo Sven,

Zitat:

Zitat von cokotech2
Naja ehrlich gesagt schreibe ich das ergebnis direkt in eine Datei....

mich würde interessieren, wie du das genau machst. Vermutlich hast du auf dem Weg zur Datei das HTML-Dokument von Unicode nach Ansi konvertiert - z.B. indem du den Text an einen String zugewiesen hast. Dabei werden nicht konvertierbare Unicode-Zeichen standardmäßig durch ein Fragezeichen ersetzt.

Grüße vom marabu

Ydobon 27. Jan 2007 17:41

Re: TWebbrowser Sonderzechen bei innterhtml
 
Funktioniert es so?
Delphi-Quellcode:
var txt: WideString;
    f: File;
begin
  txt:=(WebBrowser1.Document as IHTMLDocument2).body.innerHTML;
  AssignFile(f, 'c:\test.txt');
  Rewrite(f, 1);
  BlockWrite(f, PWChar(txt)^, Length(txt)*2);
  CloseFile(f);
end;

cokotech2 27. Jan 2007 18:45

Re: TWebbrowser Sonderzechen bei innterhtml
 
Klasse, in meinen Augen bist du der Größte!
Aehm eine dumme Frage.... bin nich so der Superprogger.... wie geht das Rückwärts? Also Blockread??



Gruß Sven!

Ydobon 27. Jan 2007 20:27

Re: TWebbrowser Sonderzechen bei innterhtml
 
Also lag es an der Unicodeumwandlung. Lesen würde mit Reset und BlockRead gehen, allerdings wird es vermutlich einfacher, wenn du gleich mit unicodefähigen Sachen arbeitest. Dafür bieten sich z.B. die Tnt Unicode Controls an, bei denen dann auch Komponenten zur Anzeige mit dabei sind.

cokotech2 27. Jan 2007 20:50

Re: TWebbrowser Sonderzechen bei innterhtml
 
Ha Blockread ist klar... die unicode umwandlung habe ich drn seit der indy komponente...
Aber ich habe keine Ahnung von Blockread, wie muss der Befehl aussehen?


Gruß Sven!


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 Uhr.
Seite 1 von 2  1 2      

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