home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PCBOARD / PCBM102.ZIP / SOURCES.ZIP / MYSTRING.C < prev    next >
C/C++ Source or Header  |  1994-01-22  |  4KB  |  137 lines

  1. /*
  2.  ┌────────────────────────────────────────────────────────────────────────┐
  3.  │                                                                        │
  4.  │    ▒▒▒▒▒▒▄ ▒▒▒▒▒▒▄ ▒▒▒▒▒▒▒▄ ▒▒▒▒▒▒▒▒▄ ▒▒▒▒▒▒▄ ▒▒▄      ▒▒▄ ▒▒▒▒▒▒▄     │
  5.  │    ▒▒█▀▒▒█ ▒▒█▀▀▀▀  ▒▒█▀▒▒█ ▒▒█▒▒█▒▒█ ▒▒█▀▒▒█  ▒▒█    ▒▒█▀ ▒▒█▀▀▀▀     │
  6.  │    ▒▒▒▒▒▒█ ▒▒█      ▒▒▒▒▒█▀ ▒▒█▒▒█▒▒█ ▒▒█ ▒▒█   ▒▒█  ▒▒█▀  ▒▒▒▒▄       │
  7.  │    ▒▒█▀▀▀▀ ▒▒█      ▒▒█▀▒▒█ ▒▒█ ▀▀▒▒█ ▒▒█ ▒▒█    ▒▒█▒▒█▀   ▒▒█▀▀       │
  8.  │    ▒▒█     ▒▒▒▒▒▒▄ ▒▒▒▒▒▒▒█ ▒▒█   ▒▒█ ▒▒▒▒▒▒█     ▒▒▒█▀    ▒▒▒▒▒▒▄     │
  9.  │     ▀▀      ▀▀▀▀▀▀  ▀▀▀▀▀▀▀  ▀▀    ▀▀  ▀▀▀▀▀▀      ▀▀▀      ▀▀▀▀▀▀     │
  10.  │                                                                        │
  11.  │      Module   :    Mystring.c                                          │
  12.  │                                                                        │
  13.  │      Fonction :    Diverses fonction de traitement de chaines          │
  14.  │                                                                        │
  15.  └────────────────────────────────────────────────────────────────────────┘
  16. */
  17.  
  18. #include <stdio.h>
  19. #include <string.h>
  20. #include <time.h>
  21. #ifdef __TURBOC__
  22. #include <ctype.h>
  23. #endif
  24. #include "mystring.h"
  25.  
  26. /*-----------------------------------------------------------------------*/
  27. /*
  28.  * STRLEFT :   aligne une chaine, en supprimant les espaces à gauche.
  29.  *
  30.  *             Retourne l'adresse de la chaine.
  31.  * RC 1990
  32.  */
  33.  
  34. char *strleft(char *str )
  35. {
  36.     char *p1,*p2;
  37.  
  38.     p1 = str ;
  39.     p2 = str ;
  40.  
  41.     while( *p1 && isspace( *p1 )  )
  42.          p1++;
  43.  
  44.     while(*p1)
  45.         *p2++ = *p1++ ;
  46.  
  47.     *p2 = 0 ;
  48.     return( str );
  49. }
  50. /*----------------------------------------------------------------------*/
  51. /*
  52.  * _CLEAN : nettoie les \r ou \n restant a droite d'une chaine.
  53.  *
  54.  *
  55.  */
  56. void
  57. _Clean(char *name)
  58. {
  59.     while(*name)
  60.     {
  61.         if(*name == 0x0D || *name == 0x0A )
  62.          *name = 0 ;
  63.         name++;
  64.     }
  65. }
  66.  
  67. /*
  68.  * STRCLEAN : Elimine les espaces à gauche et à droite d'une chaine.
  69.  *
  70.  *            Retourne un pointeur sur la chaine.
  71.  */
  72.  
  73. unsigned char *strclean(unsigned char *Buff)
  74. {
  75.    unsigned char *ptr=Buff;
  76.                                                  /* vire spaces a gauche*/
  77.    while(*Buff== 32) memmove(Buff,Buff+1,strlen(Buff));
  78.    while(*ptr)ptr++;                            /* va au bout de la chaine */
  79.    ptr--;                                       /* recule sous le zero     */
  80.    while(*ptr==32)                              /* vire espaces a droite   */
  81.       {
  82.         *ptr=0;
  83.         ptr--;
  84.       }
  85.  
  86.   return( Buff) ;
  87. }
  88.  
  89. /*---------------------------------------------------------------------------*/
  90. /*  Extraction du nom de fichier seul sans le chemin sous Dos                */
  91. /*---------------------------------------------------------------------------*/
  92.  
  93. void filtre_filename( unsigned char *cible,unsigned char *source )
  94. {
  95.    int r;
  96.  
  97.    r=strlen(source);
  98.    while (r>=0)
  99.    {
  100.       if((source[r]==92)||(source[r]==58))
  101.       {
  102.            strcpy(cible,&source[r+1]);
  103.            strlwr(cible);
  104.            return;
  105.       }
  106.       r--;
  107.    }
  108.    strcpy(cible,source);
  109.    strlwr(cible);
  110. }
  111. /*---------------------------------------------------------------------------
  112.  * CHAINE2INT : Lit la chaine de la forme "25 44 02 3 200" et met cela en
  113.  *              octet dans une autre chaine
  114.  */
  115.  
  116. void Chaine2int (char *ptr, char *tablo)
  117. {
  118.   int i;
  119.   char *ptr2;
  120.  
  121.            memset (tablo, 0, 100);
  122.            i=0;
  123.            while (*ptr)         /* tout ca, c'est grosse bidouille pour */
  124.            {                    /* convertir des nombres ASCII en int */
  125.                if (isdigit(*ptr)) {
  126.                   ptr2 = strchr (ptr, ' ');
  127.                   if (ptr2 == NULL)    /* si pas trouvé car dernier numéro */
  128.                      ptr2 = strchr (ptr, 0);
  129.                   *ptr2 = 0;
  130.                   tablo[i++] = atoi (ptr);
  131.                   ptr = ++ptr2;
  132.                } else {
  133.                   ++ptr;
  134.                } /* fin if */
  135.            } /* fin while */
  136. }
  137.