AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke HTML-Quellcode in TMemo anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

HTML-Quellcode in TMemo anzeigen

Ein Thema von PitterS80 · begonnen am 20. Feb 2018 · letzter Beitrag vom 9. Mär 2018
Antwort Antwort
PitterS80

Registriert seit: 30. Dez 2015
6 Beiträge
 
#1

HTML-Quellcode in TMemo anzeigen

  Alt 20. Feb 2018, 22:03
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
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2

AW: HTML-Quellcode in TMemo anzeigen

  Alt 20. Feb 2018, 22:21
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.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
485 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: HTML-Quellcode in TMemo anzeigen

  Alt 21. Feb 2018, 02:03
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 hier die TNT Unicode Controls herunterladen. Bedenke aber immer: All das ist schon asbach, solltest du also nur noch in privaten "Testprojekten" verwenden, nicht aber in Anwendungen die laufen müssen.

Für das auswerden der HTML-Datei musst du dann einen Parser schreiben, oder du verwendest THtmlDocument von LinaComponents (Offiziell ab D7, sollte aber auch auf D6 laufen). Einzige Einschränkung hier: Kurze Tags werden nicht unterstützt.
Dennis
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#4

AW: HTML-Quellcode in TMemo anzeigen

  Alt 21. Feb 2018, 10:16
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

@Dennis07: THtmlDocument würde das aber interpretiert anzeigen, der OP will aber den Quelltext anzeigen lassen-

Um HTML-Quelltext anzuzeigen, würde ich zu SynEdit greifen. Ist eine Editor-Komponente, die Grundlage für Lazarus geworden ist, aber ihre Wurzeln meine ich sogar bei Delphi hat, und bei Existenz der erwähnten TNT-Controls auch noch ein D6-Package hat. Aus dem einfachen Grund, das TSynEdit einen Highlighter für HTML mitbringt (ggfls. sogar code folding, was bei einer HTML-Ansicht ja auch praktisch ist).
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#5

AW: HTML-Quellcode in TMemo anzeigen

  Alt 21. Feb 2018, 11:11
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.

......
http://www.delphipraxis.net/141895-t...phi-other.html
oder direkt Bei Google suchenTNT Unicode Controls, aber http://www.delphipraxis.net/89227-tn...-freeware.html
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
969 Beiträge
 
Delphi 6 Professional
 
#6

AW: HTML-Quellcode in TMemo anzeigen

  Alt 21. Feb 2018, 21:50
Hmm..

Quick and Dirty:

Delphi-Quellcode:
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;
Wie geschrieben Quick and Dirty..
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
  Mit Zitat antworten Zitat
PitterS80

Registriert seit: 30. Dez 2015
6 Beiträge
 
#7

AW: HTML-Quellcode in TMemo anzeigen

  Alt 9. Mär 2018, 19:38
Vielen Dank für Eure Hilfe! Habs über die UTF16-Funktion hinbekommen.
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 17:11 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