Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ С\С++ _ [Решено]Реализация хранения и показа строк в excel

Автор: Cergey 11.9.2010, 16:42

Всем здраствуйте!!! B)

Наверное мне сюда.

Кто-нибудь знает как хранятся сами ячейки в Excel'e??? 65000 строк и 256 столбцов оперативу посадят. Может тама хеш-функция или указатели на ячейки тока сохр.???

Кто знает прошу подсказать. в гоогле ненашел.

UPD1 Как хранятся в приложении пустые ячейки. 65000*256- как-то оптимизировать же надо???
UPD2 Первый ответ СПС BRE http://www.forum.crossplatform.ru/index.php?s=&showtopic=5563&view=findpost&p=39671

Сам нашел. Всем спасибО!!!

Автор: Алексей1153 11.9.2010, 20:48

нет, тебе явно не сюда :)

А вопрос всё равно не понятен - какое то бессвязное излияние междометий

Автор: BRE 11.9.2010, 20:50

Цитата(Cergey @ 11.9.2010, 17:42) *
Кто знает прошу подсказать. в гоогле ненашел.

Скорее всего там хранятся значения только для заполненных (не пустых) ячеек.

Автор: Cergey 12.9.2010, 7:50

Я про, то как хранятся в приложении пустые ячейки. 65000*256- как-то оптимизировать же надо???

Автор: BRE 12.9.2010, 8:19

Цитата(Cergey @ 12.9.2010, 8:50) *
Я про, то как хранятся в приложении пустые ячейки. 65000*256- как-то оптимизировать же надо???

Дык, а я про что. :)
Они не как не хранятся в приложении, хранятся только заполненные.

Автор: Алексей1153 12.9.2010, 10:47

Cergey,
1) можно хранить таблицу нулевых указателей, а память выделять тогда, когда потребовалось хранить данные ячейки
2) если скорость не критична, а с озу негусто, можно применить кеш

Автор: Cergey 12.9.2010, 14:32

Нее. Это для универа (струкруры данных). Тама что-то сложнее, а что не найду.
Пример был с хеш-функцией для вычисления конк. ячейки. Но тама что-то сложнее...
А что не найду........

Точнее для вычисления указателя для конк. ячейки.

Автор: Алексей1153 12.9.2010, 16:06

при чём тут хеш (hash) , я про КЕШ (cash) говорю :)

Автор: Cergey 12.9.2010, 16:17

А я про хеш-функцию. Прочитай на верху...

МОДЕРАТОРЫ НА ВАС НАДЕЮСЬ :rolleyes:

Автор: BRE 12.9.2010, 16:47

Хм. С точки зрения расхода памяти, лучше не создавать в памяти "таблицу" 65000*256 указателей на cell, а хранить только те ячейки, в которых установлены данные (можно в хеше, можно в мапе).
Пусть таблица будет хоть 1 000 000 * 1 000 000.
Псевдокод:

QHash<QString, Cell> table;

// Пользователь ввел число 3 в ячеку A1
table[ "A1" ] = Cell( 3 );

// Пользователь ввел строку "Test" в ячеку C12
table[ "C12" ] = Cell( "Test" );

// Все остальные ячеки таблици, которых нет в коллекции table считаются пустыми.


Автор: Cergey 12.9.2010, 17:44

BRE, меп может и на это прерод намекал.
Один ответ есть СПС

А еще идеи??? :p

Автор: Влад 13.9.2010, 11:59

Основная идея уже изложена. Для подобных приложений характерна структура данных "разреженный массив" (или "разреженная матрица") - т.е. реально хранятся только непустые ячейки.

Автор: Cergey 13.9.2010, 17:16

Да эт знаю. Вопрос в том как указатели на пустые хранятся, находятся.

Автор: kwisp 13.9.2010, 17:33

Цитата(Cergey @ 13.9.2010, 18:16) *
Да эт знаю. Вопрос в том как указатели на пустые хранятся, находятся.

так по-подробнее пожалуйста.
что именно знаете про хеш, разреженные массивы и матрицы?

П.С.
а то чувствую тему в юмор переносить скоро надо будет.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)