home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1989 / 05 / tricks / inkey.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-12-12  |  2.3 KB  |  65 lines

  1. /* ------------------------------------------------------ */
  2. /*                    INKEY.C                             */
  3. /*  Bereitstellung eines Inkey-Befehls für Batch-Dateien  */
  4. /*       (c) 1988 Klaus Pink-Patzer & TOOLBOX             */
  5. /* ------------------------------------------------------ */
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #include <process.h>
  9. #include <conio.h>
  10. #define FALSE 0
  11. #define TRUE  1
  12.  
  13. main(int argc, char *argv[])
  14. {
  15.   char parm_str[10], *parm_zeig;
  16.   int i, eingabe, parm, pruef=FALSE, zaehler;
  17.  
  18.   parm_zeig = &parm_str;
  19.   strcpy(parm_str,argv[argc-1]);
  20.   if (*parm_zeig != '$')
  21.   {
  22.     printf("\nSie haben keine oder falsche Parameter ");
  23.     printf("angegeben.!!!\n");
  24.     printf("\nKorrekte Syntax ist: \nINKEY [optionaler ");
  25.     printf("text] [$ zeichen] [parameter(CAPS)]\n ");
  26.     printf("zum einwandfreien Erkennen der Eingabewerte");
  27.     printf(" müssen \ndie Parameter immer in Großbuch");
  28.     printf("staben eingegeben werden.\nDer von ERRORLEVEL ");
  29.     printf("zurückgegebene Wert gibt an,\nwelche der ");
  30.     printf("Tasten gedrückt wurde. Beispiel :\nBitte ");
  31.     printf("Eingabe: $ABC \nWird jetzt 'C' oder 'c'");
  32.     printf("gedrückt, nimmt \nERRORLEVEL den Wert 3 an.");
  33.     printf("\n(c) 1988 Klaus Pink-Patzer & TOOLBOX\n");
  34.     exit(0);
  35.   }
  36.   for (i=1; i<argc-1; i++)  /* Ausgabe Kommandozeilentext */
  37.     printf("%s ", argv[i]);         /* auf dem Bildschirm */
  38.  
  39.   while (pruef != TRUE) {
  40.     while((kbhit()) == 0);
  41.                        /* Warten auf eine Tastatureingabe */
  42.     eingabe = toupper(getch());
  43.                     /* Auswerten der Tastatureingabe und  */
  44.                     /* umwandeln in einen Grossbuchstaben */
  45.     if (eingabe > 0x40 && eingabe < 0x5b)
  46.     {
  47.       zaehler = -1;
  48.       /* zaehler-1, damit $ Zeichen nicht mitgezählt wird */
  49.       while ((*parm_zeig) != '\0')
  50.       {                  /* alle parameter werden geprüft */
  51.         zaehler++;
  52.         parm = *parm_zeig;
  53.         if (parm == eingabe)
  54.         {                           /* Programmende, mit */
  55.            _exit(zaehler);        /* ERRORLEVEL Übergabe */
  56.         }
  57.         parm_zeig++;
  58.       }
  59.       parm_zeig -= zaehler+1;
  60.     }
  61.   }
  62. }
  63. /* ------------------------------------------------------ */
  64. /*                   Ende von INKEY.C                     */
  65.