Thema: Delphi Dateityp ermitteln

Einzelnen Beitrag anzeigen

Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#10

Re: Dateityp ermitteln

  Alt 16. Nov 2006, 02:55
Zitat von sexy_betty:
@Luckie
das ist schon in Ordnung, danke.
nur konnte ich nicht glauben, dass es dafür keinen einfacheren weg gibt.
wenn ich zum beispiel eine textdatei mit meinem hexeditor öffne, sagt er auch gleich
"...appears to be a text file.
Do you want to open it as text?"
Hat der dann jedes Zeichen überprüft, ob es ascii ist?
aber ich weiß es nicht, villt hat er es ja.

...
ratlosigkeit macht sich breit
gruß
Hallo,

ich würde umgekehrt vorgehen: lies Zeichen, bis n davon NICHT Text sind. Da genügt wahrscheinlich schon n=2 oder 3.

Dazu nimmst du am besten eine erweiterte ASCII-Tabelle (ich füge eine bei, man findet sowas heute garnicht mehr so leicht) und streichst an, was in einem Text vorkommen kann und was nicht. Also z.B. A - Z ist ok und von den Steuerzeichen CR, LF und HT (TAB); NUL ($00) ist dagegen nicht Bestandteil von Textdateien. Du wirst feststellen, die überwiegende Mehrzahl kann Text sein. Am besten lässt sich das mit einer Menge erledigen, so dass man nachher formulieren kann "if NextChar in TextCharSet".

Ob du die Datei als Strings liest oder als Bytes, ist eigentlich nicht so wichtig, da du ja auf Einzelzeichen eines Strings mit "string1[i]" zugreifen kannst.

Delphi-Quellcode:
var nextbyte : byte;
    nottext : integer;
    textfile : file of byte;
{...} 
nottext := 0;
while not eof (textfile) and (nottext < 3) do
  begin
  read (textfile,nextbyte);
  if nextbyte not in TextCharSet then nottext := nottext + 1;
  end;
if nottext >= 3 then writeln ('Dies ist keine korrekte Textdatei');
Dieser Code ist nicht getestet!

Gruss Reinhard
Angehängte Dateien
Dateityp: pdf ttman_print_test_525.pdf (59,7 KB, 19x aufgerufen)
  Mit Zitat antworten Zitat