Zmiana nazwy pliku, tekstowego.

0

Otóż podjąłem się próby do utworzenia procedury, który by miała na celu zmianę nazwy pliku tekstowego.


procedure wybor;
var a : integer; plik1:string;
begin
  writeln('Podaj nazwe pliku: ');
  readln(plik);
  if FileExists(plik) = True then
  begin
    writeln('Plik z danymi o uczniach jest utworzony. Mozesz teraz skorzystac z nastepujacych funkcji:');
    writeln('1 - Zmiana nazwy pliku');
    writeln('2 - Skasowanie zawartosci pliku i zapisanie w nim nowych informacji.');
    writeln('3 - Dopisanie danych na koncu pliku.');
    readln(a);
    case a of
      1 :
        begin
          writeln('Podaj nowa nazwe: ');
          readln(plik1);
          assign(plik_uczniow, plik);
          Rename(plik_uczniow, plik1);
          close(plik_uczniow);
          plik:=plik1;
          writeln('Zmieniono nazwe pliku na: ', plik);
        end;

    else writeln('Bledny wybor.');
    end;
  end;
  readln;
end;

Ale niestety nie działa ;/ Program wywala błąd Exit code = 103, a wywala go przy Close(pli_uczniow); Co tu jest źle?
Działam w Free Pascalu IDE.

0

103 File not openprogram działa, zmienia nazwę pliku, a błąd masz dlatego, że close jest niepotrzebne.

0

Close używa się tylko kiedy otwieram np Rewrite lub Reset ?
I mam pytanie dlaczego jak miałem Assign(zmienna plikowa,plik); nie mogłem zmieniać wartości plik ?
Np:
Assign(zmiennaplikowa,plik);
readln(plik);

0

Ponieważ popełniłeś błąd...
readln(plik);
plik to nie to samo, co zmienna plikowa
Powinno być:
ReadLn(ZmiennaPlikowa);

Swoją drogą, taki zapis
if FileExists(plik) = True then
Można skrócić do
if FileExists(plik) Then

0

Plik to był zmienna w stringu gdzie przechowywał wpisaną przez użytkownika nazwę pliku np Alamakota.txt
Assign(zmiennaplikowa,plik);
readln(plik);
przepraszam zapomniałem dopisać tak miało być.
plik:='Alamakota.txt';
assign(jakaś zmienna plikowa,plik);
readln(plik);

0

Dwa razy wysłało.

0

Dlaczego jest Exit code = 6 ? Przy Filesize?

0

Plik to był zmienna w stringu gdzie przechowywał wpisaną przez użytkownika nazwę pliku np Alamakota.txt
przepisz to zdanie po polsku.

plik:='Alamakota.txt';
 assign(jakaś zmienna plikowa,plik);
 readln(plik);

źle. plik to tylko napis: 'Alamakota.txt', który nie jest w żaden sposób powiązany z faktycznym plikiem.

robi się tak:

readln(jakas_zmienna_plikowa, linia); // gdzie linia to zmienna typu string

wczyta ci to linijkę tekstu do zmiennej linia.

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