Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   .html Datei zeilenweise lesen (https://www.delphipraxis.net/172415-html-datei-zeilenweise-lesen.html)

af99 2. Jan 2013 14:29

Delphi-Version: 5

.html Datei zeilenweise lesen
 
Hallo Zusammen,

ich habe mal wieder ein Problem mit Strings bzw. Text. Ich möchte eine .html Datei zeilenweise lesen und nach bestimmten Texten suchen. Die Datei ist mal wieder irgendwie codiert und der Text wird nicht erkannt.

Delphi-Quellcode:
var
  errortext: string;

AssignFile(rein, datei);
reset(rein);
errortext := 'test1';
repeat
   readln(rein, s);
   //showmessage(s);
   if ansipos('<TR class=', s) > 0 then
    repeat
       readln(rein, s);
       readln(rein, s);
       if pos('Missed', s) > 0 then
         errortext := 'test2';
       if pos('Failed', s) > 0 then
         errortext := 'test3';
       readln(rein, s);
       readln(rein, s);
       readln(rein, s);
       readln(rein, s);
       readln(rein, s);
       readln(rein, s);
     until ansipos('</TD></TR>', s) > 0;
   until eof(rein);
   CloseFile(rein);
   ShowMessage(errortext);
in der Variabke errortext steht aber immer der Text "test1" also werden die if Pos... nicht gefunden. Auch wenn ich mir mit Showmessage den Inhalt von s anzeigen lasse wird das Fenster abhängig vom Text größer und kleiner. Der Text wird jedoch nicht angezeigt.

Hier dann noch die ersten Zeichen in der .html Date1

Code:
in HEX
FF FE 3C 00...

in DEZ
ÿþ<
Wie muss ich hier denn was umwandeln damit ich die Zeichen aus der Datei in den IF's vergleichen kann und wie um diese an der Console auszugeben.

Vielen Dank für Eure Hilfe.
Andreas

Mavarik 2. Jan 2013 14:33

AW: .html Datei zeilenweise lesen
 
Sicher das das eine HTML Datei ist?

af99 2. Jan 2013 14:53

AW: .html Datei zeilenweise lesen
 
ist ne .htm
Code:
<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="TSM Operational Reporting">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>TSM Operational Reporting</title>
</head>

<STYLE>
<!--
.HeaderBar {
 BORDER-RIGHT: #9fabbb 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #9fabbb 1px solid; PADDING-LEFT: 10px; FONT-WEIGHT: bold; FONT-SIZE: 11pt; MARGIN-BOTTOM: 5px; PADDING-BOTTOM: 1px; BORDER-LEFT: #9fabbb 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #9fabbb 1px solid; FONT-FAMILY: arial,verdana,sans-serif; BACKGROUND-COLOR: #bed2fc
}
.FooterBar {
 BORDER-RIGHT: #9fabbb 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #9fabbb 1px solid; PADDING-LEFT: 10px; FONT-WEIGHT: bold; FONT-SIZE: 8pt; MARGIN-BOTTOM: 5px; PADDING-BOTTOM: 1px; BORDER-LEFT: #9fabbb 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #9fabbb 1px solid; FONT-FAMILY: arial,verdana,sans-serif; BACKGROUND-COLOR: #bed2fc
}
.HeaderText {
  FONT-WEIGHT: bold; FONT-SIZE: 11pt; FONT-FAMILY: arial,verdana,sans-serif
  }
...

af99 2. Jan 2013 15:00

AW: .html Datei zeilenweise lesen
 
wenn ich das FF FE aus der Datei rauslösche dann erhalte ich das gewünschte Ergebnis.

Mavarik 2. Jan 2013 15:00

AW: .html Datei zeilenweise lesen
 
.htm .html .php .aspx

"Eigentlich" alles das selbe, ne Text Datei

Sieht nach UTF8 aus, steh aber etwas anderes drinn...?

Mavarik

Popov 2. Jan 2013 15:05

AW: .html Datei zeilenweise lesen
 
Also Html entwickelt sich natürlich weiter, aber nach meiner Kenntnis hat FF FE am Anfang der Datei keinen Sinn.

Morphie 2. Jan 2013 15:10

AW: .html Datei zeilenweise lesen
 
http://de.wikipedia.org/wiki/Byte_Order_Mark
Code:
Kodierung     hexadezimale Darstellung  dezimale Darstellung  Darstellung nach Windows-1252
UTF-16 (LE)   FF FE                     255 254               ÿþ

Mavarik 2. Jan 2013 15:15

AW: .html Datei zeilenweise lesen
 
Zitat:

Zitat von Morphie (Beitrag 1197368)
http://de.wikipedia.org/wiki/Byte_Order_Mark
Code:
Kodierung     hexadezimale Darstellung  dezimale Darstellung  Darstellung nach Windows-1252
UTF-16 (LE)   FF FE                     255 254               ÿþ

UTF8-UTF16 na war doch schon fast richtig meine Idee. :stupid:

Obwohl das nicht zur Codierung im Beispiel passt...

Morphie 2. Jan 2013 15:32

AW: .html Datei zeilenweise lesen
 
Zitat:

Zitat von Mavarik (Beitrag 1197369)
Obwohl das nicht zur Codierung im Beispiel passt...

Wobei man sich dabei offenbar gar nicht sicher ist... Offiziell darf man gar kein Charset bei UTF-16 angeben
Zitat:

Zitat von http://www.w3.org/International/questions/qa-html-encoding-declarations.de.php#utf16
In diesem Artikel wird allgemein empfohlen, die Zeichencodierung innerhalb des Dokuments anzugeben, selbst wenn sie auch im HTTP-Header angegeben ist. Die HTML5-Spezifikation verbietet allerdings gegenwärtig die Verwendung des meta-charset-Attributs oder der Pragma-Direktive zur Angabe von UTF-16. Es ist eine Diskussion im Gang, ob das so sein muss; das kann sich noch ändern. Gegenwärtig sollte man, wenn valider HTML5-Code gewünscht ist, diese Angaben nicht für UTF-16-codierte Inhalte verwenden.

Ob Sie Element-basierte Angaben verwenden oder nicht, Sie sollten sicherstellen, dass Sie immer ein BOM (byte-order mark) ganz am Anfang einer UTF-16-codierten Datei zu stehen haben. Im Effekt ist dies die Angabe innerhalb des Dokuments.


Popov 2. Jan 2013 15:35

AW: .html Datei zeilenweise lesen
 
Aus dem Artikel von Wiki:

Zitat:

Da das Zeichen U+FFFE als ungültig definiert ist
Woraus ich verstehe, dass die beiden Zeichen sowieso dazu gedacht sind allgemein ignoriert zu werden, speziell dazu gedacht sind anzuzeigen welche Kodierung es ist. Wenn du sie also löscht, wie du es gemacht hast, dann machst du anscheinend erst ein mal das Richtige. Allerdings solltest man nicht ignorieren, dass es eine UTF-16 Datei ist.


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