Entwickler-Ecke
Dateizugriff - Per SEEK bestimmte Zeichen aus(in) Datei lesen(schreiben)
Andysaw - Mi 18.12.02 14:59
Titel: Per SEEK bestimmte Zeichen aus(in) Datei lesen(schreiben)
Hallo an alle !
Zur Info allgemein:
Ich hab alle meine Fragen hier beantwortet bekommen (bis auf dosproggy starten doch ich lass es sein ), und freue mich hier die Hilfe bekommen zu haben. (Das so mal zum schleimen)
Nun zu meinem Problem:
Ich hatte füher mal angefragt wie ich dateien auslesen soll. Als ersten Ansatz hatte ich ein Proggy das mir die ganze Datei in einen String liest(ging nicht anders Delhi konnte das LF und das CR nicht erkennen) und dann mittels arrays und einigen Schleifen die Zahlen zusammensetzt die ich brauche.Nun wurden die Ausgabedateien doch noch geändert und ich konnte es ganz normal mit readln lesen. Mein Fehler war ich hab die alte Unit gelöscht und die brauch ich jetzt.
Die Datei ist in diesem Format:
Werte
Wert1 in m : 12
Wert2 in °C : 10
........................
........................
und so weiter und so fort.
Meine neue Zielsetzung ist die Zahlenwerte Lesen zu können und in ein editfeld darzustellen.(Meinetwegen auch erst in eine Datenbank und dann per DBEdit) So dass man sich die Werte erst anschauen kann und wenn sie einem nicht passen ändert man sie in dem Edit feld. Dann knopf übernehmen und die aktuellen Werte überschreiben die alten Werte.
Ufff...
Ich hab mich selber wieder an Seek rangesetzt aber irgendwie bekomm ich das nicht mehr hin. Ich würd das gern auch ohne die zusammensetzerei wie vorher machen.
Wer also einen Lösungsansatz (oder besser eine Lösung ..gg) hat melde sich bitte !
MfG
Andy
DJ_Apfel - Sa 21.12.02 15:06
zum Beispiel so hier:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| procedure TfrmMain.FormCreate(Sender: TObject);
var adress_datei: file of TAdressen; // Dateivariable adressen: TAdressen; // Recordvariable
begin
// Dateinamen mit Variablen verbinden AssignFile(adress_datei,'test.dat');
aktueller_datensatz := 1;
if FileExists ('test.dat') then begin // wenn Datei existiert dann lesen Reset(adress_datei); Seek(adress_datei,aktueller_datensatz - 1); Read(adress_datei, adressen); with adressen do begin txtName.Text := LEER; txtVorname.Text := LEER; txtOrt.Text := LEER; txtPlz.Text := LEER; end; // end-with end // if-end else begin ShowMessage('Es wurde keine Datendatei gefunden, neue Datei wird erstellt.'); Rewrite(adress_datei); // ansonsten Datei erzeugen end; // else-end
CloseFile(adress_datei);
end; // proc-end |
Andysaw - Sa 21.12.02 20:38
ooops...wieder mein fehler...
das wäreja eine typisierte textdatei....(und wäre schön) ích habe leider eine untypisierte und unveränderliche textdatei (soll heissen ich kann die struktur nicht ändern) ich kann sie ausserdem nur komplett in einen string einlesen. also möchte ich versuchen die positionen der werte manuell vom stringanfang abzuzählen und dann mit seek zu treffen. (ist albern aber so kann es wenigstens funktionieren) ich werd mich am sonntag abend nochmal mit der seek funktion auseinandersetzen.
Aber wenn mir einer ein kurzes beispiel liefern würde, wie ich zb von der 10ten stelle bis zur 15ten stelle alles auslese wär es perfekt dann kann ich sonntag mein projekt beenden. (ich muss dann nur noch ne installationsgeschichte mit Installschield basteln, hab ich noch nie gemacht aber hab ne anleitung in einem Buch)
MfG
Andy
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!