![]() |
HTML-Quellcode in TMemo anzeigen
Hallo Gemeinde!
Ich habe folgendes Problem: Aus Outlook exportiere ich bestimmte Emails als HTML in ein Verzeichnis. Mein Programm soll zyklisch das Verzeichnis auf neue Dateien prüfen und, falls eine neue Mail gespeichert wurde, den Quelltext der HTML-Datei in ein Memo laden. Im weiteren Verlauf sollen diverse Schlüsselworte gesucht und ausgewertet werden. Aktuell scheitere ich aber schon am Laden der Datei: Im Memo wird nur "ÿþ<" angezeigt. Mit einem normalen Texteditor sehe ich aber den kompletten Quelltext. Hat einer von Euch da eine Idee? Hab schon die Forensuche sowie Google bemüht und alle Vorschläge ausprobiert, aber nichts fruchtet. Zur Info: Ich arbeite noch mit Delphi 6. Gruß Pitter |
AW: HTML-Quellcode in TMemo anzeigen
Delphi 6 unterstützt von Haus aus noch kein Unicode, aber Outlook speichert als Unicode. Von daher suche hier mal danach, wie Du Unicode-Text Dateien laden kannst und dann darstellen kannst.
...:cat:... |
AW: HTML-Quellcode in TMemo anzeigen
Also entweder du speicherst die Datei im Ansi-Format, oder du besorgst dir Unicode-Componenten.
Darf ich fragen, welche Edition von Delphi 6 du derzeit verwendest? Generell würde ich dir davon abraten, Delphi 6 weiterhin zu verwenden. Ich empfehle dir, auf die kostenlose Starter von Delphi 10.2.2 upzugraden. Das ist in nahezu jeder Hinsicht um Längen besser als Delphi 6. Selbt, wenn du nicht die Personal Edition sondern eine höhere zur Zeit benutzt. Wenn du das nicht willst, kannst du im Notfall auch Lazarus verwenden. Kann zwar nicht im entferntesten mithalten, aber für die Sachen, die du (so denke ich) machen willst, ist es auch vollkommen ausreichend. Wenn du dennoch bei D6 bleiben willst, dann kannst du dir ![]() Für das auswerden der HTML-Datei musst du dann einen Parser schreiben, oder du verwendest THtmlDocument von ![]() |
AW: HTML-Quellcode in TMemo anzeigen
Ohne das in einen Glaubenskrieg verwandeln zu wollen: Lazarus ist nicht bloß ein Notnagel. Ich bin vor etlichen Jahren umgestiegen, mit mehreren riesigen Projekten, und bin bis heute jedesmal, wenn ich aus Legacy-Gründen nochmal Delphi XE anfassen muss, glücklich über diese Entscheidung. Nicht nur die (für mich) bessere IDE, auch Fehler, die i.d.R. in weniger als einer Woche behoben werden, wo sie bei Delphi im QC etliche Jahre und Major Releases unbehoben blieben.
Die Post-XE-Releases von Delphi habe ich aber zugegeben nie länger als ein paar Tage angeschaut. Jetzt aber zur Sache :D @Dennis07: THtmlDocument würde das aber interpretiert anzeigen, der OP will aber den Quelltext anzeigen lassen- Um HTML-Quelltext anzuzeigen, würde ich zu ![]() |
AW: HTML-Quellcode in TMemo anzeigen
Zitat:
![]() oder direkt ![]() ![]() |
AW: HTML-Quellcode in TMemo anzeigen
Hmm..
Quick and Dirty:
Delphi-Quellcode:
Wie geschrieben Quick and Dirty..
function LoadUTF16ToAnsiString(AFileName: string): AnsiString;
var tmpFile : TFileStream; tmpBOM : WideChar; tmpsize : Int64; tmpWide : WideString; i : integer; begin result := ''; tmpFile := TFileStream.Create(AFileName,fmOpenRead or fmShareDenyNone); try if tmpFile.Read(tmpBOM, sizeof(tmpBOM)) = sizeof(tmpBOM) then begin if ((tmpBOM = Widechar($FEFF)) or (tmpBOM = Widechar($FFFE))) then begin tmpsize := (tmpFile.size -2) Div SizeOf(tmpWide[1]); setlength(tmpWide,tmpsize +1); tmpWide[tmpsize +1] := #0; tmpFile.Read(tmpWide[1],tmpSize * SizeOf(tmpWide[1])); if tmpBOM = Widechar($FFFE) then for i := 1 to length(tmpWide) do tmpWide[i] := WideChar(Swap(Ord(tmpWide[i]))); result := tmpWide; end else begin tmpFile.Position := 0; setlength(result,tmpFile.size); tmpFile.Read(result[1],tmpFile.size); end; end else begin tmpFile.Position := 0; setlength(result,tmpFile.size); tmpFile.Read(result[1],tmpFile.size); end; finally tmpFile.Free; end; end; Funktioniert aber nur zufriedenstellend, wenn in der Datei nur Zeichen aus dem ANIS-Bereich verwendet werden. Sollten dort Unicode/Sonderzeichen enthalten gewesen sein, dürften diese damit weg sein ;) |
AW: HTML-Quellcode in TMemo anzeigen
Vielen Dank für Eure Hilfe! Habs über die UTF16-Funktion hinbekommen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 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-2025 by Thomas Breitkreuz