Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.08.2009, 10:56   #1
eda
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 78
По умолчанию Данные из буфера обмена в виде массива байтов

Здравствуйте! Подскажите, пожалуйста, как из буфера обмена получить в виде массива байтов занесенную туда информацию?
eda вне форума Ответить с цитированием
Старый 11.08.2009, 12:03   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

А в каком виде нужен массив? Байты ASCI в символьном виде? Если в буфере, например, текст, то что должен содержать массив?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 11.08.2009, 12:09   #3
eda
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 78
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
А в каком виде нужен массив? Байты ASCI в символьном виде? Если в буфере, например, текст, то что должен содержать массив?
Не понимаю немного вопроса.. Моя цель - записать данные из Range("A1") на Clipboard и получить их оттуда в виде массива байтов.
eda вне форума Ответить с цитированием
Старый 11.08.2009, 12:23   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

А я не понимаю, что Вы имеете ввиду под словами "массив байтов".
Так, предположим, что в буфере обмена находится значение "123abc". Какие элементы в результате дожен содержать массив?
И еще. Если данные есть в известной ячейке, то зачем их помещать в буфер обмена?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 11.08.2009, 14:04   #5
eda
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 78
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
А я не понимаю, что Вы имеете ввиду под словами "массив байтов".
Так, предположим, что в буфере обмена находится значение "123abc". Какие элементы в результате дожен содержать массив?
И еще. Если данные есть в известной ячейке, то зачем их помещать в буфер обмена?
Мне нужно очень большие диапазоны сохранить в БД со всеми значениями в ячейках и со всей информацией о форматировании этого диапазона(цвет фон, шрифт, группировка и т.д.). Самым быстрым способом является сохранение этой всей информации в БД в виде массива байтов, которым представляется этот диапазон после нажатия ctrl+с в БО. Т.е. мне нужна информация из БО в сыром виде, без наложения форматов, как туда записывается изначально, в байтах.
eda вне форума Ответить с цитированием
Старый 11.08.2009, 15:36   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Т.е. мне нужна информация из БО в сыром виде, без наложения форматов, как туда записывается изначально, в байтах.
Теоретически получить такую информацию возможно.
Очень сложно, но возможно. По крайней мере, моих знаний не хватит, чтобы написать такую программу.
Допустим, Вы это реализуете, и в БД появится вся информация из буфера обмена.
Потом, наверняка, Вы захотите всё это запихать обратно на лист Excel, а вот тут и возникнут основные сложности.
Ибо поместить информацию из БД в буфер обмена будет посложнее...

Короче, забудьте про этот вариант, и помните, что никакая БД или программа не сохранит данные диапазона Excel лучше, чем сам Excel.
Копируйте нужные листы (или диапазоны ячеек) в отдельные файлы Excel, а в БД помещайте имена этих файлов. Это самый простой способ.
EducatedFool вне форума Ответить с цитированием
Старый 11.08.2009, 15:38   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
представляется этот диапазон после нажатия ctrl+с в БО.
чувствую себя чайником... а что означает "БО" ?

А!А!А!А "БО" — это буфер обмена!

согласен с Игорем.
восстановить данные из БД будет весьма проблематично!

Последний раз редактировалось EducatedFool; 11.08.2009 в 15:49.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.08.2009, 16:51   #8
eda
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 78
По умолчанию

Спасибо за ответы!
eda вне форума Ответить с цитированием
Старый 12.08.2009, 16:06   #9
eda
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 78
По умолчанию

Скажите, пожалуйста, а как на vba реализовать нажатие клавиш "Ctrl+C"?
eda вне форума Ответить с цитированием
Старый 12.08.2009, 16:18   #10
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

В Вашем случае, скорее всего, подойдёт и Selection.Copy (если Вы намереваетесь скопировать в буфер обмена выделенный диапазон)

Но можно и так: Application.SendKeys "^c" (этот вариант не всегда будет работать в Windows Vista)
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
очистка буфера обмена beegl Общие вопросы Delphi 21 04.01.2017 11:01
Записать содержимое буфера обмена в файл. sw3n Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 17.07.2009 02:39
Контроль буфера обмена AndrzejX Общие вопросы Delphi 8 20.02.2009 07:30
Представить данные о студентах института в виде массива записей. Паскаль. menlo Помощь студентам 3 12.12.2007 20:40
Строка символов в виде байтов Blondinka Общие вопросы Delphi 17 14.09.2007 19:06