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

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.

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 :)

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.

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

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

DSTRCTR

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..

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.

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 :)

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

a może jak windows odpalić?

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

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