Delphi-Code at gokiburi.de

File Type Finder


Inhalt: FileTypeFinder zeigt zu Datei-Endungen die entsprechende Bedeutung an. Dabei nutzt es eine SQLite-Datenbank, die über 2500 Einträge umfasst.

Nutzung: Tragen Sie die gesuchte Datei-Endung in das entsprechende Feld ein und dücken Sie dann die Eingabe-Taste oder den Button "Suche".

Version: 1.4.0.31

Größe: 572 KByte

Letzte Änderung: 30. Juni 2010

Download: ftf_setup.exe

Mal heruntergeladen



Funktion: Hier der Delphi-Code der Haupt-Unit:
unit unitmain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, SQLiteTable3, StdCtrls;

type
  TForm1 = class(TForm)
    edEndung: TEdit;
    lbEnd: TLabel;
    btSuche: TButton;
    Memo1: TMemo;
    lbCount: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure btSucheClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure edEndungKeyPress(Sender: TObject; var Key: Char);
  private
    { Private-Deklarationen }
    slDB : TSQLiteDatabase;
    slTable : TSQLiteTable;
    slPath : string;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

uses About;
{$R *.dfm}

procedure TForm1.btSucheClick(Sender: TObject);
var suchstring : string;
begin
  Memo1.Clear;
  suchstring := edEndung.Text;
  slTable := slDB.GetTable('SELECT * FROM extension WHERE filetype = "'+suchstring+'"');
  if slTable.Count = 0 then
    Memo1.Text := Memo1.Text + 'Datei-Endung nicht gefunden'
  else
  begin
    while not slTable.EOF do
    begin
      Memo1.Text := Memo1.Text + slTable.FieldAsString(slTable.FieldIndex['filetype']) + ': ';
      Memo1.Text := Memo1.Text + slTable.FieldAsString(slTable.FieldIndex['description']) + #13#10;
      slTable.Next;
    end;
  end;
end;

procedure TForm1.edEndungKeyPress(Sender: TObject; var Key: Char);
var suchstring, s : string;
begin
  if not (key in [#8 {bs}, #13, #36, #94, #65..#90, #97..#122 {a..f}, #48..#57{0..9}]) then
    key := #0;
  if (key in [#65..#90]) then
  begin
  s := key;
  s := AnsiLowerCase(s);
  key := s[1];
  end;
  if key = #13 then
  begin
    key := char(0); //Gong unterdrücken
    Memo1.Clear;
    suchstring := edEndung.Text;
    slTable := slDB.GetTable('SELECT * FROM extension WHERE filetype = "'+suchstring+'"');
    if slTable.Count = 0 then
      Memo1.Text := Memo1.Text + 'Datei-Endung nicht gefunden'
    else begin
      while not slTable.EOF do
      begin
        Memo1.Text := Memo1.Text + slTable.FieldAsString(slTable.FieldIndex['filetype']) + ': ';
        Memo1.Text := Memo1.Text + slTable.FieldAsString(slTable.FieldIndex['description']) + #13#10;
        slTable.Next;
      end;
    end;
  end;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  slTable.Free;
  slDB.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
var i : integer;
  SysMenu : HMenu;
begin
  slPath := ExtractFilepath(application.ExeName) + 'endungen.db';
  slDB := TSQLiteDatabase.Create(slPath);
  slTable := slDB.GetTable('SELECT * FROM extension');
  i := slTable.Count;
  if slTable.Count = 0 then
    ShowMessage('Keine Datenbanktabelle gefunden!')
  else
  begin
    lbCount.Visible := true;
    lbCount.Caption := 'In der Datenbank befinden sich '+ IntToStr(i) + ' Datensätze';
  end;
end;
end.