Tu je opraveny tvoj kod. Je to pre TurboPascal v7.0. Ty to mas podla tych screenov asi z freePascalu. Ten mozem skusit potom tiez. Ale takto to v TP7 funguje. Inak cestu k suborom musis zadavat celu. Cast kodu tam nemusis mat nakolko je to len inverzna funkcia, takze druhy priklad je lepsi.
Kód:
Program TEST03;
uses Crt;
var
VstupnySubor,VystupnySubor: File of Char;
MenoVstupnehoSuboru,MenoVystupnehoSuboru: String;
Ch,Operacia: Char;
BEGIN
ClrScr;
WriteLn ('DEMO program na kodovanie, dekodovanie suboru');
WriteLn;
Write ('Zadaj meno vstupneho suboru: ');
ReadLn (MenoVstupnehoSuboru);
Write ('Zadaj meno vystupneho suboru: ');
Readln (MenoVystupnehoSuboru);
Write ('Zadaj pismeno ''k'' prezakodovanie, alebo pismeno ''d'' pre rozkodovanie: ');
ReadLn (Operacia);
if ((MenoVstupnehoSuboru<>'') and (MenoVystupnehoSuboru<>'')) then begin
if (Operacia='k') then begin
Assign (VstupnySubor,MenoVstupnehoSuboru);
Reset (VstupnySubor);
Assign (VystupnySubor,MenoVystupnehoSuboru);
Rewrite (VystupnySubor);
while not Eof (VstupnySubor) do begin {Kodovanie}
Read (VstupnySubor,Ch);
Ch:=Char ((Ord (Ch) xor 155));
Write (VystupnySubor,Ch);
end;
Close (VstupnySubor);
Close (VystupnySubor);
WriteLn ('Subor bo uspesne zakodovany !');
end
else begin
Assign (VstupnySubor,MenoVstupnehoSuboru);
Reset (VstupnySubor);
Assign (VystupnySubor,MenoVystupnehoSuboru);
Rewrite (VystupnySubor);
while not Eof (VstupnySubor) do begin {Dekodovanie}
Read (VstupnySubor,Ch);
Ch:=Char ((Ord (Ch) xor 155));
Write (VystupnySubor,Ch);
end;
Close (VstupnySubor);
Close (VystupnySubor);
WriteLn ('Subor bo uspesne dekodovany !');
end;
end
else WriteLn ('Musite zadat vstupny a vystupny subor');
END.
Varianta c.2
Kód:
Program TEST03;
uses Crt;
var
VstupnySubor,VystupnySubor: File of Char;
MenoVstupnehoSuboru,MenoVystupnehoSuboru: String;
Ch: Char;
BEGIN
ClrScr;
WriteLn ('DEMO program na kodovanie, dekodovanie suboru');
WriteLn;
Write ('Zadaj meno vstupneho suboru: ');
ReadLn (MenoVstupnehoSuboru);
Write ('Zadaj meno vystupneho suboru: ');
Readln (MenoVystupnehoSuboru);
if ((MenoVstupnehoSuboru<>'') and (MenoVystupnehoSuboru<>'')) then begin
Assign (VstupnySubor,MenoVstupnehoSuboru);
Reset (VstupnySubor);
Assign (VystupnySubor,MenoVystupnehoSuboru);
Rewrite (VystupnySubor);
while not Eof (VstupnySubor) do begin {Kodovanie}
Read (VstupnySubor,Ch);
Ch:=Char ((Ord (Ch) xor 155));
Write (VystupnySubor,Ch);
end;
Close (VstupnySubor);
Close (VystupnySubor);
WriteLn ('Subor bo uspesne zakodovany !');
end
else WriteLn ('Musite zadat vstupny a vystupny subor');
END.