home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / mslang / cp1 / edstrwin.c3 < prev    next >
Text File  |  1993-05-17  |  2KB  |  76 lines

  1. ===========================================================================
  2.  BBS: The Abacus * HST/DS * Potterville, MI
  3. Date: 05-15-93 (13:55)             Number: 162
  4. From: GAINES WRIGHT                Refer#: NONE
  5.   To: ZACH HANNA                    Recvd: NO  
  6. Subj: edstrwin() 3 of 3              Conf: (36) C Language
  7. ---------------------------------------------------------------------------
  8. //continued from last message
  9.       default:
  10.         {
  11.         if(c<0) { beep(); break; } //Filter out negative chars
  12.         beep_break=0;
  13.        switch(type) //You could put all kinds of stuff here to limit input;
  14.          {          //cases like TIME, DATE, etc.
  15.          case INT:
  16.            {
  17.            if(!isdigit(c)) beep_break++;
  18.            break;
  19.            }
  20.          case FLOAT:
  21.            {
  22.            if(!isdigit(c) && c!='.') beep_break++;
  23.            if(c=='.' && strchr(string,'.')) beep_break++;
  24.            break;
  25.            }
  26.           case ONLY:
  27.             {
  28.             if(!strchr(chars_allowed,c)) beep_break++;
  29.             break;
  30.             }
  31.           default: break;
  32.            }
  33.       if(beep_break) { beep(); break; } //What else?
  34.       if(insert)
  35.          {
  36.          //Signal operator and break at max_chars
  37.          if(str_len>=max_chars) { beep(); break; }
  38.          _setcursortype(_NOCURSOR);
  39.          //Shift portion of string from cursor right one char
  40.          memmove(&string[strpos+1],&string[strpos],str_len-strpos+1);
  41.          string[strpos]=c; //Insert char
  42.          strpos++;
  43.          }
  44.       else  //Overstrike mode
  45.         {
  46.         //Signal operator and break at max_chars
  47.         if(strpos>=max_chars) { beep(); break; }
  48.         //Prevent overstriking the '\0'
  49.         if(string[strpos]=='\0') string[strpos+1]='\0';
  50.         string[strpos]=c;
  51.         strpos++;
  52.         }
  53.       }
  54.     }
  55.   }
  56. }
  57. void main(void)
  58. {
  59. char buffer[81];
  60. do {
  61.    clrscr();
  62.    buffer[0]='\0';
  63.    if(edstrwin(buffer,10,5,5,9,STRING,"")) break;
  64.    gotoxy(10,15);
  65.    cputs(buffer);
  66.    }while(getch()!=27);
  67. }
  68. ---
  69.  ■ SLMR 2.1a ■ This tagline is umop apisdn
  70.  
  71. --- DCI/Chauncy 0.7b
  72.  * Origin: Bird Lake - (813)265-3256 (1:377/14.0)
  73. SEEN-BY: 1/211 11/2 4 13/13 101/1 108/89 109/25 110/69 114/5 123/19 124/1
  74. SEEN-BY: 153/752 154/40 77 157/2 159/100 125 575 950 203/23 209/209 261/1023
  75. SEEN-BY: 280/1 390/1 396/1 5 15 2270/1 2440/5 3603/20
  76.