Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: MSA 2003 Компрессия/декомпрессия символьной строки
 
 автор: Анатолий   (26.07.2007 в 11:17)   личное сообщение
 
 

Имею базу размером 600 Мбайт, где 70% объема занимает таблица с МЕМО-строками вида:

0,'бязь',192, .218,13.54,0\35,'в_прост',143,.412, .15,0\0,'вороток_',151,6.927,2.451,0\0,'гвозди_кабл',226,74.107,.026,0\36,'з_з',151,.479,45,0\35,'и_ст',225,.412,20,0\0,'каран_воск', 226,42.831,.003,0\0,'клей_декстр',226,64.989,.01,0\0,'клей_рап', 226, 117.597, .06,0\ 0,'клей_рез', 226, 80.565, .01,0\ 0,'кож_под', 192, 5.941, 2.483,0\ 0,'коробка', 226, 6.420, .5,0\ 0,'крем_отдел', 226, 513.721, .002,0\ 0,'лакНЦ-598', 226, 77.041, .02,0\ и т.д.

Длина строки от 300 до 1500 символов.
Подозреваю, что ее можно в 2 - 4 раза: в ней полно повторяющихся символов.

Где найти функцию для компресии/декомпресии?

Скорость компрессии меня особо не волнует, а вот декомпрессии - да.

  Ответить  
 
 автор: osmor   (26.07.2007 в 11:28)   личное сообщение
 
 

Решения не знаю, никогда не занимался могу посоветовать ресурс
http://www.compression.ru/
предполагаю, что для скорости нужно будет использовать внешнюю библиотеку на VBА будет очень медренно

  Ответить  
 
 автор: Анатолий (Киев)   (30.07.2007 в 11:30)   личное сообщение
 
 

Самое простое, что приходит в голову - хранить текст не в UNICODE, а в ANSI. Т.е. перед сохранением преобразовать VBA функцией StrConv(s,vbFromUnicode), а при чтении - StrConv(s,vbUnicode) . Если свойство поля "Unicode Compression"=False, то эффект - приблизительно в 2 раза. Если True, то для строк <=4096 байт, ИМХО, эффект тот же.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList