Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

сжатие данных


Цукор5 ©   (2006-05-22 23:14:00) 

Есть TStringGrid. Предположим RowCount=8000 ColCount=6, а пользователь заполнил всего лишь 100 строк.
Каким образом сохранить данные в файл,чтобы файл был как можно меньше?

При сохранении указывать Row,Col для каждой ячейки где есть данные? Вроде не выгодно...особенно когда у грида будет почти все заполено.
Какие есть варианты???


novill   (2006-05-23 16:39:00) [1]

были где-то бесплатные компоненты для архивирования ...


beglec   (2006-05-23 11:56:00) [2]


> Цукор5

Куда уж просче то ??? всего одно событие обрабатывать.
Зато экономия и быстродействие
в любом случае пользователь не будет заполнять
только 1 и 8000 а все остальные пыстыми держать?


Palladin   (2006-05-23 09:33:00) [3]

Перенос данных в TStringList стандартным разделителем столбцов (таб например или точка с запятой) и TStringList.SaveToFile


Цукор5   (2006-05-23 09:29:00) [4]

меня не интересует код...мне интересно направление :)
Т.е. как бы Вы решили подобный сабж.


Цукор5   (2006-05-23 09:27:00) [5]

2 Palladin ©   (23.05.06 09:18) [4]
Это как раз понятно. Непонятно ...как это сделать красивее и лучше?


Цукор5   (2006-05-23 09:18:00) [6]

других вариантов не будет ???


Palladin   (2006-05-23 09:18:00) [7]


> Цукор5   (23.05.06 01:14) [2]

Вариант только один. Не сохранять незаполненные строки.


Цукор5   (2006-05-23 01:14:00) [8]

>А зачем тебе 8000???

А затем... Пользователь может отчитать девайс и наполнить все 8000 или скопировать блок с Excel и вставить. Муторно мне +1 делать.


beglec   (2006-05-22 23:39:00) [9]

А зачем тебе 8000???
Делай когда последнию заполнил сразу +1 строчка.
тогда ничего лишнего сохранять не нужно будет
заполнение последней строчки проверить легко
if SG.Cells[1,SG.Row]<>'' then SG.RowCount:=SG.RowCount+1;


Наверх

Титульная страница Поиск, карта сайта Написать письмо