Witam wszystkich,
Męczę się z tym tematem już ponad 3 dni. Potrzebuje waszej pomocy, problem wygląda następująco:
- Mam plik zapisany w ANSI który muszę odczytać linia po linii.
- Plik posiada w jednej linii sekwencję znaków 'SUB' i tu jest problem.
- Odczytanie pliku kończy się po napotkaniu odpowiedniego znacznika np '<END>', nie po EOF. Gdyż 'ctrl+z' jest traktowane jako EOF i tu jest problem.
Wydaję mi się, że próbowałem już wszystkiego: ftell(), fseek(), ungettc(). Dodam jeszcze że projekt jest wykonany w VS2012 - Character Set: UNICODE.
Oto jak wykonuje otwierania i przszukiwania pliku:
FILE *f_data;
_TCHAR buffer[32768];
char *file_ptr = 0;
bool eof = false;
f_data = _tfopen(path, L"rt");
file_ptr = f_data->_ptr;
//printf("%c", *file_ptr);
int cnt, line = 0;
while(true){ //do testow
if(_fgetts(buffer, 32768 - 1, f_data) == NULL) {
return 0;
}
/* ... opereacje na pliku */
cnt++;
}
.
.
.
Plik otwieram w 'text mode' ponieważ przekazywane są pliki zapisane w ANSI i przy 'rb' wyświetlają się krzaki. Jakieś propozycję jak rozwiązać ten problem??