FILE *stream;
char ch[1024];
stream=fopen(_T(fName),"r");
fgets(ch,1000,stream);
CString st;
st=(CString)ch;
рАБОТА с пРОСТЫМИ тЕКСТОВЫМИ фАЙЛАМИ
Кто подскажет какие-нибудь функции для того чтобы из файла вытаскивать строки и дробить их на слова,
файл простой *ТХТ
Заранее спасибо!
Цитата:
Originally posted by Мартовский Кот
:) Привет всем!
Кто подскажет какие-нибудь функции для того чтобы из файла вытаскивать строки и дробить их на слова,
файл простой *ТХТ
Заранее спасибо!
:) Привет всем!
Кто подскажет какие-нибудь функции для того чтобы из файла вытаскивать строки и дробить их на слова,
файл простой *ТХТ
Заранее спасибо!
чтобы считать строку из файла - я пользуюсь следующим:
Код:
ну а раздробить строку на слова, надеюсь, проблем не будет? :)
Код:
HANDLE hFile;
DWORD dwBytesToRead;
DWORD dwBytesReaded=0;
char *buffer;
hFile=CreateFile(filename, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, NULL, NULL);
if (hFile==INVALID_HANDLE_VALUE)
return NULL;
dwBytesToRead=GetFileSize(hFile, NULL);
buffer=new char[dwBytesToRead+1];
buffer[dwBytesToRead]=0;
ReadFile(hFile, (LPVOID)buffer, dwBytesToRead, &dwBytesReaded, NULL);
CloseHandle(hFile);
char seps[] = " ,\t\n";
char *token;
token = strtok(buffer, seps );
while( token != NULL )
{
//делай со словом что надо...
token = strtok( NULL, seps );
}
delete []buffer;
DWORD dwBytesToRead;
DWORD dwBytesReaded=0;
char *buffer;
hFile=CreateFile(filename, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, NULL, NULL);
if (hFile==INVALID_HANDLE_VALUE)
return NULL;
dwBytesToRead=GetFileSize(hFile, NULL);
buffer=new char[dwBytesToRead+1];
buffer[dwBytesToRead]=0;
ReadFile(hFile, (LPVOID)buffer, dwBytesToRead, &dwBytesReaded, NULL);
CloseHandle(hFile);
char seps[] = " ,\t\n";
char *token;
token = strtok(buffer, seps );
while( token != NULL )
{
//делай со словом что надо...
token = strtok( NULL, seps );
}
delete []buffer;
Цитата:
Originally posted by Hearse
А помоему так красивее
А помоему так красивее
Код:
HANDLE hFile;
DWORD dwBytesToRead;
DWORD dwBytesReaded=0;
char *buffer;
hFile=CreateFile(filename, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, NULL, NULL);
if (hFile==INVALID_HANDLE_VALUE)
return NULL;
dwBytesToRead=GetFileSize(hFile, NULL);
buffer=new char[dwBytesToRead+1];
buffer[dwBytesToRead]=0;
ReadFile(hFile, (LPVOID)buffer, dwBytesToRead, &dwBytesReaded, NULL);
CloseHandle(hFile);
char seps[] = " ,\t\n";
char *token;
token = strtok(buffer, seps );
while( token != NULL )
{
//делай со словом что надо...
token = strtok( NULL, seps );
}
delete []buffer;
DWORD dwBytesToRead;
DWORD dwBytesReaded=0;
char *buffer;
hFile=CreateFile(filename, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, NULL, NULL);
if (hFile==INVALID_HANDLE_VALUE)
return NULL;
dwBytesToRead=GetFileSize(hFile, NULL);
buffer=new char[dwBytesToRead+1];
buffer[dwBytesToRead]=0;
ReadFile(hFile, (LPVOID)buffer, dwBytesToRead, &dwBytesReaded, NULL);
CloseHandle(hFile);
char seps[] = " ,\t\n";
char *token;
token = strtok(buffer, seps );
while( token != NULL )
{
//делай со словом что надо...
token = strtok( NULL, seps );
}
delete []buffer;
красиво, ничего не скажешь. мой код удобен для смешанных файлов - когда, например, данные записаны в одной строке, а потом строка текстовая неопределенной длины, но меньше 1000 символов :), потом опять данные, потом опять текст :)
З.Ы. Это я так, к слову...
Цитата:
Originally posted by Hearse
Да, но fgets читает до \n, и надо еще и цикл делать, к тому же тема "рАБОТА с пРОСТЫМИ тЕКСТОВЫМИ фАЙЛАМИ"
З.Ы. Это я так, к слову...
Да, но fgets читает до \n, и надо еще и цикл делать, к тому же тема "рАБОТА с пРОСТЫМИ тЕКСТОВЫМИ фАЙЛАМИ"
З.Ы. Это я так, к слову...
согласен :)
еще как вариант использовать ifstream/ofstream...