![]() |
Probleme mit Sequentiellen Dateien und Records
Bevor ich mein Problem schildere eine kleine Warnung:
Ich bin nur ein winziger Schüler, für die Schule und aus Spaß mit Delphi programmiert => leider kein Profi.... Ich versuche gerade für die Schule ein Listenprogramm zu erstellen und save- und open-Dialog zu verwenden um die Liste zu speichern. Meine Speicher-Prozedur sieht wie folgt aus.
Delphi-Quellcode:
Ich würde nun gerne einfach statt die Daten in einen String laden zu müssen, wie es hier 'b' ist, einen langen Record (hier:daten) benutzen. Allerdings nimmt write anscheinend nur Strings an!
procedure Sortliste.speichern(dtname:string);
var daten:lsatz; mst:textfile; f:textfile; b:string; e:tstrings; begin daten.lname:=(self.aktuelles as kontakt).Name; daten.lemail:=(self.aktuelles as kontakt).Email; b:= (self.aktuelles as kontakt).Name+ (self.aktuelles as kontakt).Email; AssignFile(F, dtname); rewrite(f); write(f,b); close(f); end; Daher eine wahrscheinlich dumme Frage: Wie kann ich die Daten einer Liste, die den Namen der Person und der passenden Mail-Adresse nach dem Alphabet geordnet beinhaltet, in so in einen Record packen, dass write ihn annimmt und ich diesen problemlos wieder einlesen kann??? Ich würde mich über einige rasche Antworten freuen, da ich das Programm spätestens am Montag fertig bekommen muss. Vielen Dank im Vorraus! mfg Bengo PS: Ich bin zwar Schüler, dies ist aber eine freiwillige zusätzliche Leistung, die ich erbringe. Außerdem habe ich das gesamte Programm fertig und schlage mich nur noch mit diesem Problem rum => keiner kann mir vorwerfen, ich wollte, dass andere meine Hausaufgaben machen! (ich arbeite etwas vor, was wir noch nicht hatten!!) |
Re: Probleme mit Sequentiellen Dateien und Records
du benutzt anscheinend file of char oder sowas. versuch es mal mit file of deinrecordname. damit kannst du records in dateien speichern.
|
Re: Probleme mit Sequentiellen Dateien und Records
Das ist es ja! Ich benutze noch kein File of... irgendetwas, weil ich gerade das noch nicht weiß, kenne, verstehe...
Kann mir das einer erklären??? Bidde!!! |
Re: Probleme mit Sequentiellen Dateien und Records
|
Re: Probleme mit Sequentiellen Dateien und Records
ES HAT LANGE GEDAUERT...
Aber ich glaube nun zu wissen, was ich falsch gemacht hatte!! Danke für deine Hilfe!! |
Re: Probleme mit Sequentiellen Dateien und Records
Es wäre ja nicht schlecht, wenn du dein neues Wissen mit uns teilst ... vielleicht haben ja mal andere ein ähnliches Problem ;)
|
Re: Probleme mit Sequentiellen Dateien und Records
Najut!!
Ich werde mein neues Wissen, das für die meisten Delphiprogrammierer zu den einfachen Grundlagen gehören wird, hier kundtun, wenn das Programm ganz fertig ist. Das Speichern gelingt schon, nur beim Laden entsteht noch ein nerviger Fehler:
Delphi-Quellcode:
Sobald ich das Laden ausführe und ich per Opendialog eine Datei ausgewählt habe und diese öffne, öffnet er diese Prozedur und zeigt mit dem grünen Pfeil auf die "while (not eof) do"-Zeile.
procedure Sortliste.laden(dtname:string);
var daten:lsatz; f:file of lsatz; lkontakt:kontakt; begin assignFile(f,dtname); reset(f); while (not eof) do begin read(f,daten); lkontakt:=kontakt.init(daten.lname,daten.lemail); self.sortiertEinfuegen(lkontakt); end; end; Wie man hier erkennt versuche ich den in die Datei geschriebenen Record wieder herauszulesen, in einen Kontakt zu schieben und dann wieder in meine Liste einzureihen. Anschließend soll in der Textdatei zum nächsten Record gesprungen werden um den Vorgang solange zu wiederholen, bis ich am Ende der Datei angekommen bin (EndOfFile). Die Fehlermeldung lautet: Im Programm ... ist eine Exception der Klasse EInOutError aufgetreten. Meldung: 'E/A-Fehler 6'. Prozess wurde angehalten. .... Auch hier wäre ich für Tipps dankbar. Wenn ich die gesamten Record und Laden / Speichern - Fehler überbrückt habe, dann werde ich sowieso für die anderen Schüler eine Dokumentation vielleicht in Form einer pps anlegen. Die kann ich dann ins Netz stellen. mfg |
Re: Probleme mit Sequentiellen Dateien und Records
Hallo,
beim Aufruf der Funktion Eof hast du die Dateivariable vergessen:
Delphi-Quellcode:
Außerdem solltest du nicht vergessen, die Datei auch wieder zu schließen.
while (not Eof(f)) do...
Gruß Hawkeye |
Re: Probleme mit Sequentiellen Dateien und Records
super!! DANKE!!
Das wird es sein! Ich arbeite weiter daran! |
Re: Probleme mit Sequentiellen Dateien und Records
Liste der Anhänge anzeigen (Anzahl: 2)
soooo....
Das Programm an für sich, mit dem ich anfangs Probleme hatte, ist fertig! Es befindet sich im Anhang. Die Dokumentation folgt noch. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz