Я пытаюсь проанализировать таблицу в виде текстового файла, используя ifstream, и оценивать / манипулировать каждой записью.Тем не менее, я не могу понять, как подойти к этому из-за упущений конкретных предметов.Рассмотрим следующую таблицу:
NEW VER ID NAME
1 2a 4 "ITEM ONE" (2001)
1 7 "2 ITEM" (2002) {OCT}
1.1 10 "SOME ITEM 3" (2003)
1 12 "DIFFERENT ITEM 4" (2004)
1 a4 16 "ITEM5" (2005) {DEC}
Как видите, иногда в столбце «NEW» ничего нет.То, что я хочу сделать, это записать идентификатор, имя, год (в скобках) и заметить, есть ли фигурные скобки или нет.
Когда я начал это делать, я искал разделение"функция, но я понял, что это будет немного сложнее из-за вышеупомянутых пропущенных элементов и разделения названий.
Единственное, о чем я могу думать, это читать каждую строку слово за словом, отслеживаяпоследний номер, который я видел.Как только я нажму кавычку, запомните, что последнее число, которое я видел, было идентификатором (если я использовал что-то вроде разделения, положение массива прямо перед кавычкой), а затем сохраняйте запись всего до следующей цитаты (заголовка)Затем, наконец, начните искать скобки и скобки для другой информации.Однако, это кажется действительно примитивным, и я ищу лучший способ сделать это.
Я делаю это, чтобы отточить свои навыки C ++ и работать с более крупными существующими наборами данных, поэтому я хотел бы использоватьC ++, если это возможно, но если другой язык (я смотрю на Perl или Python) делает это легко, я мог бы просто научиться взаимодействовать с другим языком с C ++.Сейчас я пытаюсь просто отсеивать данные, которые в конечном итоге станут объектами в C ++, поэтому у меня все еще есть шансы улучшить свои навыки в C ++.
РЕДАКТИРОВАТЬ: я также понимаю, что это можно завершить, используятолько регулярное выражение, но я хотел бы попробовать использовать различные методы манипулирования файлами / строками, если это возможно.