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