Mal eine ganz andere Sichtweise von mir:
Wieviel Datensätze oder Buchungen ist mir egal.
Es geht hier um irgendwelche Abrechnungen. Sind die nur für einn eigene Übersicht und existieren noch in einer Buchhaltungs-Software? Falls ja, kann man das vielleicht so machen, würde ich aber nicht. Falls aber schon diese Daten die "Buchhaltung" sind, so ist eine Text-Datei indiskutabel, weil diese jederzeit problemlos von "außen" manipuliert werden kann. Das muss nicht mal absichtlich passieren. Es gibt da also durchaus Sicherheitsbedenken, die zu berücksichtigen sind.
Eine
DB scheint erstmal übertrieben zu sein, löst aber mehrere Probleme, für die jetzt mit Sicherheit Klimmzüge gemacht werden müssen:
- Oben genannte Sicherheitsprobleme sind geringer
- Zahlen sind ganz sicher Zahlen. Zahlen aus einer Text-Datei einzulesen und zu verarbeiten, erfordern in der Regel mehr Prüfaufwand.
- der gesamte Formatierungs- und Prüfaufwand für die Stringgrids entfällt, da z.B. DBGrid genutzt werden kann.
- Berechnungen (Summen, Quartals-Abrechnungen, Mengen, etc.) sind durch
SQL meistens viel einfacher und können direkt im DBGrid ohne weiteren Aufwand dargestellt werden.
- Daten filtern ist viel einfacher (
SQL)
- Automatische Änderungen können oft über einen
SQL-Befehl gelöst werden und benötigen keine "komplizierten" Delphi-Routinen.
- Aufbewahrung "alter" Daten sind in der
DB auch kein Problem
- Hobbymäßig ein Abrechnungssystem zu programmieren kann man machen, wenn es für einen selbst ist. Eine Nutzung durch andere, erfordert meiner Meinung nach ein Mindestmaß an Sicherheit (s.o.)
Natürlich muss man sich mit Datenbanken beschäftigen und
SQL erfordert auch Einarbeitungszeit. Bei den paar Datensätzen kann man aber auch ohne große
SQL-Kenntnisse starten und am Anfang die Filter-Funktionen der
DB-Komponenten in Delphi nutzen.
Du kannst das sicher auch mit Text-Dateien lösen, aber den Aufwand, den du jetzt in die Aufbereitung der Daten alleine schon beim Ein- und Auslesen treiben musst, kannst du auch in die Einarbeitung in Datenbank investieren.