Разбор имен столбцов из файла
Проблема разбора слов из текстового файла, содержащего канал в качестве разделителя
У меня есть файл, который имеет такие значения, как
============================================================ Id | Name | Age |D | Type |P | | | |O | |H | | | |B | |Number | ============================================================
Я должен разобрать эти строки и извлечь имена столбцов, которые являются Id,Name,Age,DOB,Type, PHNumber, в вектор.
Я не могу получить имена DOB и PHNumber.
Пожалуйста, подскажите, как мне разобрать эти строки.
Что я уже пробовал:
boost::regex col_check("^[A-Z].*"); while(getline(ifile,record)) { if(regex_match(record,col_check) ) { string tmp=record; istringstream line(tmp); while(getline(line,token,'|')) { rows.push_back(token); } } }
Richard MacCutchan
DOB и PHNumber распределены более чем по одной строке, поэтому вам нужно будет прочитать все строки заголовка и сначала объединить различные части.
[no name]
http://www.cplusplus.com/reference/cstring/strtok/
[no name]
Кто создал эту подверженную ошибкам файловую схему? Если вы тогда, возможно, узнаете о csv-файлах: https://en.wikipedia.org/wiki/Comma-separated_values во-первых, и адаптироваться соответственно.
Member 8813030
@pwasser: я еще не создал этот файл.Это файл журнала, который был сгенерирован где-то, и мне нужно разобрать этот файл для дальнейшей обработки. Так что с вашей стороны будет очень любезно помочь мне решить эту проблему, потому что изменить формат файла не в моих руках.
[no name]
Так в чем же проблема? Вы знаете схему, просто прочитайте три строки и извлеките данные по мере необходимости. Довольно прямолинейно. Я надеюсь, что это студенческая работа и ничего больше, потому что формат файла неизбежно приведет к другим проблемам, если он не будет решен.