Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

рАБОТА с пРОСТЫМИ тЕКСТОВЫМИ фАЙЛАМИ

5.8K
21 января 2004 года
Мартовский Кот
3 / / 21.01.2004
:) Привет всем!
Кто подскажет какие-нибудь функции для того чтобы из файла вытаскивать строки и дробить их на слова,
файл простой *ТХТ
Заранее спасибо!
319
21 января 2004 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by Мартовский Кот
:) Привет всем!
Кто подскажет какие-нибудь функции для того чтобы из файла вытаскивать строки и дробить их на слова,
файл простой *ТХТ
Заранее спасибо!


чтобы считать строку из файла - я пользуюсь следующим:

 
Код:
FILE *stream;
    char ch[1024];
    stream=fopen(_T(fName),"r");
    fgets(ch,1000,stream);
      CString st;
      st=(CString)ch;


ну а раздробить строку на слова, надеюсь, проблем не будет? :)
2.6K
21 января 2004 года
Hearse
89 / / 19.01.2004
А помоему так красивее
Код:
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;
319
22 января 2004 года
xelos
577 / / 27.02.2003
Цитата:
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;



красиво, ничего не скажешь. мой код удобен для смешанных файлов - когда, например, данные записаны в одной строке, а потом строка текстовая неопределенной длины, но меньше 1000 символов :), потом опять данные, потом опять текст :)

2.6K
22 января 2004 года
Hearse
89 / / 19.01.2004
Да, но fgets читает до \n, и надо еще и цикл делать, к тому же тема "рАБОТА с пРОСТЫМИ тЕКСТОВЫМИ фАЙЛАМИ"

З.Ы. Это я так, к слову...
319
22 января 2004 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by Hearse
Да, но fgets читает до \n, и надо еще и цикл делать, к тому же тема "рАБОТА с пРОСТЫМИ тЕКСТОВЫМИ фАЙЛАМИ"

З.Ы. Это я так, к слову...


согласен :)

5.2K
11 февраля 2004 года
Dilon
19 / / 04.01.2004
еще как вариант использовать ifstream/ofstream...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог