Pobranie parametrów uruchomionego programu

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.

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:

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:

> project1.exe one two three "four five"

da na wyjściu to:

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"
1

Google albo forumowa szukajka nie gryzą :p

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

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

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

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.

0

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

1
If ParamCount > 0 then

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

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