AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FileHasTextFormat?

Ein Thema von Bjoerk · begonnen am 29. Feb 2012 · letzter Beitrag vom 1. Mär 2012
Antwort Antwort
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: FileHasFextFormat?

  Alt 29. Feb 2012, 21:28
Sorry Buddies, hab' mich vertippt.

Ich meinte, ob es möglich ist, herauszufinden, ob eine Datei Textformat hat.

Ungetestet:

Delphi-Quellcode:
function IsAsciiFormat(const FileName: string): boolean;
const
  Size = 2048;
var
  I: integer;
  F: File;
  TotSize, IncSize, ReadSize: integer;
  C: array [0..Size] of Byte;
begin
  Result:= false;
  AssignFile(F, FileName);
  try
    Reset(F, 1);
    try
      TotSize:= FileSize(F);
      IncSize:= 0;
      Result:= true;
      while Result and (IncSize < TotSize) do
      begin
        ReadSize:= Size;
        if IncSize + ReadSize > TotSize then ReadSize:= TotSize - IncSize;
        IncSize:= IncSize + ReadSize;
        BlockRead(F, C, ReadSize);
        for I:= 0 to ReadSize-1 do
          if (C[I] < 32) and (not (C[I] in [9, 10, 13, 26])) then
          begin
            Result:= false;
            Break;
          end;
      end;
    finally
      CloseFile(F);
    end;
  except
    Result:= false;
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: FileHasFextFormat?

  Alt 29. Feb 2012, 21:32
Nicht wirklich. Man kann nur versuchen gut zu raten:
http://blogs.msdn.com/b/oldnewthing/...7/2158334.aspx
http://blogs.msdn.com/b/oldnewthing/.../24/95235.aspx
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#3

AW: FileHasFextFormat?

  Alt 29. Feb 2012, 21:44
Der einzige mir bekannte Ansatz wäre, zu gucken ob die Dateien richtig kodiert sind (Ascii, Ansi, UTF-8, ...) und keine Steuerzeichen enthalten.

Dein Ansatz würde für pures Ascii funktionieren, müsste aber noch alle Zeichen größer gleich #127 verbieten.
Bei anderen Zeichensätzen sollte es schwerer werden.

Mit dem Verbieten von kleinen Byte-Werten wirst du schon viele Binärdateien ausschließen, aber eben auch UTF-16 kodierte Textdateien.
  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 21:10 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