Приветствую, Анонимус, вы писали:
> есть след тесктовый файл > Цитата > bookmark3,value1 > bookmark1,value2 > bookmark2,value3 > как его зогнать в std::map ? > т.е получить key = bookmark3 value = value1 ....
Парсер пишется на коленке за час максимум. Ориентироваться по запятой и переводу строки.
Здравствуйте, Аноним, Вы писали:
А>добрый день А>есть след тесктовый файл А>Цитата А>bookmark3,value1 А>bookmark1,value2 А>bookmark2,value3
А>как его зогнать в std::map ? А>т.е получить key = bookmark3 value = value1 ....
Типа этого:
typedef map< string, string > Bookmarks;
Bookmarks bookmarks;
ifstream file( "bookmarks.txt" );
while( file )
{
string line;
getline( file, line );
size_t i = line.find( ',' );
if( string::npos != i )
{
string key = line.substr( 0, i );
string value = line.substr( i + 1 );
bookmarks.insert( make_pair( key, value ) );
}
}
Приветствую, jazzer, вы писали:
j> S>Парсер пишется на коленке за час максимум. Ориентироваться по запятой и переводу строки. j> Что там писать час...
Оптимизировать (ц)
Здравствуйте, Sharpeye, Вы писали:
S>Здравствуйте, Аноним, Вы писали:
А>>добрый день А>>есть след тесктовый файл А>>Цитата А>>bookmark3,value1 А>>bookmark1,value2 А>>bookmark2,value3
А>>как его зогнать в std::map ? А>>т.е получить key = bookmark3 value = value1 ....
S>Типа этого:
S>
Здравствуйте, Sheridan, Вы писали:
j>> S>Парсер пишется на коленке за час максимум. Ориентироваться по запятой и переводу строки. j>> Что там писать час... S>Оптимизировать (ц)
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Аноним, Вы писали:
А>а если данные такие: А>test1,test2 А>test3test4, А>test5,test6
1) не ясно почему "test3test4,", а не "test3". Имелось в виду что-то конкретное, или это чисто так записалось?
2) IMHO, это должно обозначать, что ключу "test3test4" соответствует пустая строка Или такое соответствие должно записываться как-то иначе?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
А где тут обработка ошибок? Например строк, где запятой вовсе нет?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Centaur, Вы писали:
C>В таком варианте рискуем получить split по пробелам, а не только по строкам.
Да, конечно. Я просто привел пример, который на самом деле простой. В достаточно хорошо продуманной стандартной библиотеке замена признака окончания ввода не должна значительно увеличивать объем кода; как, впрочем, и замена set на map. Но имеем, что имеем.
Здравствуйте, igna, Вы писали: I>Обработка ошибок такая же как в исходном варианте.
В исходном варианте строчки без запятых вроде как пропускаются...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, igna, Вы писали:
I>В моем тоже.
Зато в твоём нельзя записать пустую строку, в качестве значения, а в исходном было можно...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском