Die Funktion ParsingMacroId( TMacroTag&, LPSTR )

BOOL TSteering::ParsingMacroId( TMacroTag& macro, LPSTR name )
{
  // Function tested
  // Last changes 950811
  while (1)
  {
    // strcmp() liefert 0 bei Übereinstimmung
    if (!strcmp( name, "SearchReflection" ))
    {
      // Id mit entsprechendem enum-Wert versorgen
      macro.Id = SearchReflection;
      // Name in Stringform merken
      strcpy( macro.Name, name );
      // while-"Schleife" verlassen
      break;
    }
    // s. o.
    if (!strcmp( name, "InquireHwb" ))
    {
      macro.Id = InquireHwb;
      strcpy( macro.Name, name );
      break;
    }
    if (!strcmp( name, "BatchMacro" ))
    {
      macro.Id = BatchMacro;
      strcpy( macro.Name, name );
      break;
    }
    if (!strcmp( name, "ScanJob" ))
    {
      macro.Id = ScanJob;
      strcpy( macro.Name, name );
      break;
    }
    if (!strcmp( name, "AreaScanJob" ))
    {
      macro.Id = AreaScanJob;
      strcpy( macro.Name, name );
      break;
    }
    if (!strcmp( name, "MiddleOfValley" ))
    {
      macro.Id = MiddleOfValley;
      strcpy( macro.Name, name );
      break;
    }
    if (!strcmp( name, "AzimutalJustify" ))
    {
      macro.Id = AzimutalJustify;
      strcpy( macro.Name, name );
      break;
    }
    if (!strcmp( name, "SetupTopography" ))
    {
      macro.Id = SetupTopography;
      strcpy( macro.Name, name );
      break;
    }
    if (!strcmp( name, "Test" ))
    {
      macro.Id = Test;
      strcpy( macro.Name, name );
      break;
    }
    // Makroname unbekannt
    macro.Id = (TMacroId) nMacroNumber;
    sprintf( macro.Name, "Macro%d", nMacroNumber );
    // Fehlermeldung (folgenlos)
    SetInfo( "No Match for this Macro-Name." );
    // Funktion verlassen
    return FALSE;
  } // while (1) ends here
  // Überprüfen, ob das Makro schon mal geladen wurde 
  for (int idx = 0; idx < nMacroNumber; idx++)
    if (macro.Id == aMacroList[idx].Id)
    {
      // gegebenenfalls Fehlermeldung (folgenlos)
      SetInfo( "Macro is already loaded." );
      return FALSE;
    }
  return TRUE;
}


Anmerkungen:

Die Funktion ParsingMacroId() testet zwar, ob das Makro unbekannt oder schon geladen ist, und gibt dementsprechende Werte zurück, leider werden diese von der aufrufenden Funktion nicht beachtet. Insbesondere werden die Befehlslisten bereits vorhandener Makros durch die neu eingelesenen überschrieben. Eine eventuelle Anforderungsspezifikation müsste hier eine Entscheidung für die eine oder die andere Variante treffen.


Zurück zu LoadMacro()

Startseite


Kay Schützler
Last modified: Tue Sep 21 14:10:21 MET DST 1999