Pascal ban nevek tárolása? Írás lent
Kéne nekem egy olyan parancs amihez ha beirod a neved eltárolja egy nyertesek.txt fájl ban
így gondolom: Nyertél! Írd be a nevedet: ide beirod és lementi a nyertesek.txt-be egy jelszó kitaláló játékról van szó eddig ide jutottam:
Program Tordfel;
Uses crt;
Var
f: Text;
i, maxlevel: Word;
jelszo, leir: Array[0..10] Of String;
s: String;
Begin
Write('Tordfel Game! Jelszokitalalo jatek! By: Kozs?la');
s:='';
jelszo[0]:='';
Assign(f, 'jelszo.txt');
Reset(f);
i:=1;
While Not(EOF(f)) Do
Begin
ReadLn(f, leir[i]);
ReadLn(f, jelszo[i]);
jelszo[i]:=UpCase(jelszo[i]);
Inc(i);
End;
Close(f);
maxlevel:=i;
i:=1;
While (i<maxlevel) And (UpCase(s)=jelszo[i-1]) Do
Begin
Clrscr;
Writeln('Tordfel Game! Jelszokitalalo jatek! By: Kozs?la');
Writeln('...................');
Write('LVL', i, chr(13), chr(10));
WriteLn(leir[i]);
Writeln('...................');
Write('Kerem a jelszot:');
ReadLn(s);
Inc(i);
End;
ClrScr;
If (i<maxlevel) Or (UpCase(s)<>jelszo[i-1]) Then
Write('Game Over! Vesztettel!')
Else
Write('Nyertel!');
ReadLn;
End.
Miért Pascal-t használsz? Igazából a Pascalt nehéz megtanulni és használni. Ha suliba kell akkor ok, de egyébként mással próbálkozz szerintem.
Egyébként a ma leginkább használt Pascal változat, a FreePascal dokumentációja itt található meg, ha tényleg kell: [link]
Gondolom ez a unit használható a ki és bemenet kezelésére bár nem szoktam pascalt használni: [link]
Akkor mit, okostojás?
Próbáld már meg érthetően megfogalmazni a kérdést...
Gondolom fájlba akarsz adatot írni. Mi mind a ketten azt mondtuk el, hogy hogy teheted ezt meg.
Ha már az olvasás meg, nem értem egyébként sem, hogy okozhat gondot az írás?
Hát akkor pont jó a válasz. Mivel mindent tudsz a fájlba íráson kívül. Annyi hogy bekéred a nevet és azt íratod a fájlba...
Azt pedig a Writeln-el is meg lehet tenni, illetve azzal is amit linkeltem. Annyi hogy a Writeln második argumentuma egy fájl kell hogy legyen, ami írásra(nem újraírásra) van megnyitva.
megcsinálom így néz ki a vége:
ClrScr;
If (i<maxlevel) Or (UpCase(s)<>jelszo[i-1]) Then
Write('Game Over! Vesztettel!')
Else
Write('Nyertel!');
Write('..............');
Write('Ird be a neved:');
ReadLn(s);
assign(f, 'nyertesek.txt');
Writeln(f);
close(f);
End.
de hiába nem menti el mikor megnyitom a nyertesek.txt nincs benne semmi
Writeln(f);
Hibás! Nem adtad meg, hogy MIT akarsz kiírni!
Writeln(f, <változó>);
Writeln(f, <szöveg>);
Kérdező csak annyit mondok, hogy rossz helyre tetted a kérdést, ezek itt csak kötekedni akarnak. Kivéve az első válaszoló, aki megadta neked, hogy mit kell csinálj... :P
Viszont a második válaszoló az csak kötekedni akart...
"Else
Write('Nyertel!');
ReadLn;"
Inkább:
else
begin
write('Nyertel!');
assign(f,'nyertesek.txt'); //hozzarendeljuk a nyertesek fajlt az f-hez
append(f); //megnyitjuk (3 felekeppen nyithatod meg: reset, rewrite es append. A rewrite felulirja a fajlt, vagyis ujat hoz letre, az append a vegere ir, a reset pedig olvas. A rewrite letre is hozza a fajlt, ha nem letezik, a masik ketto ez esetben hibat ad!!! erre vigyazz :P)
writeln(f,s); //kiirjuk a fajlba
close(f); //bezarjuk
end; // az else ag vege
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!