AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Textdatei als Datenbank nutzen
Thema durchsuchen
Ansicht
Themen-Optionen

Textdatei als Datenbank nutzen

Ein Thema von Opa Knack · begonnen am 17. Jan 2005 · letzter Beitrag vom 17. Jul 2017
 
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.118 Beiträge
 
Delphi 2009 Professional
 
#13

AW: Textdatei als Datenbank nutzen

  Alt 14. Jul 2017, 14:13
Das Dateiformat wird in der Regel CSV sein. Entgegen des Namens benutzt man meistens Semikolons zur Trennung. Auch Excel tut das.

Hier ein paar sehr einfache Funktionen aus meinen Projekten, mit Sicherheit verbesserungsfähig aber sie sollten dir helfen.

Einen Typ für ein dynamisches zweidimensionales Array erstellen, macht Zuweisungen einfach:
Delphi-Quellcode:
type TString2D = array of array of string;
Database: TStrings2D;
Eine Funktion zum Auslesen der CSV-Daten einer TStringList (Fields = Anzahl der Spalten).
Delphi-Quellcode:
procedure InitDatabase();
function CSVToArray(Input: TStrings; Fields: Integer): TString2D;
var
  i, j, k, l: Integer;
  s: string;
begin
  i := Input.Count;
  SetLength(Result, i);
  j := 0;
  repeat
    s := Input.Strings[0];
    l := 0;
    SetLength(Result[j], Fields);
    for k := 1 to Length(s) do
    if s[k] = ';then
    inc(l)
    else
    Result[j][l] := Result[j][l] + s[k];
    inc(j);
    Input.Delete(0);
    dec(i);
    if i = 1 then
    s := '';
  until i = 0;
end;
var
  sl: TStringList;
begin
  sl := TStringList.Create;
  try
    sl.LoadFromFile('database.csv');
    Database := CSVToArray(sl, 42); // 42 ändern zur Anzahl der maximal genutzten Spalten
  finally
    sl.Free;
  end;
end;
Anschließend kann man auf die Strings zugreifen: Database[1][0] (erste Spalte des zweiten Datensatzes)
Wichtig ist, dass es zunächst mal alles Strings sind, man sie also ggf. in Zahlen umwandeln muss, um damit zu rechnen.

Die Funktion unterstützt keine Quantifiers, sprich du solltest keine Semikolons in deinen Einträgen verwenden.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
 


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 23:58 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