(ANSI C) Parser Programmieren in C für DOS ?



  • Hi ich schreibe ein parser für dos der soll ein text File "Parsen"

    nun habe ich ein paar problemen beim "parsen"

    int main(void)
    {
    
       FILE *file;
       char buffer[200];
    
       file = fopen("test.txt","r");
    
       if(file == NULL)
       {
          printf("Fehler beim lesen der datei");
          exit(1);
       }
    
       fread(buffer,sizeof(buffer),1,file);
    
       //  
      while(buffer != NULL)
      {
        if(buffer[0] == '[')
        {
             ++buffer;
            expression();   
        }
      } 
    
      fclose(file);
    getch();
      return 0;
    }
    

    JETZT Wie kann ich lesen der string der zwischen '[' test ']' ligt B.s test lesen ?

    danke...

    cu



  • Sieht mir alles nach ANSI-C aus ... dort wird der Thread auch hinverschoben.

    Du liest übrigens in deinen Puffer mit 200 Zeichen nur ein einzelnes Zeichen aus der Datei. Falls das erste tatsächlihc '[' ist, musst du die restlichen 199 auch noch auslesen!

    Dann kannst du mit:

    for ( int i = 2 ; buffer [i] != 0 ; ++i )
    {
        parse ( buffer [i] );    
    }
    

    Dazu müssen aber zuerst alle Zeichen in buffer auf den Ascii-Code 0 gesetzt werden. Und der _komplette_ String muss in buffer eingelesen werden.

    MfG SideWinder


Anmelden zum Antworten