Народ, вопрос может на уровне идиотизма, но как это сделать с VC - не знаю, в Перле проще :)
Имеется текстовый файл, с данными разделенными ";"
каждая строка - одна запись типа
c:\windows\logo.bmp;10.10.2002
нужно построчно пройтись по файлу и забрать эти данные в переменные...
желательно в разные :)
никто не подскажет?
[C++] VC++ Построковое чтение из файла и split14.10.02 02:45 Автор: ggg <ggg> Статус: Elderman
> Народ, вопрос может на уровне идиотизма, но как это сделать > с VC - не знаю, в Перле проще :) > Имеется текстовый файл, с данными разделенными ";" > каждая строка - одна запись типа > > c:\windows\logo.bmp;10.10.2002 > > нужно построчно пройтись по файлу и забрать эти данные в > переменные... > желательно в разные :) > никто не подскажет?
istream::getline() или get() (не помню точно но по мойму getline, MSDN-а рядом нет) имеет третий опциональный параметр (char *buf, size_t bufsize, int delim = '\n')
В общем file.getline(buf, sizeof(buf), ';')
А путь даже в самих виндах чаще всего размером MAX_PATH ограничивается. Это 260 байт
Не согласен21.10.02 17:11 Автор: ggg <ggg> Статус: Elderman
---
Взято из VC++ 6.0 STL-а, так что названия переменных интуитивно понятные :-). А string как известно сам заботится о размещении и увеличении строки.
Короче можно и так:
using namespace std;
string s;
ifstream is("filename.ext");
getline(is, s, ';');
---
> а если хочешь поспорить у кого в этом случае универсальнее, > то вот пример: > c:\windows\logo.bmp > c:\windows\logo.bmp;10.10.2002
Насколько я вообще понимаю в разборе форматированных данных, формат не меняется во всем файле. Иначе нужно вообще брать flex с bison-ом и писать парсер :-)))
А вот понятность и сопровождаемость моего варинта выше.
ЗЫ: Кстати, в данном случае в плане эффективности flex - идеальное решение. Быстрее вряд ли можно написать.