Problem z paramstr i utworzeniem pliku

0

Cześć. Mam mały problem, który nie wiem jak rozwiązać a w sieci też nie znalazłem.

W założeniu kod ma pobrać z konsoli parametr, który jest nazwą pliku i utworzyć ten plik.

      uses
        sysutils;
      var
        fin,fout: string;
        fstr: text;
begin
  readln(fin);
  assign(fstr, fin);
  rewrite(fstr);
  writeln(fstr,'przyklad');
  close(fstr);
end.  

Powyższy kod działa. Niestety w momencie kiedy zrobię tak:

//zmienne itp. j.w
begin
  fin := Paramstr(1);
  assign(fstr, fin);
  rewrite(fstr);
  writeln(fstr,'przyklad');
  close(fstr);
end.  

To program się uruchamia bez błędu lecz plik się nie tworzy. Gdzie może być problem ? Dodam, że jak wyświetlę sobie ten parametr to pokazuje prawidłową wartość. Paramstr przekazuje wynik w postaci string a assign drugi parametr także jeżeli się nie mylę.

1
Kaszubak napisał(a):

To program się uruchamia bez błędu lecz plik się nie tworzy. Gdzie może być problem?

Sprawdź, czy z poziomu bieżącego użytkownika systemu, masz uprawnienia do zapisu w zadanej lokalizacji.

Paramstr przekazuje wynik w postaci string […]

Jaki znowu wynik? Funkcja ta albo zwraca pełną ścieżkę pliku wykonywalnego (jeśli otrzyma w argumencie indeks 0) lub wartość dodatkowego parametru (dla indeksu od 1 do ParamCnt).

[…] a assign drugi parametr także jeżeli się nie mylę.

Assign przyjmuje w drugim parametrze ścieżkę lub nazwę pliku – nic nie przekazuje.


Przy okazji – nazwij te zmienne sensownie.

0

Z ciekawości przetestowałem pod Delphi7 (zamieniając text -> TextFile, assign -> AssignFile, close -> CloseFile) i plik utworzył się w katalogu programu.

0
furious programming napisał(a):

Sprawdź, czy z poziomu bieżącego użytkownika systemu, masz uprawnienia do zapisu w zadanej lokalizacji.

A o tym nie pomyślałem, wystarczyło uruchomić cmd z uprawnieniami administratora .. Dzięki!

Paramstr przekazuje wynik w postaci string […]

Jaki znowu wynik? Funkcja ta albo zwraca pełną ścieżkę pliku wykonywalnego (jeśli otrzyma w argumencie indeks 0) lub wartość dodatkowego parametru (dla indeksu od 1 do ParamCnt).

[…] a assign drugi parametr także jeżeli się nie mylę.

Assign przyjmuje w drugim parametrze ścieżkę lub nazwę pliku – nic nie przekazuje.

Sorki, źle to sprecyzowałem. Chodziło mi właśnie o zwracanie wartości parametru :)

Przy okazji – nazwij te zmienne sensownie.

Są to moje skróty myślowe, ale masz rację warto nazwać sensownie lub je chociaż opisać w komentarzu.

Dzięki za pomoc :D

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