01.02.2010, 12:13 | #1 |
NavAx
|
textBuffer и максимальный размер буфера для вставки в Excel
Всем добрый день.
Подскажите пожалуйста (может кто сталкивался с такой проблемой) в следующем вопросе: есть файл порядка 8 Мб, загружаю его в textBuffer.fromFile(...), затем textBuffer.toClipBoard(). В результате буфер пуст!!! Или может быть проблема в размере самого буфера обмена? Как его можно сделать больше? Спасибо. |
|
01.02.2010, 12:16 | #2 |
Ищущий знания...
|
Цитата:
Сообщение от Roman777
Всем добрый день.
Подскажите пожалуйста (может кто сталкивался с такой проблемой) в следующем вопросе: есть файл порядка 8 Мб, загружаю его в textBuffer.fromFile(...), затем textBuffer.toClipBoard(). В результате буфер пуст!!! Или может быть проблема в размере самого буфера обмена? Как его можно сделать больше? Спасибо.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
01.02.2010, 12:39 | #3 |
NavAx
|
да, точно. в дебаггере видно. Катати, открывая этот файл в блокноте, выделяя все и копируя - не копируется!!!
|
|
01.02.2010, 12:44 | #4 |
Ищущий знания...
|
Цитата:
Попробуйте проделать тоже самое с другим файлом...
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
01.02.2010, 13:14 | #5 |
Гость
|
Проверьте где выполняется код (вставка на сервере или клиенте) и где собственно файл открыт (на сервере или клиенте). Обычно с этим проблемы.
|
|
01.02.2010, 14:11 | #6 |
NavAx
|
Все на клиенте. Просто сам файл даже руками не копируется в эксель из блокнота. Пришлось делать выгрузку частями.
|
|
01.02.2010, 15:23 | #7 |
Участник
|
А копирование из блокнота в блокнот через буфер обмена проходит? Может, дело не в Excel, а недостаточном объеме памяти на компьютере?
Кстати, копирование такого объема - это относительно длительная по времени операция. Как следствие, велик риск того, что пользователь может сбросить буфер в процессе его вставки. Банально нажав Ctrl+C в каком-то другом процессе. Поэтому идея разбиения на относительно небольшие кусочки в любом случае сдравая. |
|
01.02.2010, 17:36 | #8 |
NavAx
|
из блокнота в блокнот тоже не копируется, пробовал также подождать какое то время после нажатия ctrl-C до ctrl-V. Памяти достаточно - 1Гб, при занятых 500 Мб, у некоторых пользователей даже небольшие объемы буфера не копируются.
|
|
01.02.2010, 18:38 | #9 |
Ищущий знания...
|
Цитата:
до причины докопаться не успел, переставил винду (там уже не только копирование отказывалось работать)
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
01.02.2010, 18:40 | #10 |
Участник
|
В АХ 4.0 СП2 была подобная бага, пришлось использовать WinApi :
X++: public static void toClipboard(str _text) { integer hGlobalTextLocked; integer hGlobalText; binary bText; ; bText = NEW Binary(strlen(_text)*2+2); hGlobalText = WinAPI::globalAlloc(8256,strlen(_text)*2+2); hGlobalTextLocked = WinAPI::globalLock(hGlobalText); bText.attach(hGlobalTextLocked,strlen(_text)*2+2); bText.String(0, _text); WinAPI::openClipboard(0); WinAPI::emptyClipboard(); SmmUtility::setClipboardData(1, hGlobalTextLocked); WinAPI::closeClipboard(); } |
|
|
За это сообщение автора поблагодарили: Maksim (1). |
01.02.2010, 19:15 | #11 |
MCTS
|
Собственно с проверки этого и стоило начинать, прежде чем открывать тему про максимальный размер) Заодно проверить тоже самые действия через меню и еще раз после перезагрузки.
|
|
Теги |
textbuffer, импорт файла, файл |
|
|