Arbeiten mit Dateien Dateien

Object Pascal im Detail - Dateien www.delphi-treff.de 128 Memo1.Lines.AssignComboBox1.Items;

4.11.7. Arbeiten mit Dateien

Mit Dateien kann man mehr machen, als sie zu lessen oder zu schreiben. Man kann z.B. das Datum der letzten Änderung auslesen oder setzen wollen oder prüfen, ob eine Datei überhaupt existiert. Delphi bietet dafür die Unit IOUtils, welche den Typ TFile enthält. Wichtig ist, dass es sich hierbei um ein Record handelt, das eine ganze Reihe an Methoden enthält. Man sollte keine Variablen vom Typ TFile anlegen Beispielhafte Verwendung: Wir wollen wissen, wann die Datei erstellt worden ist: uses IOUtils; ... var creationDate: TDateTime; begin creationDate := TFile.GetCreationTimeFN; Eine weitere Methode liest den kompletten Inhalt einer Textdatei in ein String-Array ReadAllLines oder in einen String ReadAllText – hierbei ist sogar die Angabe des Encodings möglich. Neben TFile gibt es auch die Records TDirectory und TPath, die ähnliche Funktionalitäten für Verzeichnisse und Pfade bereitstellen. Object Pascal im Detail - Besondere Datentypen www.delphi-treff.de 129

4.12. Besondere Datentypen

In einem vorigen Kapitel haben wir die grundlegenden Datentypen in Delphi kennengelernt. Nun gibt es noch weitere Datentypen, die etwas komplexer sind und zum Teil in Form von Klassen zur Verfügung stehen. Aus diesem Grund kommt dieses Kapitel erst hier, nachdem wir die Objektorientierung kennengelernt haben. Konkret geht es z.B. um Listen, die einfacher zu handhaben sein können als simple Arrays, und um Datums- und Zeit-Werte.

4.12.1. Datum und Zeit

Will man mit Datumswerten rechnen, z.B. Tage hinzuzählen oder abziehen, ist es ungünstig, das Datum in einer String-Variablen abgelegt zu haben. Auch jeweils eine Integer-Variable für Tag, Monat und Jahr anzulegen, ist i ht i kli h s hö . u al da i e die Bedi gu ge dazu kä e ie „We Tag g öße als , da setze Tag auf 1 und zähle den Monat um eins hoch. Wenn es sich um April, Juni, September oder November handelt, dann darf der Tag hö hste s sei . U d as ist it “ haltjah e i Fe ua ? Natü li h u de all das s ho mal von jemandem programmiert. Und wenn wir das verwenden wollen, setzen wir in Delphi auf die Datentypen TDate, TTime und TDateTime. TDate beinhaltet lediglich ein Datum ohne Uhrzeit, TTime nur eine Uhrzeit und TDateTime beides. Alle drei Typen können ohne das Einbinden spezieller Units verwendet werden. Die Units SysUtils und DateUtils bieten jede Menge Funktionen, um mit Datums- und Zeitwerten zu arbeiten. Genau genommen ist TDateTime einfach ein Double-Wert, also eine Zahl. Der ganzzahlige Anteil stellt dabei die Tage seit dem 30.12.1899 dar, der Nachkommateil bestimmt die Uhrzeit als Bruchteil eines Tages.

4.12.1.1. Heute und jetzt

Zunächst sehen wir uns an einem Beispiel an, wie man TDate-, TTime- und TDateTime-Variablen auf das aktuelle Datum bzw. die aktuelle Zeit setzt: uses SysUtils; var datum: TDate; zeit: TTime; datumZeit: TDateTime; begin datum := Date; datum enthält nun das aktuelle Systemdatum zeit := Time; zeit enthält nun die aktuelle Systemuhrzeit datumZeit := Now; datumZeit enthält sowohl Datum als auch Uhrzeit „Date , „Ti e u d „No sind Funktionen der Unit SysUtils.

4.12.1.2. Datum und Zeit umwandeln

Häufig bekommt man ein Datum aber über eine Benutzereingabe als String und muss diesen in einen Datumswert umwandeln: