"Parameter" auslesen...



  • Hi,

    ich bin's wieder..
    um Parameter Aufrufe zu verarbeiten benutze ich folgende Zeilen...

    __fastcall TFormular::TFormular(TComponent* Owner): TForm(Owner)
    {
       for(int i = 0; i <= ParamCount(); i++)
       {
          if(LowerCase(ParamStr(i)) == "beep") Beep(10000,1500);
          if(LowerCase(ParamStr(i)) == "msg")  ShowMessage("Hallo Welt :-)");
          if(LowerCase(ParamStr(i)) == "hide") Application->ShowMainForm = false;
          if(LowerCase(ParamStr(i)) == "min")  Formular->WindowState = wsMinimized;
       }
    }
    

    Mein Problem ist das ich mit Parametern Dateien speichern will ähnlich wie unter Dos:

    dir /s . > C:\Liste.txt

    Ich benutze wie man oben sieht NUR vorgegebene Parameter, wie kann ich aber z.B. einen Dateinamen extrahieren den ich gar nicht kenne ??

    Ich hab da was mit GetCommandLine ( ) unter Visual C++ in Erinnerung..aber weiss nicht wie ich den anwenden soll..

    Oren

    Edit:
    Bitte die Code-Tags benutzen. Danke!

    [ Dieser Beitrag wurde am 02.07.2003 um 16:23 Uhr von Jansen editiert. ]



  • vielleicht so:

    dir /s > c:\liste.txt

    __fastcall TFormular::TFormular(TComponent* Owner): TForm(Owner)
    {
      AnsiString sFileName;
    
      for(int i = 0; i <= ParamCount(); i++)
      {
         if (LowerCase(ParamStr(i)) == ">") sFileName = ParamStr(i+1));
      }
    }
    

    oder Du legst fest, dass der vorletze und/oder letzte ParamStr der FileName ist:

    __fastcall TFormular::TFormular(TComponent* Owner): TForm(Owner)
    {
      int iParamAnz = ParamCount();
    
      AnsiString sFileName = ParamStr(iParamAnz-1);
    }
    

    [ Dieser Beitrag wurde am 02.07.2003 um 11:22 Uhr von F98 editiert. ]



  • The GetCommandLine function returns a pointer to the command-line string for the current process. 
    
    LPTSTR GetCommandLine(VOID)
    
    Parameters
    
    This function has no parameters. 
    
    Return Values
    
    The return value is a pointer to the command-line string for the current process. 
    
    Remarks
    
    Non-Unicode console processes written in C can use the argc and argv arguments to access the command-line arguments. The parameters of the command-line string, excluding the program name, are also available to such non-Unicode applications as a parameter of the WinMain function. The reason for the Unicode exclusion from these options is that WinMain, argc, and argv
     use the LPSTR data type for parameters, not the LPTSTR datatype. 
    
    See Also
    
    CreateProcess, WinMain
    

    ist doch verständlich nicht ...
    kannst es aber auch im falle einer consolen anwendung über argc argv machn



  • Thank you very much 🙂

    Vielen vielen Dank 🙂

    Oren


Anmelden zum Antworten