Einzelnen Beitrag anzeigen

NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#8

AW: FileHasFextFormat?

  Alt 29. Feb 2012, 22:56
Also falls die Datei nicht im Winows-Editor als ANSI gespeichert ist, könnte man schauen ob vielleicht eine Codierung vorliegt (sind die ersten 2 Bytes, die die Codierung festlegen).
Ansonsten vieleicht die Datei in einem ANSI-String laden und dort jedes Zeichen durchgehen ob es ein "normales" Zeichen ist, das es auf der Tastatur gibt. Habe durchs googlen die Funktion IsCharAlphaA gefunden (A für ANSI-Zeichen). Vielleicht so?

Delphi-Quellcode:
function FileHasFextFormat(FileName : String) : Boolean;
var Text : AnsiString;
    Datei : TFileStream;
    I : Integer;
begin
  Result := True;
  Datei := TFileStream.Create(FileName,fmOpenRead); //Datei öffnen
  try
    SetLength(Text,Datei.Size);
    Datei.Read(Text[1],Datei.Size);
    for I := 1 to Length(Text) do
    If (Text[I] <> ' ') and (Text[I] <> #$D) and (Text[I] <> #$A) then //#$D und #$A wegen Zeilenumbruch-Zeichen.
    begin
      if not IsCharAlphaNumericA(Text[I]) then
      Result := False;
    end;
  finally
    Datei.free;
  end;
end;
Hab grad slebst getestet an einer Datei. Sie enthielt ein '=' und dabei gibt IsCharAlphaNumericA False zurück. Aber vielleicht ist das noch ein Ansatz.

EDIT:Verdammt waren 3 Leute schneller xD

Gruß
NickelM
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat