Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBase-Tabelle lesen (https://www.delphipraxis.net/50615-dbase-tabelle-lesen.html)

himitsu 29. Nov 2016 19:34

AW: DBase-Tabelle lesen (Von einer xBase Applikation)
 
Hier im Forum suchenHxD
Entweder mit einem Editor, der Dateien "binär" bearbeiten kann.

Oder du nimmst z.B. einen TFileStream, setzt die Position auf 28 (Byte 0 ist das erste Byte) und schreibst dann ein Byte mit dem Wert 0 auf diese Stelle.

nytaiceman 30. Nov 2016 09:47

AW: DBase-Tabelle lesen
 
Vielen Dank an Euch Alle!
Ich habe mich ein bisschen in TDBF eingearbeitet und kann nun meine DBF Dateien anzeigen.
Das folgende hilft vielleicht einem anderen Anfänger wie mir:

Delphi-Quellcode:
// Auf der Form liegen:
// DataSource1 : TDataSource;
// DBF1 : TDBF;
// DBGrid1 : TDBGrid;
// BT_openDBClick : TButton;

// Als globale Variable
var
 CurrentDbf : TDbf;

// Eine DBF Datei auswählen
procedure TForm1.BT_openDBClick(Sender: TObject);
begin
  SelectDB;
end;

// Eine DBF Datei anzeigen
procedure TForm1.SelectDB;
var
  sDBFile : String;
begin
  with TFileOpenDialog.Create(nil) do
  try
    if Execute then begin sDBFile := Filename end;
  finally
    Free;
  end;
  if length(sDBFile) < 1 then exit;

  ResetDBHandle;
  CurrentDbf := TDbf.Create(nil);
  try
    CurrentDbf.FilePathFull := ExtractFileDir(sDBFile);
    CurrentDbf.TableName    := ExtractFileName(sDBFile);
    CurrentDbf.Exclusive    := True;
    CurrentDbf.TableLevel   := 3;

    DataSource1.DataSet := CurrentDbf;
    DBGrid1.DataSource := DataSource1;
    CurrentDbf.Open;
    LabeledEdit1.Text := IntToStr(CurrentDbf.ExactRecordCount);

   except
     on E : Exception do MessageDlg(E.ClassName +#13#10 +E.Message,mtError, [mbOK], 0);
  end;

end;

// Zurücksetzen einer allenfalls geöffneten DB
procedure TForm1.ResetDBHandle;
begin
  if assigned(CurrentDbf) then
  begin
    CurrentDbf.Close;
    CurrentDbf.Free;
    LabeledEdit1.Text := '';
  end;
end;

// Schliessen der Applikation
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ResetDBHandle;
end;

// Verändern der Applikationsgrösse
procedure TForm1.FormResize(Sender: TObject);
begin
  DBGrid1.Width  := DBGrid1.Parent.Width -22;
  DBGrid1.Height := DBGrid1.Parent.Height -DBGrid1.Top -40;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:12 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz