Cross Platform, код Python 2/3:
# import sys, os
def wait_key():
''' Wait for a key press on the console and return it. '''
result = None
if os.name == 'nt':
import msvcrt
result = msvcrt.getch()
else:
import termios
fd = sys.stdin.fileno()
oldterm = termios.tcgetattr(fd)
newattr = termios.tcgetattr(fd)
newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO
termios.tcsetattr(fd, termios.TCSANOW, newattr)
try:
result = sys.stdin.read(1)
except IOError:
pass
finally:
termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm)
return result
Я удалил материал fctl / non-blocking, потому что он дал IOError
s, и мне это не нужно. Я использую этот код специально, потому что хочу его заблокировать. ;)
Возьмите *.bas файл отсюда http:http://stackoverflow.com/Content/img/wmd/ul.png//www.access-im-unternehmen.de/index1.php?BeitragID=337&id=300 (к сожалению, это является немецким).
Это использует GDI + lib от MS (включенный в установку стандарта Win) для импортирования/экспортирования рисунков для Доступа к OLE.
Грубый перевод интерфейса:
Используйте инструмент Lebans ExtractInventoryOLE MVP Доступа Stephen для извлечения Объектов OLE из таблицы для разделения файлов.
http://www.lebans.com/oletodisk.htm
Согласно Lebans: "Не требует исходного приложения, которое служило сервером OLE для вставки объекта. Поддержки все документы MS Office, PDF, Все изображения, вставленные Редактором фотографий MS, Краской MS и Paint Shop Pro. Также извлечение поддержек класса ПАКЕТА включая исходное Имя файла".
Кроме того, Доступ 2 007 Объектов OLE хранилищ намного более эффективно, чем исторические форматы BMP предыдущих версий, таким образом, Вы имели бы меньшее пространство памяти и смогли бы сохранить свое приложение Доступа при преобразовании его из 600+GB устройство хранения данных SQL Server к Доступу 2007 accdb формат. Ваше время резервного копирования было бы управляемо, и Вы не должны будете проводить время, преобразовывая фронтэнд Доступа в веб-фронтэнд.
Вот ссылка снова: http://www.access-im-unternehmen.de/index1.php?BeitragID=337&id=300
Я думаю причина, Ваша база данных становится столь чрезмерно увеличенной в размере, то, что JPGs также хранятся как битовые массивы в структуре "Объекта OLE", или таким образом, я видел, в зависимости от метода, JPEG был вставлен.
Это не оптимально, но: для каждого изображения в базе данных я программно создал бы макет .doc содержащий просто изображение, затем передал бы его через преобразование OpenOffice и извлек бы JPEG из подпапки изображений представленного документа OpenOffice (который является zip-файлом).
Я затем заменил бы документы OLE в базе данных с необработанными данными JPEG, но затем у меня нет способа для Вас явно отобразить их в пользовательском приложении (если это не веб-приложение).