Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Daten aus einer Datei wie am besten im Programm zur Verfügung stellen (https://www.delphipraxis.net/192242-daten-aus-einer-datei-wie-am-besten-im-programm-zur-verfuegung-stellen.html)

a.def 2. Apr 2017 12:43

Daten aus einer Datei wie am besten im Programm zur Verfügung stellen
 
Ich arbeite gerade an einem kleinen Projekt welches nur für mich gedacht ist.
Hierbei geht es darum Fahrradtouren zu speichern und später einsehen zu können.

Wie stelle ich die ausgelesenen Daten (CSV-Format) im Programm am besten zur Verfügung?
TObjectlist? Record? Ich möchte später im Programm auf jede Tour zugreifen können ohne jedes Mal in die CSV-Datei gucken zu müssen.
Oder ist das falsch gedacht und in die Datei gucken und auslesen wenn ich es brauche wäre besser?

Kathmai 2. Apr 2017 13:11

AW: Daten aus einer Datei wie am besten im Programm zur Verfügung stellen
 
Hallo,

Bei so was würde ich Excel einsetzen. Vorausgesetzt Du kennst Dich damit aus.
Import der CSV Datei und Auswertungsfunktionen/Statistiken sind schneller als in Delphi gemacht...

Zu Lernzwecken in Delphi würde ich aber ein eigenes Object erstellen.

a.def 2. Apr 2017 13:30

AW: Daten aus einer Datei wie am besten im Programm zur Verfügung stellen
 
Bleib mir bloß weg mit Excel ich hasse dieses Programm :P

nahpets 2. Apr 2017 13:45

AW: Daten aus einer Datei wie am besten im Programm zur Verfügung stellen
 
Also da würde ich mir eine Datenbankanwendung schreiben.

Als Datenbank die KbmMemTable nutzen.

Es handelt sich hierbei um Textdateien, die in einem CSV-Datei-ähnlichen Format vorliegen (kann man problemlos mit anderer Software erstellen. Das Format muss halt stimmen und der Header (einfacher Text) muss syntaktisch korrekt sein.

Es ist also keine "richtige" Datenbank. Die Anzeige kann aber trotzdem über ein DBGrid erfolgen, die Daten können per Index unterschiedlich sortiert werden, das Setzen von Filtern ist möglich ...

Ist eigentlich, wenn die Datenmenge nicht zu groß wird, äußerst flexibel einzusetzen.

Hier im Forum suchenKbmMemTable

So 'ne Tabelle sieht als Datei prinzipiell so aus:
Code:
"@@FILE VERSION@@","251"
"@@TABLEDEF START@@"
"ToplevelDomain=String,250,""ToplevelDomain"","""",18,Data,"""""
"Country=String,250,""Country"","""",12,Data,"""""
"@@INDEXDEF START@@"
"ToplevelDomain=""ToplevelDomain"",""ToplevelDomain"""
"Country=""Country"",""Country"""
"@@INDEXDEF END@@"
"@@TABLEDEF END@@"
"ToplevelDomain","Country",
".ac","Ascension Island",
".ad","Andorra",
".ae","United Arab Emirates",
".aero","air-transport industry",
Ob man Zeichenfolgen in " und mit , getrennt haben möchte oder lieber andere Zeichen verwendet, kann man konfigurieren.
Einfache CSV-Dateien kann man in der Regel mit marginalem Aufwand in den Datenteil der KbmMemTable konvertieren.

Ansonsten: ClientDataSet und alles was damit zusammen eine Datenbankanwendung möglich macht.

Ein Datenbankserver ist in beiden Fällen nicht erforderlich.

Über TAdo ... auf 'ne Accessdatenbank zugreifen. Access ist dafür natürlich nicht erforderlich.

Über TADO ... kann man auch auf Exceltabellen zugreifen ohne dazu Excel benutzen zu müssen.
'ne Abneigung gegen Excel heißt nicht zwingend, dass man das dahinterliegend Dateiformat nicht nutzt. Das sind zwei Paar verschiedene Schuh.

a.def 2. Apr 2017 13:59

AW: Daten aus einer Datei wie am besten im Programm zur Verfügung stellen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Danke für die Antworten soweit schon einmal.
In der Zeit habe ich mal folgendes gemacht:

Delphi-Quellcode:
type
 PTouren = ^TTouren;

 TTouren = class
  iTimestamp, iKM, iSpeedMax, iSpeedAverage, iMinutesNeeded, iWeightCurrent: Integer;
  sPlacesVisited: String;
 end;

type
 TTourColors = record
 const
  cMoreThanLastTour = $0015B200;
  cEqualLastTour = $0000A9FF;
  cLessThanLastTour = $000000D4;
 end;

// ---
private
 aTourEntry: TTouren;
 aTourList_ObjectList: TObjectList<TTouren>;

// Touren werden dann noch geladen und ein Objekt wird erstellt (mit einer StringList und sl.Items[X].Split[';;'])
aTourEntry := TTouren.Create;
// ... füllen und hinzufügen
aTourList_ObjectList.Add(aTourEntry);
Chart1.Series[0].Add // ...
Die Form sieht aktuell chaotisch aus und ist nur zum Testen da...


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:41 Uhr.

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