Чтение определенных элементов из файла CSV в C++

Я пытаюсь создать справочную программу, которая, я думаю, будет использовать электронную таблицу Excel для хранения информации только для чтения. Я хочу, чтобы пользователь мог выбрать тему из списка параметров и получить информацию в соответствующей ячейке. Программа пишется на C++. Мой вопрос: как мне получить доступ к определенным ячейкам из электронной таблицы из моей программы? Я немного изучил его и увидел, что хочу сохранить свой файл в формате csv и использовать fscanf для чтения содержимого, но я не знаю, как бы я сделал эту часть. Погуглил и нашел вот эту тему:

http://www.daniweb.com/software-development/cpp/threads/204808/parsing-a-csv-file-separated-by-semicolons

но я думаю, что он считывает все данные из CSV? Во всяком случае, из того, что я могу сказать. И я хочу вытащить только определенные элементы. Это возможно?


person Monique    schedule 18.05.2012    source источник
comment
Вам нужно будет прочитать весь файл, чтобы получить доступ к нужным элементам (и игнорировать остальные)   -  person Attila    schedule 19.05.2012


Ответы (2)


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

person K-ballo    schedule 18.05.2012
comment
Итак, создайте массив и загрузите элементы файла в массив для поиска? - person Monique; 19.05.2012

Вы вызываете программу из Excel? Если да, немного VBA имеет большое значение. Вы всегда можете экспортировать только интересующие ячейки, готовые для чтения вашей программой C++.

В противном случае другие ответы верны. Однако вам не нужно сразу загружать весь файл в память. Вы можете использовать std::fstream, чтобы открыть файл и прочитать каждую строку файла, проанализировав необходимую информацию для каждой строки.

person Steztric    schedule 18.05.2012
comment
Нет, программа должна запросить тему у пользователя, а затем получить доступ к программе Excel, и эта идея справочной базы данных, которая у меня есть, предназначена для возможной темы для окончательной программы, которую я мог бы делать в своем классе C++, поэтому я должен написать программировать полностью на C++. Вторая часть того, что вы сказали, выглядит как мой лучший вариант, я посмотрю на это. Спасибо за совет :) - person Monique; 19.05.2012
comment
@ Моник, нет проблем. На заметку попробуйте Boost Tokenizer, чтобы разбить строку на набор строк, разделенных запятыми; Ускоряющий токенизатор - person Steztric; 30.05.2012