home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-09-29 | 2.3 KB | 143 lines | [TEXT/KAHL] |
- #include <stdlib.h>
- #include <ctype.h>
- #include <math.h>
- #include <assert.h>
- #include <string.h>
-
- #include <Memory.h>
- #include <OSUtils.h>
-
- #include <new.h>
- #include <iostream.h>
-
- #include "streamutils.h"
-
- char skip_spaces( istream &destroom)
- {
- char result = 0;
- do {
- destroom.get( result);
- } while( isspace( result) && (result != '\n') && destroom.good());
-
- if( !destroom.good())
- {
- //
- // assume EOF, pseudo-add a newline at end
- //
- result = '\n';
- }
- return result;
- }
-
- void skip_till( istream &destroom, const char theLetter)
- {
- char letter;
- do
- {
- destroom.get( letter);
- } while( (letter != theLetter) && (destroom.good()));
- }
-
- void skip_till( istream &destroom, const char *theString)
- {
- typedef enum
- {
- searching,
- matching,
- stream_exhausted,
- found_it
- } search_state;
- search_state the_search_state = searching;
-
- while( the_search_state == searching)
- {
- //
- // to find the string, we first have to find the first character:
- //
- const char *current = &theString[ 0];
- skip_till( destroom, *current);
-
- if( destroom.good())
- {
- the_search_state = matching;
- while( the_search_state == matching)
- {
- current += 1;
- if( *current == 0)
- {
- the_search_state = found_it;
- } else {
- char letter;
- destroom.get( letter);
- if( destroom.good())
- {
- if( *current != letter)
- {
- the_search_state = searching;
- }
- } else {
- the_search_state = stream_exhausted;
- }
- }
- }
- } else {
- the_search_state = stream_exhausted;
- }
- }
- }
-
- void copy_till( istream &is, ostream &os, const char theLetter)
- {
- char letter;
-
- while( true)
- {
- is.get( letter);
- if( !is.good() || (letter == theLetter))
- {
- break;
- }
- os.put( letter);
- }
- if( is.good())
- {
- is.putback( letter);
- }
- }
-
- void skip_over_newline( istream &destroom)
- {
- char letter;
- do
- {
- destroom.get( letter);
- } while( (letter != '\n') && (destroom.good()));
- }
-
- void skip_till_digit( istream &destroom)
- {
- char letter;
- do
- {
- destroom.get( letter);
- } while( !isdigit( letter) && (destroom.good()));
- if( destroom.good())
- {
- destroom.putback( letter);
- }
- }
-
- void skip_till_numberstart( istream &destroom)
- {
- char letter;
- do
- {
- destroom.get( letter);
- } while( !is_possible_numberstart( letter) && (destroom.good()));
- if( destroom.good())
- {
- destroom.putback( letter);
- }
- }
-
-