Turbo Pascal - mam problem z funkcja (char -&gt string)

0

Witam,

jak w pascalu wydluzac stringa znakami char.
Ponizej przyklad tego o co mi chodzi.

Funkcja ma zczytywac znaki z klawiatury - jezeli Esc lub Enter to wyjdz, jezeli inne (litery, cyfry itp.) to ma je zapisac do zmiennej typu string).

function czytaj_nazwe_pliku (var spr : string) : boolean;
var c1, c2 : char;
spr : string
begin
pom:=0;
repeat
if keypressed then
begin
c1:=readkey;
if ord(c1)=0 then c2:=readkey
else
begin
if ord(c1) in [33..126] then
begin
spr:=spr + c1; {i tu sie pojawia blad}
write(c1);
end
else if ord(c1)=13 then pom:=1
else if ord(c1)=27 then pom:=2
else error; {wywolanie innej procedury}
end;
end;
until (pom=1) or (pom=2);
case pom of
1 : czytaj_nazwe_pliku:=false;
2 : czytaj_nazwe_pliku:=true;
end;
end;

Bycmoze pytanie jest banalne ale zacmilo mnie :).
Z goru dzieki za pomoc.

0

przypuszczam ze pojawil sie blad w stylu - niezgodnosc typow. Dawno nie pisalem juz nic w pascalu, ale sadze ze mozna to zrobic tak
spr[length(spr)+1]:=c1;
Nie pamietam tylko czy w pascalu jest funkcja length, ale powinna byc.

0

naprawde nie czytałem całej funkcji ale od razu widzę:
function czytaj_nazwe_pliku (var spr : string) : boolean;
var c1, c2 : char;
spr : string
begin

wie poprawiam
na

function czytaj_nazwe_pliku (spr : string) : boolean;
var c1, c2 : char;
begin

0

Taki mały szczegół:

function czytaj_nazwe_pliku (var spr : string) : boolean;
var c1, c2 : char;
begin

Musi być var, żeby mógł zwrócić wartość. A char jest zgodne ze string (przynajmniej w jedną stronę).
Można zrobić przypisanie spr := c1; (chyba, że spr jest zadeklarowane jako const)--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

1 użytkowników online, w tym zalogowanych: 0, gości: 1