2012-05-18 2 views
0

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

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

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

+0

Вам нужно будет прочитать весь файл, чтобы иметь возможность доступа к нужным элементам (и игнорировать остальные) – Attila

ответ

1

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

+0

Итак, создайте массив и передайте элементы файла в массив для поиска? – Monique

0

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

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

+0

Нет, программа должна запросить тему у пользователя, а затем получить доступ к программе excel, и эта идея базовой базы данных, которую у меня есть, - это возможная тема для окончательной программы, которую я мог бы выполнять в своем классе C++, поэтому мне нужно написать программа полностью в C++. Вторая часть того, что вы сказали, выглядит как мой лучший вариант, я рассмотрю это. Спасибо за совет :) – Monique

+0

@Monique не проблема. В качестве хэдз-ап попробуйте Boost Tokenizer разбить строку на коллекцию строк, разделенных запятыми; [Boost Tokenizer] (http://tinyurl.com/ct3dmy6) – Steztric

Смежные вопросы