Ich möchte gerne alle Dateien eines Verzeichnisses/Ordners in Memo-Felder der Reihe nach einlesen. Dies geht natürlich nur problemlos, wenn es sich bei diesem File um ein reines Text-File handelt. Falls es kein Text-File ist schreibe ich nur den Link zu dieser Datei in das Memo Feld.
Wie kann ich nun nach dem Einlesen eines Files differenzieren, ob das File ein reines Text-File ist oder nicht (also z.B. ein Bild oder ein PDF-File).
Ich bestimme die reine Filegröße und auch die Größe des Files, wenn die Sonderzeichen entfernt sind. Ist hier die Differenz groß, so ist das ein Hinweis darauf, dass es sich um KEIN Textfile handelt.
Dies funktioniert eigentlich recht gut, aber es scheint mir nicht gerade die eleganteste Methode zu sein.
Wie könnte man dies besser machen? [An Hand des File-Namen (z.B. ".txt") geht's nicht, da das Programm auch unter Linux läuft.]
Ich habe mir also so beholfen, dass ich nachsehe, wie groß der Unterschied in der Größe
Code: Alles auswählen
File_Eingabe := Form1.OpenDialog1.FileName;
SL_Text.LoadFromFile(SysToUTF8( ADateiPfad )); // einlesen
Filegroesse_File := Globl.Filegroesse_ausgeben( ADateiPfad ) ; // Filegroesse_ausgeben ist eine Funktion
Filegroesse_Text := Length( Globl.GetOnlyChars( SL_Text.Text ) );
if (( Filegroesse_File div Filegroesse_Text ) > 1 ) then // sehr viele Sonderzeichen als Hinweis für "kein Text"
begin
....
end;
Aliobaba