#include #include #include //#define DEBUG int main(int argc, char *argv[]) { char *buffer=NULL; double size=0; FILE *fd; size_t result; char *lindent=NULL; //left indent char *rindent=NULL; //right indent int i=0, st=0, stevec=0, j=1; char *max; if ((fd=fopen(argv[1], "r")) == NULL) { printf("Ne morem odpreti datoteke za branje"); exit(1); } // dobimo velikost datoteke fseek(fd, 0, SEEK_END); size = ftell(fd); rewind(fd); // rezerviramo dovolj pomnilnika buffer = (char *) malloc(sizeof(char)*size); if (buffer == NULL) { exit(1); } // preberemo datoteko v pomnilnik result = fread(buffer, 1, size, fd); fclose(fd); //********************************** // operiranje nad pomnilnikom //********************************** // postavimo robni pogoj if ((max = strstr(buffer,"") )== NULL) { exit(1); } // postavimo robni pogoj lindent=strstr(buffer, "') + 1; rindent=strchr(lindent,'<'); st = rindent-lindent; #ifdef DEBUG printf("%d",st); #endif // izpisemo ravno znake med krajisci for (i=0; i')) stevec--; else if ((*(lindent+j) == '<') && (*(lindent+j+1) == '/')) { stevec--; #ifdef DEBUG printf("(st:%d)",stevec); #endif // ko smo nasli tag break, se pomaknemo do konca tega taga in prekinemo izvajanje lindent=strchr((lindent+j), '>'); break; } } } free(buffer); return 0; }