AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TWebbrowser Sonderzechen bei innterhtml
Thema durchsuchen
Ansicht
Themen-Optionen

TWebbrowser Sonderzechen bei innterhtml

Ein Thema von cokotech2 · begonnen am 27. Jan 2007 · letzter Beitrag vom 28. Jan 2007
Antwort Antwort
Seite 1 von 2  1 2      
cokotech2

Registriert seit: 19. Nov 2006
15 Beiträge
 
#1

TWebbrowser Sonderzechen bei innterhtml

  Alt 27. Jan 2007, 09:25
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!
  Mit Zitat antworten Zitat
Ydobon

Registriert seit: 3. Mär 2006
264 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: TWebbrowser Sonderzechen bei innterhtml

  Alt 27. Jan 2007, 10:23
Ein Fragezeichen hört sich wie eine schief gegangene Codepagekonvertierung an. Verwendest du AnsiStrings oder WideStrings für den Text?
  Mit Zitat antworten Zitat
cokotech2

Registriert seit: 19. Nov 2006
15 Beiträge
 
#3

Re: TWebbrowser Sonderzechen bei innterhtml

  Alt 27. Jan 2007, 17:58
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!
  Mit Zitat antworten Zitat
cokotech2

Registriert seit: 19. Nov 2006
15 Beiträge
 
#4

Re: TWebbrowser Sonderzechen bei innterhtml

  Alt 27. Jan 2007, 18:07
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!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: TWebbrowser Sonderzechen bei innterhtml

  Alt 27. Jan 2007, 18:09
Wie liest du den Quelltext aus?
Markus Kinzler
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: TWebbrowser Sonderzechen bei innterhtml

  Alt 27. Jan 2007, 18:34
Hallo Sven,

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
  Mit Zitat antworten Zitat
Ydobon

Registriert seit: 3. Mär 2006
264 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: TWebbrowser Sonderzechen bei innterhtml

  Alt 27. Jan 2007, 18:41
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;
  Mit Zitat antworten Zitat
cokotech2

Registriert seit: 19. Nov 2006
15 Beiträge
 
#8

Re: TWebbrowser Sonderzechen bei innterhtml

  Alt 27. Jan 2007, 19:45
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!
  Mit Zitat antworten Zitat
Ydobon

Registriert seit: 3. Mär 2006
264 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: TWebbrowser Sonderzechen bei innterhtml

  Alt 27. Jan 2007, 21:27
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.
  Mit Zitat antworten Zitat
cokotech2

Registriert seit: 19. Nov 2006
15 Beiträge
 
#10

Re: TWebbrowser Sonderzechen bei innterhtml

  Alt 27. Jan 2007, 21:50
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!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19: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