anfängerfrage wegen eof

Patron

Grünschnabel
moin,
habe ein kleines anfängerprob, und zwar habe ich n quiz in pascal geschrieben,
zuerst erstelle ich fragen, die in eine fragen.db gespeichert werden, dann soll aber das quiz losgehen und das programm soll die fragen.db einmal frage für frage runterlesen, das habe ich folgendermaßen gelöst:
while not eof(datenf) do
begin
read(datenf,daten);
with daten do
begin
writeln(frage);
aber das problem ist, dass er mir nur die letze frage auf den bildschirm schreibt, ich denk mal das problem ist, dass der die fragen.db nicht von ganz oben runterliest, sondern nur von der letzen frage an, und somit kommt nur eine frage raus...wie bringe ich ihn zum lesen der datei von ganz oben, also von der ersten frage an?
wäre dankbar für vorschläge/lösungen
mfg
 
Was steht denn davor in deinem Quelltext? Und was danach? Wo steht der Zeiger? Der muss in deiner Schleife immer eine Position weiter gesetzt werden, dann da wieder auslesen, Frage aufschreiben, wieder eins weiter. Das erkennt man aus dem Code-Schnipsel nicht heraus. Schau mal nach, ob du den Fehler selbst findest, lies noch mal irgendwo nach oder meld dich noch mal, wenn du nicht weiterkommst.

lg Hellie
 
hmm also hab mich so bissel eingelesen in das kapitel zeiger....konnte es aber bei mir immer noch nicht hinkriegen, ich poste einfach mal den ganzen quelltext rein als .txt.
kommentar zum quelltext:
die prozedur eingabe gilt nur für den verfasser des programms bzw. für den besitzer des quizes, der mit dieser prozedur fragen erstellen kann und dann auch festlegt, welche antwort richtig ist.
die prozedur ausgabe ist die, wo das problem meiner meinung nach liegt, weil ich den zeiger des records daten nicht zum anfang bringen kann.

wäre dankbar für lösungsansätze
 

Anhänge

  • Neu Textdokument (2).txt
    3 KB · Aufrufe: 51
Patron: Bitte achte zukünftig mehr auf deine Rechtschreibung und Grammatik (insb. Groß- und Kleinschreibung), gemäß unseren Nutzungsbedingungen. Danke :)
 
Hallo, da bin ich wieder (nach einer stressigen Schulreise)!

Zuerst mal ein dickes Kompliment, für einen "Anfäger", wie du dich ja selbst beschrieben hast, ist der Code sehr gut.

Zum Thema: Ich schätze mal, es geht um die procedure Ausgabe, dort kann man schon mal die letzten Selektionen zu einer zusammenfassen:

Code:
if userantwort=richtig then 
   writeln('Richtig!')
   else writeln('Falsch!')

Und nun zum (wenn ich mich nicht irre) eigentlichen Problem:
Code:
with daten do  begin
seek(datenf, n) //ich gehe davon aus, dass n die Frage ist, die ausgegeben werden soll
read(datenf,daten);clrscr;
gotoxy(1,17);
write(nr,'.Frage: ');
writeln(frage);
write('Antwort A: ');
writeln(antwort1);
write('Antwort B: ');
writeln(antwort2);
write('Antwort C: ');
writeln(antwort3);
write('Antwort D: ');
writeln(antwort4);
writeln;
writeln;
repeat
write('Ihre Antwort lautet(a,b,c,d): ');
readln(userantwort);
until userantwort in ['a','b','c','d'];
writeln;

Ganz wichtig ist: Ich programmiere, wenn überhaupt, in Delphi, in Pascal ist ja manches anders. Und ich bin ziemlich übermüdet. Falls ich also vollkommenen Mist geschrieben haben sollte, entschuldigt mich bitte. ´

lg Hellie

PS: Achte mal bitte auf deine Dateiverwaltung, also wann du die Datei schließt und öffnest...
 

Neue Beiträge

Zurück