AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Umlaute-Problem mit idHTTP.Get (Indy) => ö und Co.
Thema durchsuchen
Ansicht
Themen-Optionen

Umlaute-Problem mit idHTTP.Get (Indy) => ö und Co.

Ein Thema von MCXSC · begonnen am 30. Mär 2008 · letzter Beitrag vom 31. Mär 2008
Antwort Antwort
Seite 2 von 3     12 3      
MCXSC
(Gast)

n/a Beiträge
 
#11

Re: Umlaute-Problem mit idHTTP.Get (Indy) => ö und Co.

  Alt 30. Mär 2008, 20:53
Doch ich benutze sie... Mal ein wenig mehr Code:

Delphi-Quellcode:
var
  HTMLCode: TStringList;

function DownloadHTML(URL: String): String;
begin
  try
    Result := UTF8ToANSI(HTTP.Get(URL));
  except
    Exit;
  end;
  Result := StringReplace(Result, #13, #13#10, [rfReplaceAll]);
end;

function BearbeiteHTML(HTML: TSTringList): String;
begin
  //...
end;

procedure Suchen(MyString: String;);
begin
  HTMLCode := TStringList.Create;
  Dothisandthis(Filmtitel);
  FreeAndNil(HTMLCode);
end;

procedure Dothisandthis(MyString: String);
var
  i: Integer;
begin
  HTMLCode.Text := DownloadHTML('http://www.domain.url');
  HTMLCode.Text := BearbeiteHTML(HTMLCode);
  if Pos('[i]XXX[/i]', HTMLCode.Text) <> 0 then Exit
  else begin
    //...
  end;
end;
Zwar ein bisschen gekürzt, aber das wichtige ist drin.

Der Compiler gibt ab dem "if Pos('XXX', HTMLCode.Text) <> 0 then Exit" den oben genannten Fehler aus.

Zitat von Bernhard Geyer:
[Off-Topic]Thunderbird hat wohl etwas zu viel Automatismus bezüglich übereiliger UTF8-Decodierung eingebaut[/Off-Topic]
Ist mir grade ebend auch aufgefallen...
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#12

Re: Umlaute-Problem mit idHTTP.Get (Indy) => ö und Co.

  Alt 30. Mär 2008, 20:58
Wieso benutzt du nicht den TWebBrowser und MSHTML und damit IHTMLDocument und gehst durch all deine gewünschten Elemente? IE + MSHTML nimmt dir doch das ganze Charset/Codierung sowie die m.E. unpassenden POS-Aufrufe für ein Dokumentenformat ab für welches man viel einfacher über den DOM eines dafür entwickelten Komponente geht.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
MCXSC
(Gast)

n/a Beiträge
 
#13

Re: Umlaute-Problem mit idHTTP.Get (Indy) => ö und Co.

  Alt 30. Mär 2008, 21:01
Zitat von Bernhard Geyer:
Wieso benutzt du nicht den TWebBrowser und MSHTML und damit IHTMLDocument und gehst durch all deine gewünschten Elemente? IE + MSHTML nimmt dir doch das ganze Charset/Codierung sowie die m.E. unpassenden POS-Aufrufe für ein Dokumentenformat ab für welches man viel einfacher über den DOM eines dafür entwickelten Komponente geht.
Eben nicht. Ich brauche halt nur den Code in einer StringList, dieser wird später weiterverarbeitet, bzw. es werden Dinge ausgelesen. Der TWebBrowser wäre da ein komplett falscher Weg.
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#14

Re: Umlaute-Problem mit idHTTP.Get (Indy) => ö und Co.

  Alt 30. Mär 2008, 21:09
Bist du dir sicher, dass der Fehler in der Zeile "if Pos('XXX', HTMLCode.Text) <> 0 then Exit" ist, was steht denn in HTMLCode.Text drinnen ?

Greifst du denn in dem else-zweig auf HTMLCode zu ?
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
MCXSC
(Gast)

n/a Beiträge
 
#15

Re: Umlaute-Problem mit idHTTP.Get (Indy) => ö und Co.

  Alt 30. Mär 2008, 21:11
Ich teste grade, aber bis dahin kommt der Compiler eben (habe da auch mal nen Haltepunkt) gesetzt.

Und speichern kann ich die StringList eben auch (vorher) [HTMLCode.SaveToFile('dateiname.txt')], und der Inhalt ist halt so, wie er sein soll, aber immer noch mit dem Umlautproblem.

Und ja: Später wird noch auf die HTMLCode zurückgegriffen.

//Edit: Mal davon abgesehen, scheint UTF8toANS() hier nicht zu greifen...
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#16

Re: Umlaute-Problem mit idHTTP.Get (Indy) => ö und Co.

  Alt 30. Mär 2008, 21:45
Zitat von MCXSC:
Eben nicht. Ich brauche halt nur den Code in einer StringList, dieser wird später weiterverarbeitet, bzw. es werden Dinge ausgelesen. Der TWebBrowser wäre da ein komplett falscher Weg.
Und? Wenn du den DOM vom TWebbrowser aufbauen lässt und solche dinge wie [i]-Elemente auslesen willst ist das sehr einfach möglich in dem du dem IHTMLDocument sagst das du alle entsprechende Elemente haben willst. Läßt sich in ca. 10 Zeilen Quellcode realisieren.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
MCXSC
(Gast)

n/a Beiträge
 
#17

Re: Umlaute-Problem mit idHTTP.Get (Indy) => ö und Co.

  Alt 30. Mär 2008, 21:57
Nein, ich lese kein [i]-Element aus. Okay, da du wohl einen Grund brauchst, gebe ich dir einen (auch wenn es nichts zur Sache tut):

Wenn die Zeile "XXX" in dem Code vorkommt (oder im Original: "Keine Ergebnisse") soll eine MessageBox ausgegeben werden (im kurzen Ausschnitt eben "exit"). Werden allerdings Ergebnisse gefunden, so geht es weiter. Dann wird der obere HTML-Code weggeschnitten und es wird nach z.B. "<td>Genre:</td>" gesucht und weiter ausgelesen. Sprich: Es ist ein Teil der HTML-Auslesefunktion von myCine. Das was du mir da also erzählst, ist (was diesen Fall betrifft) unbrauchbar.
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#18

Re: Umlaute-Problem mit idHTTP.Get (Indy) => ö und Co.

  Alt 30. Mär 2008, 22:08
Wenn er welche findet, liefert dir pos aber <> 0 zurück und geht raus
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
MCXSC
(Gast)

n/a Beiträge
 
#19

Re: Umlaute-Problem mit idHTTP.Get (Indy) => ö und Co.

  Alt 30. Mär 2008, 22:14
Zitat von MrKnogge:
Wenn er welche findet, liefert dir pos aber <> 0 zurück und geht raus
Nein. Pos liefert mir "0" zurück, wenn er keine findet (dann eben Exit bzw. eine Messagebox). Wenn nicht geht es im else-Teil weiter. Aber ich verstehe nicht, was das zur Sache tut? Er liest ja alle (in diesem Falle) Filmdaten aus, nur eben werden die Umlaute falsch angezeigt.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#20

Re: Umlaute-Problem mit idHTTP.Get (Indy) => ö und Co.

  Alt 30. Mär 2008, 22:18
Zitat von MCXSC:
Nein, ich lese kein [i]-Element aus. Okay, da du wohl einen Grund brauchst, gebe ich dir einen (auch wenn es nichts zur Sache tut):

Wenn die Zeile "XXX" in dem Code vorkommt (oder im Original: "Keine Ergebnisse") soll eine MessageBox ausgegeben werden
Versteh ich jetzt nicht? Du suchst jetzt doch [i]-Elemente, oder doch nicht?

Zitat von MCXSC:
... und es wird nach z.B. "<td>Genre:</td>" gesucht und weiter ausgelesen. Das was du mir da also erzählst, ist (was diesen Fall betrifft) unbrauchbar.
Du werkelst doch ziemlich auf dem DOM des HTML-Dokumentes herum. Wieso sollte dann MSHTML und IHTMLDocument nicht brauchbar sein?


Übrigens. Das Design deiner Seite ist ja ziemlich Hip.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 02:55 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