![]() |
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:
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.
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); Hier dann noch die ersten Zeichen in der .html Date1
Code:
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.
in HEX
FF FE 3C 00... in DEZ ÿþ< Vielen Dank für Eure Hilfe. Andreas |
AW: .html Datei zeilenweise lesen
Sicher das das eine HTML Datei ist?
|
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 } ... |
AW: .html Datei zeilenweise lesen
wenn ich das FF FE aus der Datei rauslösche dann erhalte ich das gewünschte Ergebnis.
|
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 |
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.
|
AW: .html Datei zeilenweise lesen
![]()
Code:
Kodierung hexadezimale Darstellung dezimale Darstellung Darstellung nach Windows-1252
UTF-16 (LE) FF FE 255 254 ÿþ |
AW: .html Datei zeilenweise lesen
Zitat:
Obwohl das nicht zur Codierung im Beispiel passt... |
AW: .html Datei zeilenweise lesen
Zitat:
Zitat:
|
AW: .html Datei zeilenweise lesen
Aus dem Artikel von Wiki:
Zitat:
|
AW: .html Datei zeilenweise lesen
ich habe die Zeichen nur zum Test gelöscht. Wenn das Programm mal läuft dann kann ich die Zeichen nicht löschen. Ich muss also mit der Datei so auskommen wie sie ist. Gibt es denn keine Funktion zum Umwandeln ???
|
AW: .html Datei zeilenweise lesen
Es scheint sich bei der Datei um eine Unicode (16Bit) Datei zu handeln.
Da hast du mit Delphi5 erst einmal schlechte Karten. Und mit readln und Konsorten erst recht. Kannst du die Datei unter einem anderen Namen im ANSI-Format abspeichern? (Notepad) Dann versuch es doch nochmal mit der Kopie. Gruß K-H ---- vergiß es, das kommt davon, wenn der chef stört |
AW: .html Datei zeilenweise lesen
Zitat:
Schon mal was von TFileStream gehört? Die Datei laden und da bearbeiten. Für mich einfacher als das andere. Übrigens, im umwandeln kenne ich mich weniger aus, aber wie wäre es mit AnsiToUtf8? |
AW: .html Datei zeilenweise lesen
Zur Umwandlung der gesamten Datei z.B. ins Ansi-Format eignet sich der Editor "Notepad++" !
Datei laden, unter dem Menüpunkt "Kodierung" sicherheitshalber prüfen, in welchem Format die Datei gespeichert ist und dann ( selber Menüpunkt ) ins Zielformat umwandeln, z.B. durch "Konvertiere zu ANSI". Das Einlesen/Umsetzen von Unicode ist ( eingeschränkt ) auch mit alten Delphi-Versionen möglich, wenn man entsprechende Code-Tabellen in den Quelltext einfügt, die dann die jeweiligen Zeichen gegeneinander austauschen. Das funktioniert aber nur soweit es sich um Standardzeichen handelt. Bei Gelegenheit werde ich hier mal meine Tabellen posten, muß sie aber erst raussuchen. |
AW: .html Datei zeilenweise lesen
Mal so ganz grundsätzlich: mit den Funktionen Readln und AnsiPos kann man keine HTML-Datei vernünftig auslesen.
Diese Funktionen sind einfach zu begrenzt. Das wäre ungefähr so als ob man einen Sat-Receiver nur mit einem Schraubendreher bewaffnet justieren wollte. Man braucht einfach das richtige Werkzeug. Für HTML wäre das ein Parser ( ![]() ![]() |
AW: .html Datei zeilenweise lesen
Zitat:
Über das DOM zugreifen, bedeutet auch mit allen Fehlern leben... Mit Pos und Stringreplace den "HTML-müll" von den Daten trennen ist doch viel einfacher... Mavarik |
AW: .html Datei zeilenweise lesen
Liste der Anhänge anzeigen (Anzahl: 1)
Wie angekündigt, habe ich mal meine früheren Tests rausgesucht.
Die ZIP-Datei "UTF_TEST.ZIP" enthält einige Testansätze vom Dezember 2009/Januar 2010 zum Auslesen bzw. Konvertieren von Dateien unterschiedlicher Textformate. Benutzt wurden Delphi 5 und die damals aktuelle Lazarus-Version. Ich habe das nicht weiter entwickelt und man möge mir eventuelle Ungereimtheiten nachsehen. Die enthaltenen Quelltexte sind nur im Hinblick auf die wesentlichen Problemstellungen kommentiert. Es werden lediglich Standardkomponenten benutzt. Es ist nicht auszuschliessen, daß die Quelltexte je nach benutzter Compilerversion angepaßt werden müssen. Die ZIP-Datei enthält ausser den vollständigen Quelltexten die EXE-Dateien der beiden Delphi-Programme. Weil Lazarus unheimlich aufbläht und darum nach wie vor eine unzumutbare Notlösung statt eines wirklich brauchbares Programm darzustellen, habe ich die ca. 12 MB große EXE-Datei des Lazarus-Beispiels entfernt. Einzige aktuelle Änderung : Soweit in einigen Dateien mein Name und meine Anschrift enthalten waren, habe ich diese Angaben entfernt. Die wesentlichsten in der ZIP-Datei enthaltene Dateien : TABELLE.TXT : unvollständige Tabellenübersicht von HTML- und Unicode- Ersatzzeichen Verzeichnis "D_TEST" : Analyse- und Konvertierungsprogramm Beschreibung.rtf : Kurzbeschreibung der Programmfunktion ConvTable.pas : Die ausgelagerte Konvertierungs-Unit Verzeichnis "DELPHI" : Optischer Vergleich verschiedener Codierungen/Konvertierungen anhand bekannter bzw. gebräuchlicher Sonderzeichen und Umlaute. CHARSET.TXT : unkontrollierte Vergleichstabelle zu Testzwecken UChars.pas : Die ausgelagerte UNVOLLSTÄNDIGE Vergleichstabelle ( ASCII, ANSI, UTF-8 ) UTxtConv.pas : Die ausgelagerte Konvertierungs-Unit Verzeichnis "LAZARUS" : Weil mich Lazarus nicht mehr sonderlich interessiert, kann ich über diesen Test nicht mehr allzuviel äussern, außer daß damit die Datei "TABELLE.INC" erzeugt werden kann. TABELLE.INC : Durch das Programm erzeugte Include-Datei mit UTF-Tabelle der Zeichen 128 bis 255 TABELLE_1.TXT : ASCII-Zeichensatz mit Unicode-Angaben ? TABELLE_2.TXT : ANSI-Zeichensatz mit Unicode-Angaben ? Leider sind alle neueren/aktuellen Versionen des von mir benutzten Texteditors Notepad++ nicht mehr in der Lage, ASCII-Zeichen darzustellen, so daß ich diesbzgl. nichts mehr kontrollieren kann. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:22 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 by Thomas Breitkreuz