Zitat:
Ich denke ausserdem, dass du keine Daten vom Typ CD in die Datei schreiben kannst, sondern nur daten vom Typ String
Falsch gedacht. Die Datei ist ja schließlich als
deklariert. Und dass es neben Textdateien auch noch andere (binäre) Formate gibt, müsstest du eigentlich wissen. Und, warum sollte man mit Delphi solche Sachen also nicht auch machen können?
Ich habe früher aber nur "blockread/blockwrite" benutzt und die Datei ganz simpel nur als
deklariert. Das hat bei meinen Versuchen immer tadellos funktioniert. Aber mit "write" sollte es bei einer typisierten Datei -s. Andys Deklaration- eigentlich auch gehen.
Meine Frage wg. des Fehlers wäre: wie hast du die Datei geöffnet, Andy? Ich sehe in deinem Quellcode zwar die "write"-Anweisung, aber der Teil davor (AssignFile
ff.; oder was immer du benutzt) fehlt. Das wäre aber ein Anhaltspunkt um dir zu helfen.
Möglich, dass die Datei auch noch durch einen anderen Teil deines Programms belegt wird?
Dein geposteter Code ist zu kurz, um ´ne vernünftige Aussage treffen zu können.
Generell würde ich aber den verwendeten Strings im Record eine Länge zuordnen:
Code:
name,pos,komment:string[50];
...
entry:array[1..24] of string[70];
Da ein ShortString ja bis 255 Zeichen lang sein kann, musst du die absolute Länge festlegen, damit die gespeicherten Records in der Datei immer gleich lang sind. Sonst gibt´s u.U. Probleme mit dem Suchen eines Records (anhand der Recordlänge) und mit dem Einlesen natürlich.
Und du bist sicher, dass "entry" wirklich ein Array von 70 Strings sein soll? Ah, das wird die Titelliste sein ...