Console parameters/de
From Lazarus wiki
Jump to navigationJump to search
│
Deutsch (de) │
Zurück zur Konsolenseite.
Auswertung der an der Konsole übergebenen Parameter
Dieser Artikel handelt von der Parameterauswertung bei Konsole und Terminal. Das Tutorial ist für Projekte gedacht, die unter Lazarus als Programm erstellt wurden.
Zu besseren Veranschaulichung ist das Tutorial in drei Teile aufgeteilt. Die Hilfedatei, die Parameterauswertung, das Hauptprogramm.
Hilfedatei
Die Hilfedatei:
unit uHilfe;
{$mode objfpc}{$H+}
{$IMPLICITEXCEPTIONS OFF}
interface
procedure subHilfe;
implementation
procedure subHilfe;
begin
// hier steht die Hilfe für die Konsolenausgabe
WriteLn('...');
end;
end.
Parameterauswertung
Beispiel für die Parameterauswertung:
unit uParameter;
{$mode objfpc}{$H+}
{$IMPLICITEXCEPTIONS OFF}
interface
uses
SysUtils;
// hier können noch mehr Funktionen und Prozeduren deklariert werden
function funHatParameter: boolean;
function funHatHilfeParameter: boolean;
implementation
function funHatParameter: boolean;
begin
Result := False;
// Prüft, ob es Parameter jenseits
// von ParamStr(0) gibt
if ParamCount > 0 then
Result := True;
end;
function funHatHilfeParameter: boolean;
var
intI: integer;
begin
// Prüft alle übergebenen Parameter, ob einer von Ihnen die Hilfe aufruft
// ParamStr(0) enthält immer Pfad und Dateiname
for intI := 1 to ParamCount do
begin
// Wandelt den Parameter in Kleinbuchstaben um
case LowerCase(ParamStr(intI)) of
'-?', '--?', '/?':
Result := True;
'-h', '--h', '/h':
Result := True;
'-help', '--help', '/help':
Result := True;
'-hilfe', '--hilfe', '/hilfe':
Result := True;
else
Result := False;
end;
end;
end;
end.
Hauptprogramm
Beispiel für das Hauptprogramm:
...
uses
uParameter, uHilfe, ...;
...
// Prüft, ob das Programm mit Parametern gestartet wurde
if uParameter.funHatParameter = True then
begin
// Prüft, ob an der Konsole / Terminal die Hilfe angefordert wurde
if uParameter.funHatHilfeParameter = True then
begin
// Gibt die Hilfe aus
uHilfe.subHilfe;
// Beendet das Programm mit dem Rückgabewert 0
// d. h. es sind keine Fehler aufgetreten
Halt(0);
end;
// unter Umständen weitere Prüfungen auf Parameter
...
else
// Was passiert, wenn das Programm ohne Parameter gestartet wurde
end;
...