Pobranie parametrów uruchomionego programu

Pobranie parametrów uruchomionego programu
P2
  • Rejestracja: dni
  • Ostatnio: dni
0

Czyli jeżeli uruchomię program w delphi "przykład.exe test". To jak w kodzie programu odczytać z jakim parametrem został uruchomiony program w tym przypadku jako tekst.

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12269
1

Najpierw sprawdź za pomocą ParamCount czy faktycznie uruchomiono program z parametrami – jeśli tak, to wymieniona funkcja zwróci liczbę większą od 0 i możesz pobrać wartości parametrów w postaci ciągów znaków za pomocą funkcji ParamStr. Pamiętaj, że parametry indeksowane są od 1, bo ten pod indeksem 0 zawiera ścieżkę aplikacji.

Przykład:

Kopiuj
var
  ParamIndex: Integer;
begin
  WriteLn('app path: "', ParamStr(0), '"');
  WriteLn();

  for ParamIndex := 1 to ParamCount() do
    WriteLn('param ', ParamIndex, ': "', ParamStr(ParamIndex), '"');
end.

Program uruchomiony w ten sposób:

Kopiuj
> project1.exe one two three "four five"

da na wyjściu to:

Kopiuj
app path: "C:\DOCUME~1\FURIOU~1\USTAWI~1\Temp\project1.exe"

param 1: "one"
param 2: "two"
param 3: "three"
param 4: "four five"
cerrato
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Poznań
  • Postów: 9019
1

Google albo forumowa szukajka nie gryzą :p

ParamStr - czy takie coś może być?

WL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1084
1
furious programming napisał(a):

Najpierw sprawdź za pomocą ParamCount czy faktycznie uruchomiono program z parametrami – jeśli tak, to wymieniona funkcja zwróci liczbę większą od 0 i możesz pobrać wartości parametrów w postaci ciągów znaków za pomocą funkcji ParamStr. Pamiętaj, że parametry indeksowane są od 1, bo ten pod indeksem 0 zawiera ścieżkę aplikacji.

Na to też jest rozwiązanie na GitHubie :D

https://github.com/VSoftTechnologies/VSoft.CommandLineParser

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12269
1

@wloochacz: na wszystko można znaleźć rozwiązania w postaci bibliotek firm trzecich, co nie oznacza, że nie warto znać absolutnych podstaw języka. :P

WL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1084
0
furious programming napisał(a):

@wloochacz: na wszystko można znaleźć rozwiązania w postaci bibliotek firm trzecich,

Niestety, nie można.

co nie oznacza, że nie warto znać absolutnych podstaw języka. :P

Prawda, ale nieprawda że to podstawy języka...
Poza tym to co podałem, ogarnia inne problemy z ParamStr.

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12269
0

Daj spokój, nieważne czego to są podstawy – to w dalszym ciagu podstawy i tak jak każde podstawy, wypada je znać.

NO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
1
Kopiuj
If ParamCount > 0 then

for i := 0 to ParamCount do
ShowMessage(ParamStr);

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.