Parametry

Thomashek

Niektórzy zapewne spotkali się z parametrami dodawanymi do plików. Jest nim chociażby parametr "q" dodawany do polecenia format w MS-DOSie. Jest to ciąg znaków, który może zostać odczytany przez aplikację. A wiadomo, że po odczytaniu można z tego zrobić określony użytek. Na przykład dany parametr mógłby oznaczać uruchomienie programu w innej rozdzielczości, czy może ukazanie dodatkowych funkcji.
Aby uruchomić program z parametrem, najlepiej jest utworzyć skrót do programu i otworzyć jego właściwości. W polu Element docelowy, najczęściej w cudzysłowie, podana jest ścieżka wraz z nazwą pliku. Na końcu, poza cudzysłowem, należy dopisać odpowiedni parametr.
W Delphi istnieją dwie funkcje służące do odczytu parametrów. Są to: ParamStr oraz ParamCount.
Na początku omówię po krótce drugą z nich. Jest to prosta funkcja zwracająca wartość integer oznaczającą liczbę parametrów dodanych do pliku.
Pierwsza funkcja zwraca natomiast wartość string i jak nietrudno się domyśleć, jest to treść parametru. W nawiasie, po nazwie funkcji należy podać numer parametru, przy czym 0 zwróci nazwę pliku.
Mając te informacje, można je w łatwy sposób wykorzystać. Poniżej procedura wywołana przez utworzenie formy:

procedure TForm1.FormCreate(Sender: TObject);
begin
ShowMessage('Do skrótu dodano ' + IntToStr(ParamCount) + ' parametrów');
ShowMessage('Parametr numer 0, czyli nazwa pliku to: ' + ParamStr(0));
ShowMessage('Parametr numer 1 to: ' + ParamStr(1));
end;

W związku z tym, że funkcja ParamCount zwraca rezultat w postaci liczby typu integer, należy ją przekonwertować do postaci tekstu. Służy do tego, jak zapewne większości wiadomo, funkcja IntToStr. Jeśli nie dodano żadnego parametru, zostanie wyświetlony komunikat o tym informujący. Jednak nawet wtedy parametr 0 będzie zawierał nazwę pliku, a parametr 1 będzie pusty.
Można spróbować utworzyć skrót do takiego programu, i na końcu, po cudzysłowie, dodać parametry. Spacja rozdziela kolejne parametry. Co jednak, gdy potrzebujemy takiego parametru (ze spacją): usun plik nr 2? Wtedy należy ująć ten parametr w cudzysłów. Przykładowy zapis we właściwościach skrótu w polu Element docelowy: "C:\Program.exe" "usun plik nr 22".
Istnieje jeszcze jedno ważne zastosowanie parametrów, o którym nie wspomniałem na początku. Jeśli otworzymy dowolny plik (np. dokument tekstowy o rozszerzeniu *.txt) za pomocą napisanej aplikacji, parametr o indeksie 1 będzie zawierał nazwę otwieranego dokumentu.
Mam nadzieję, że rozjaśniłem wszystkim to, w jaki sposób dodawać parametry. Wiem, że większość poradziłaby sobie bez artykułu (wszystko jest w pomocy Delphi), ale napisać nie zaszkodzi.

12 komentarzy

FAjna funkcja ParamStr(0)....... kto mi powie, jaki jest jej odpowiednik w vbs ?? Bardzo mnie to ciekawi !
gg:2373739
[email protected]

DSTRCTR

e no bez przesady, to najwyzej wskazowka, poza tym parametry do pliku? jakos tak nie bardzo

niedługo będą artykuły o tym, jak uruchomić Delphi :-/

[quote]niedługo będą artykuły o tym, jak uruchomić Delphi [/quote]

a może jak windows odpalić?

a ja dziękuję, bo o tym nie słyszałem. Poza tym brak mi czasami artykułów o prostych rzeczach ale przydatnych, a nie tylko takich jak zrobić z komputera pralke czy lodówkę. Nie zapominajcie o osobach, które dopiero się uczą!!! a jak się wam nie podoba to zróbcie dział dla laików czy lamerów jak Wy to nazywacie :)

zrobimy dział ... ale z jednym wątkiem, w którego tytul bedzie 'poszukaj na forum' Bo tak zwani 'laicy' w wiekszosci przejawiają tendencje do zadawania wiecznie tych samych podstawowych pytan.

Artykuł zapewne pouczający.. ale przydało by się wiecej informacji. Spacje np. rozdzielają parametry ale chyba tylko na winszicie 9.x .. wtedy jeśli mamy całe zdania w parametrach to trzeba je złączyć.. - a przecież ścieżki do plików też mogą zawierać spacje - wtedy nawet pliku nie otworzymy. Proponuje dopisać kilka słów na ten temat..

Ciekawa rzecz przydała się do mojego odtwarzacza czyli Codec Player-a 0.3

To powinieneś jeszcze dodać fakt, że nie tylko parametr 1 zawiera nazwę pliku. Jeśli otworzysz programem kilka plików \"za jednym zamachem\", to kolejne pliki będą w kolejnych parametrach.

jesli plik w swojej nazwie ( sceizka + nazwa pliku zawiera spacje) to nalezy go ujac w cudzyslowy :)

jesli plik w swojej nazwie ( sceizka + nazwa pliku zawiera spacje) to nalezy go ujac w cudzyslowy :)

A mi się przydał! Wprawdzie piszę w C++ Builderze, ale te środowiska to akurat prawie to samo. Uwierzcie, są jeszcie na tym świecie noobowie, którym takie poradniki sporo wyjaśniają! Wy też kiedyś zaczynaliście, i nie wiedzieliście wszystkiego. Chyba nawet żaden z twórców tego środowiska nie wie o nim wszystkiego.