Entwickler-Ecke
Dateizugriff - Lesen aus eigenen Dat-Dateien
PhilGo - Do 09.10.03 18:10
Titel: Lesen aus eigenen Dat-Dateien
Moin erstmal, ich hab mal aus Testzwecken eine Dat-Datei erstellt mit 3 Zeilen in den immer was anderes steht. Nun mein Problem:
- Wie kann ich die einzelnen Zeilen auslesen?
- Wie kann ich in die Dat-Datei mehrere Zeilen speichern?
Danke im voraus. :roll:
Mfg PhilGo
barfuesser - Do 09.10.03 18:14
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| MyFile := TStringList.Create; MyFile.LoadFromFile('myfile.dat'); for i:=0 to MyFile.Count - 1 do MyFile[i] := MyFile[i] + ' ein bisschen Text'; MyFile.SaveToFile('myfile.dat'); MyFile.Free;
barfuesser |
Klabautermann - Do 09.10.03 18:34
Hallo,
kommt immer drauf an, was du in deiner Datei sthen haben willst.
Soll es wirklich nur Text sein?
Gruß
Klabautermann
PhilGo - Fr 10.10.03 14:29
@barfuesser: Danke erstmal für den Quelltext, daß bringt mich schon weiter. :D Kann man mit der Stringlist dann auch den Text auslesen, also
Delphi-Quelltext
1: 2: 3: 4:
| ... MyFile.LoadFromFile('myfile.dat'); Label1.Caption := MyFile[i].text; ... |
:?:
@Klabautermann: Kann Text, aber auch Zahlen sein. Aber warum?
Mfg PhilGo
barfuesser - Fr 10.10.03 14:34
| PhilGo hat folgendes geschrieben: |
@barfuesser: Danke erstmal für den Quelltext, daß bringt mich schon weiter. :D Kann man mit der Stringlist dann auch den Text auslesen, also Delphi-Quelltext 1: 2: 3: 4:
| ... MyFile.LoadFromFile('myfile.dat'); Label1.Caption := MyFile[i].text; ... | :?:
|
Ja, kann man:
Delphi-Quelltext
1:
| Label1.Caption := MyFile[i]; |
oder
Delphi-Quelltext
1:
| Label1.Caption := MyFile.Strings[i]; |
zeigt in der Caption die i-te Zeile der Datei an.
barfuesser
PhilGo - Fr 10.10.03 14:42
Hi, fangen die Zeilen beim Index 0 oder 1 an (@barfuesser)?
Mfg PhilGo
Klabautermann - Fr 10.10.03 15:05
Hallo,
| PhilGo hat folgendes geschrieben: |
| @Klabautermann: Kann Text, aber auch Zahlen sein. Aber warum? |
um abschätzen zu können ob du Textdateien, Typisierte oder Untypisierte Dateien verwenden solltest.
Wenn du die Zahlen tatsächlich als Zahl und nicht als Folge von Chars abspeichern Willst kannst du nämlich keine Textdateien verwenden.
Wenn also ein Longint nur 4 Byte in der Datei einnehmen soll auch wenn da -2147483648 drinsteht (als Folge von Char währen es 11 Byte) dann musst du dir ein anderes Format aussuchen. Ob Typisiert oder untypisiert hängt davon ab, ob die Datein eine Feste Struktur (Ein Record) haben oder Beliebigsein können.
| PhilGo hat folgendes geschrieben: |
| Hi, fangen die Zeilen beim Index 0 oder 1 an (@barfuesser)? |
Bei 0.
Gruß
Klabautermann
PhilGo - So 12.10.03 15:02
Hi, also muss ich, wenn ich Text und Zahlen speichern (bzw. laden) will, eine Typisierte nehmen? :roll:
Mfg PhilGo
Anonymous - So 12.10.03 15:46
wenn du strings speichern willst, würde ich eine untypisierte nehmen, weil es sonst probleme gibt.
Wenn du zwischendurch auch noch anderes speicherst, kommt sowieso nur eine untypisierte in frage.
Klabautermann - Mo 13.10.03 10:49
Hi,
| PhilGo hat folgendes geschrieben: |
| Hi, also muss ich, wenn ich Text und Zahlen speichern (bzw. laden) will, eine Typisierte nehmen? :roll: |
also wenn du z.B. solche Strukturen Seichern willst:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| Type tSollGespeichertWerden = packed record Name : String [50]; Schugroesse : Integer; GebTag : tDataTime; end; |
Dann solltest du Typisierte Dateinen nehmen. Also immer dann wenn es um Gleichartige Daten geht.
Wenn du soetwas speichern willst:
Delphi-Quelltext
1:
| 'Udo ist vor 8 Jahren in unsere Stadt gezogen.' |
Dann speicherst du troz der 8 keine Zahl sondern lässt diese als Zeichen. Dann sind Textdateien deine lösung.
Wenn es wilkührlich wird, deine Datei also im endeffekt so aussehen könnte:
Delphi-Quelltext
1:
| ['Hier steht eine String'][4711]['Hier noch ein String']['Hier ein Dritter String'][28.05.1996] |
Dann musst du dich mit Untypisierten Dateien beschäftigen.
Wenn du also sagst, du willst Zahlen und Text Speichern, dann kommt es drauf an, wie diese im verhältnis zueinander stehen.
Gruß
Klabautermann
PhilGo - Do 16.10.03 11:19
Danke für eure Hilfe. Ich meinte halt Zustände von meinem Formular(wie z.Bleistift die Größe des Formulars oder die Caption des Formulars, ...) Ich wollte halt meine Daten in Dat-Datei speichern, nicht in Ini-Dateien.
Aber mit eurer Hilfe kann ich das nu machen. :P
Mfg PhilGo
Delete - Do 16.10.03 11:24
Was spricht gegen Ini-Dateien? gerade dafür sind sie gemacht worden.
Klabautermann - Do 16.10.03 11:25
Und natürlich kannst du INIs auch die Endung *.dat verpassen ;).
Gruß
Klabautermann
PhilGo - Do 16.10.03 12:00
@Luckie: Nichts spricht gegen Ini-Dateien, aber ich will halt meine Daten in Dat-Dateien speichern und wenn man das nicht kann, darf man doch fragen oder? :roll:
@Klabautermann: Wie kann man das den machen? Einfach nur umbenennen oder noch was anderes? :nixweiss:
Mfg PhilGo
Klabautermann - Do 16.10.03 12:18
Hallo,
| PhilGo hat folgendes geschrieben: |
| @Klabautermann: Wie kann man das den machen? Einfach nur umbenennen oder noch was anderes? :nixweiss: |
einfach beim erzeugen des Objektes den gewünschten Namen angeben. Also z.B. so:
Delphi-Quelltext
1: 2: 3: 4:
| VAR INI : tMEMIniFile; begin INI := tMemIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Config.dat'); |
Das legt eine INI-Datei mit den Namen Config.dat im Programmverzeichnis an.
Gruß
Klabautermann
PhilGo - So 19.10.03 14:19
Danke, ich wusste gar nicht das das so einfach ist :P .
Mfg PhilGo
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!