home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / extra18 / makekey / def.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-01-20  |  4.9 KB  |  120 lines

  1. /* ------------------------------------------------- */
  2. /*                       DEF.C                       */
  3. /* ------------------------------------------------- */
  4. #include "def.h"
  5.  
  6. char  Leer[55] = "_______________________________" +
  7.                  "_______________________";
  8.  
  9. /* ------------------------------------------------- */
  10. /*  Modulname   : toright                            */
  11. /*  Aufgabe     : Rechtsbündigmachen eines Strings   */
  12. /*                bei angegebener Länge              */
  13. /* ------------------------------------------------- */
  14. /*  Parameter                                        */
  15. /*   Eingabe   : *string : Adresse des zu konver-    */
  16. /*                         tierenden Strings         */
  17. /*               laenge  : Gewünschte Länge des      */
  18. /*                         Strings                   */
  19. /*   Ausgabe   : *string : Adresse des konvertierten */
  20. /*                         Strings                   */
  21. /* ------------------------------------------------- */
  22. void toright(char *string, int laenge)
  23. {
  24.   char help[55];
  25.                 /* Leerzeichen linksbündig einfügen: */
  26.   strcpy(help, Leer + ((strlen(Leer) -
  27.                (laenge - strlen(string)))));
  28.                /* Adreßrechnung, Teilstring kopieren */
  29.    strcat(help, string);          /* String anhängen */
  30.    strcpy(string, help);    /* String zurückkopieren */
  31. } /* toright */
  32.  
  33. /* ------------------------------------------------- */
  34. /*  Modulname   : mkstring                           */
  35. /*    Aufgabe   : Erstellen eines Strings, der den   */
  36. /*                Filenamen und die Attribute des    */
  37. /*                übergebenen File-Control-Blockes   */
  38. /*                enthält                            */
  39. /* ------------------------------------------------- */
  40. /*  Parameter                                        */
  41. /*   Ein/Ausgabe : *filedes : Adresse des zu erstel- */
  42. /*                            lenden Strings         */
  43. /*    Eingabe     : datei   : DOS: Zu verarbeitender */
  44. /*                            File-Control-Block     */
  45. /* ------------------------------------------------- */
  46.  
  47. void mkstring(char *filedes, struct ffblk datei)
  48. {
  49.   char   helpstr[10];            /* Hilfsstring      */
  50.   long   help;                   /* Zwischenspeicher */
  51.  
  52.   strcpy(filedes, datei.ff_name);
  53.                            /* File-Name nach filedes */
  54.   strcat(filedes, Leer+(strlen(Leer)-
  55.                   (13-strlen(filedes))));
  56.                             /* Leerzeichen auffüllen */
  57.  
  58.   ltoa(datei.ff_fsize, helpstr, 10);
  59.                            /* File-Size nach helpstr */
  60.   toright(helpstr, 8);        /* rechtsbündig machen */
  61.   strcat(filedes, helpstr);/* File-Size nach filedes */
  62.   strcat(filedes, SPACE);
  63.  
  64.                                 /* Datum aufbereiten */
  65.   help = datei.ff_fdate;
  66.   help &= 0x1F;                 /* Bits 0..4 => Tag  */
  67.   strcpy(helpstr, "0");
  68.           /* Tag in String (ggf. mit führender Null) */
  69.           /* umwandeln                               */
  70.   help < 10 ? (ltoa(help, helpstr+1, 10))
  71.             : (ltoa(help, helpstr, 10));
  72.   strcat(filedes, helpstr);
  73.   strcat(filedes, ".");
  74.   help = datei.ff_fdate;       /* Bits 5..8 => Monat */
  75.   help >>= 5;
  76.   help &= 0x0F;                /* Monat ausblenden   */
  77.   strcpy(helpstr, "0");
  78.         /* Monat in String (ggf. mit führender Null) */
  79.         /* umwandeln                                 */
  80.   help < 10 ? (ltoa(help, helpstr+1, 10))
  81.             : (ltoa(help, helpstr, 10));
  82.   strcat(filedes, helpstr);
  83.   strcat(filedes, ".");
  84.   help = datei.ff_fdate;
  85.                     /* Bits 9..15 => Jahre seit 1980 */
  86.   help >>= 9;
  87.   help &= 0x7F;                   /* Jahr ausblenden */
  88.   help += 1980;                /* Jahr = Jahr + 1980 */
  89.   ltoa(help, helpstr, 10);
  90.                          /* Jahr in String umwandeln */
  91.   strcat(filedes, helpstr);
  92.   strcat(filedes, SPACE);
  93.  
  94.                                  /* Zeit aufbereiten */
  95.    help = datei.ff_ftime;
  96.                            /* Bits 11..15 => Stunden */
  97.    help >>= 11;
  98.    help &= 0x1F;                /* Stunde ausblenden */
  99.    strcpy(helpstr, "0");
  100.        /* Stunde in String (ggf. mit führender Null) */
  101.        /* umwandeln                                  */
  102.    help < 10 ? (ltoa(help, helpstr+1, 10))
  103.              : (ltoa(help, helpstr, 10));
  104.    strcat(filedes, helpstr);
  105.    strcat(filedes, ":");
  106.    help = datei.ff_ftime;   /* Bits 5..10 => Minuten */
  107.    help >>= 5;
  108.    help &= 0x3F;               /* Minuten ausblenden */
  109.    strcpy(helpstr, "0");
  110.       /* Minuten in String (ggf. mit führender Null) */
  111.       /* umwandeln                                   */
  112.    help < 10 ? (ltoa(help, helpstr+1, 10))
  113.              : (ltoa(help, helpstr, 10));
  114.    strcat(filedes, helpstr);
  115. } /* mkstring */
  116. /* ------------------------------------------------- */
  117. /*                 Ende von DEF.C                    */
  118.  
  119.  
  120.