int functDIMACpre( int *var, int *cla , char *file );
void functDIMAC( int *clauses, /*int *type,*/ int var, int cla, char *file , long poz );
void printVariables( int *clauses, int var );

void printVariables( int *clauses, int var )
{
    int i;
    int j;
    for ( i = 0; i < (var * 3); i += 3 )
    {
        printf( "%d. kloz : ", i / 3);
        for ( j = 0; j < 3; j++ )
        {
            printf( "%d ", clauses[ i + j ] );
        }
        printf( "\n");
    }
}

int functDIMACpre( int *var, int *cla , char *file)
{
      char ch;
      FILE *CNFFile;
      if( ( CNFFile = fopen( file , "r" ) ) == NULL )
      {
          printf( "failed to open file tfile" );
      }
      int canRead = fscanf( CNFFile, "%c", &ch );
      if ( canRead == -1 )
      {
           printf( "failed to open file sample.cnf" );
      }
      while ( ( ch!='p' ) && ( canRead != -1 ) )
      {
            canRead=fscanf(CNFFile,"%c", &ch);
      }
      
      char cnf[ 3 ];
      if ( ch == 'p' )
      {
           canRead = fscanf( CNFFile, "%s%d%d", cnf, var, cla );
           if ( cnf[ 0 ] != 'c' || cnf[ 1 ] != 'n' || cnf[ 2 ] != 'f' )
           {
                printf( "Not valid CNF File!" );
           }
           if ( ( canRead == -1 ) || ( &var < 0 ) || ( &cla < 0 ) )
           {
                printf( "Cannot read clauses!" );
           }
      }
      long poz = ftell( CNFFile );
      fclose( CNFFile );
      return (poz);
}

void functDIMAC( int *clauses, /*int *type,*/ int var, int cla, char *file , long poz )

{
      char ch;
      FILE *CNFFile;
      if( ( CNFFile = fopen( file , "r" ) ) == NULL )
      {
          printf( "failed to open file tfile" );
      }
      fseek( CNFFile, poz, SEEK_SET );
 
      int clause;
      int i = 0;
      int j = 0;
      while ( !feof( CNFFile ) )
      {
            fscanf(CNFFile,"%d", &clause);
            if ( clause != 0 )
            {
                 clauses[ i + j ] = clause;
                 j++;
            }
            
// functDIMAC-else.c

            else 
            {
                 j = 0;
                 i += 3;
            }
      }
}
