Работа с буфером
|
|
ZyXp10it | Дата: Пятница, 25 Июля 2008, 10:18 | Сообщение # 1 |
Поднаторевший
Группа: Проверенные
Сообщений: 60
Репутация: 0
Награды: 0
Статус: Offline
| Ситация: в буфере лежат данные по типу Дата1 <Tab> Наименование1 Дата2 <Tab> Наименование2 ... Подскажите скрипт, как их быстро разделить построчно и сохранить в тектовый файл с произвольными разделителями. P.S. Для того, чтобы вытащить проект из скомпилированного экзешника (если там нет secure level) - достаточно всего лишь сохранить оверлей ;)
|
|
| |
toizy | Дата: Пятница, 25 Июля 2008, 10:49 | Сообщение # 2 |
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
| Какие проблемы со скриптом? Свой-то вариант есть, или ты вообще не знаешь, как сделать то, что ты хочешь? Про оверлей знаем
Жизнь оказалась не такой уж и забавной, как поначалу...
|
|
| |
ZyXp10it | Дата: Пятница, 25 Июля 2008, 14:05 | Сообщение # 3 |
Поднаторевший
Группа: Проверенные
Сообщений: 60
Репутация: 0
Награды: 0
Статус: Offline
| Своего варианта нет, т.к. с буфером никогда в MMB не работал - а очень надо.... Добавлено (25 Июль 2008, 14:05) --------------------------------------------- Помог плагин RestrictClipboard на вашем сайте... А вручную (через скрипт) кто-нибудь знает как сделать???
|
|
| |
Alex3A | Дата: Пятница, 25 Июля 2008, 14:51 | Сообщение # 4 |
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
| Какие проблемы, замени код <Tab> на код разделителя. Quote (ZyXp10it) Дата1 <Tab> Наименование1 А вообще, как они туда попали и зачем. Если по копи-пасте мануально то ничего, а если из одного пректа в другой то есть гораздо более умные методы. К примеру мой плагин caller, и для локала и для любой сети.
|
|
| |
basme | Дата: Воскресенье, 27 Июля 2008, 19:23 | Сообщение # 5 |
MMB Club
Группа: Проверенные
Сообщений: 358
Репутация: 5
Награды: 2
Статус: Offline
| На каком конкретно этапе проблемы? Непонятно как вытащить из буфера, или разделить и заменить разделитель? Quote (Alex3A) К примеру мой плагин caller Ему же вроде надо именно через скрипт, а так он и RestrictClipboard юзал.
|
|
| |
Alex3A | Дата: Воскресенье, 27 Июля 2008, 23:38 | Сообщение # 6 |
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
| Quote (basme) Ему же вроде надо именно через скрипт, а так он и RestrictClipboard юзал. А он, caller, без всякого буфера обмена - ТСР протокол.
|
|
| |
ZyXp10it | Дата: Понедельник, 28 Июля 2008, 11:51 | Сообщение # 7 |
Поднаторевший
Группа: Проверенные
Сообщений: 60
Репутация: 0
Награды: 0
Статус: Offline
| Все с буфером разобрался, всем спасибо, тему можно закрывать... Новый вопрос в новой теме
|
|
| |
Oleg | Дата: Воскресенье, 29 Ноября 2009, 13:12 | Сообщение # 8 |
Любопытный
Группа: Пользователи
Сообщений: 39
Репутация: 0
Награды: 0
Статус: Offline
| Здравствуйте, как загрузить каждую строку прямо из буфера в отдельный текст? В буфере лежит Имя Фамилия Улица №д Индекс Город а ещё лучше нижнюю строку разделить на 2 текста.
|
|
| |
DEMBEL | Дата: Воскресенье, 29 Ноября 2009, 13:20 | Сообщение # 9 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| Собственно, когда вы получаете содержимое буфера обмена в переменную content$ Clipboard("GET","content$") тут весь вопрос в операциях над этой строковой переменной, как ее разделить на части. Щас попробуем поделить ее...
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
|
|
| |
Sower | Дата: Воскресенье, 29 Ноября 2009, 13:26 | Сообщение # 10 |
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
| вот так Code Clipboard("GET","f$") a=StrToFile(<Embedded>\temp.txt,f$,1,1) read$=StrFromFile(<Embedded>\temp.txt,1,1)
Сообщение отредактировал Sower - Воскресенье, 29 Ноября 2009, 14:02 |
|
| |
DEMBEL | Дата: Воскресенье, 29 Ноября 2009, 13:28 | Сообщение # 11 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| ну кстати вариант - пишете содержимое в файл, и читаете оттуда построчно. Проверим, можно ли обойтись без файла... Можно. Используем только преобразования в строке. Заменяем переводы строк и пробелы на символ | Code Clipboard("GET","string$") fs$=CHR(32) ts$='|' string$=StrChange(string$,fs$,ts$) fs$=CHR(13)+CHR(10) string$=StrChange(string$,fs$,ts$ ) Message("","string$") На выходе получаем массив данных, разделенных символом | Имя|Фамилия|Улица|№д|Индекс|Город Из массива вытаскиваем с помощью Item$ = GetArrayItem(string$,|,x) где x - порядковый номер записи в массиве. Code Например, вернем все элементы массива в цикле: For x=1 To 6 Item$ = GetArrayItem(string$,|,x) Message("","Item$") Next x Имейте в виду, скрипт адаптирован для указанного содержимого: Имя Фамилия Улица №д Индекс Город Если вы понимаете принцип скрипта, исправите под свои нужды, чтобы разделители были в нужных местах. Если нет, то в случае отсутствия разделителей (или их удвоения) в результирующей строке выложите точное содержимое буфера которое требуется обработать.
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
|
|
| |
Oleg | Дата: Воскресенье, 29 Ноября 2009, 14:05 | Сообщение # 12 |
Любопытный
Группа: Пользователи
Сообщений: 39
Репутация: 0
Награды: 0
Статус: Offline
| так всё работает, но мне надо разделить 4 сроки в буфере на 4 текста или эдитбокса конечно лучше без фаила
Сообщение отредактировал Oleg - Воскресенье, 29 Ноября 2009, 14:09 |
|
| |
DEMBEL | Дата: Воскресенье, 29 Ноября 2009, 14:19 | Сообщение # 13 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| Quote (Oleg) 4 сроки в буфере на 4 текста тогда в скрипте замените на палки | только перевод строки CHR(13)+CHR(10) пробелы CHR(32) не трогайтеДобавлено (29 Ноябрь 2009, 14:19) --------------------------------------------- покажите несколько типичных содержимых своего буфера обмена чтобы точно сказать как делать
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
|
|
| |
Oleg | Дата: Воскресенье, 29 Ноября 2009, 14:23 | Сообщение # 14 |
Любопытный
Группа: Пользователи
Сообщений: 39
Репутация: 0
Награды: 0
Статус: Offline
| Это так и есть Имя Фамилия Улица №д Индекс Город иногда вот так Имя Фамилия Улица №д Индекс Город
|
|
| |
DEMBEL | Дата: Воскресенье, 29 Ноября 2009, 14:31 | Сообщение # 15 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| а зачем тогда вам всю эту чушь с буфером городить? можно же просто написать все это.
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
|
|
| |
Oleg | Дата: Воскресенье, 29 Ноября 2009, 14:42 | Сообщение # 16 |
Любопытный
Группа: Пользователи
Сообщений: 39
Репутация: 0
Награды: 0
Статус: Offline
| Просто приходится мнго заполнять, а потом печатать, какбы заполнение бланков.
|
|
| |
Sower | Дата: Воскресенье, 29 Ноября 2009, 14:51 | Сообщение # 17 |
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
| А откуда заполняется, с какихто бумаг или информация для заполнения в электронном виде?
|
|
| |
Oleg | Дата: Воскресенье, 29 Ноября 2009, 15:02 | Сообщение # 18 |
Любопытный
Группа: Пользователи
Сообщений: 39
Репутация: 0
Награды: 0
Статус: Offline
| Да в электронном виде адреса, нужно переписать на бланки и распечатать, думаю так буду в четверть меньше времени тратиь(надеюсь)
|
|
| |
Alex3A | Дата: Воскресенье, 29 Ноября 2009, 15:13 | Сообщение # 19 |
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
| Oleg, разбиение строки из буфера обмена это только отдельный алгоритм, если бы тебя интересовал именно он, скажем в чисто познавательных целях, то в принципе ты получил достаточный ответ. Но я так понимаю, что у тебя другие цели, реализовать какой то более сложный алгоритм, вот с его описания и нужно начинать. Так что опиши проблему своим языком, сначала надо разобратся с самой идеей, а затем с механизмами ее реализации.
|
|
| |
Oleg | Дата: Понедельник, 30 Ноября 2009, 18:54 | Сообщение # 20 |
Любопытный
Группа: Пользователи
Сообщений: 39
Репутация: 0
Награды: 0
Статус: Offline
| План наполеоновский, есть адреса которые пишу на конверты,бланки потом печатаю, а идея в том что копирую адрес в буфер, кнопкой вставляю в эдитбоксы которые расположены в нужных местах потом на печать. DEMBEL предложил подходящий вариант, но почемуто мои 3 строчки копировать надо с 4ой строки, тогда ок. если как надо, то в массиве нету в конце палки Имя Фамилия|Улица №д|Индекс Город соответственно Индекс Город не пишется вот код Code Clipboard("GET","string$") fs$=CHR(13)+CHR(10) ts$='|' string$=StrChange(string$,fs$,ts$) Item1$ = GetArrayItem(string$,|,1) Item2$ = GetArrayItem(string$,|,2) Item3$ = GetArrayItem(string$,|,3) LoadText("Text1","Item1$") LoadText("Text2","Item2$") LoadText("Text3","Item3$") LoadText("EditBox1","string$" ) можеть подправите.
|
|
| |
YURIY | Дата: Понедельник, 30 Ноября 2009, 19:10 | Сообщение # 21 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Quote (Oleg) Имя Фамилия|Улица №д|Индекс Город соответственно Индекс Город не пишется Чтобы получить последний элемент через GetArrayItem, в конце строки также должен стоять делимитер: Имя Фамилия|Улица №д|Индекс Город|
Вечная память Андрею Сергееву!
|
|
| |
Oleg | Дата: Понедельник, 30 Ноября 2009, 19:14 | Сообщение # 22 |
Любопытный
Группа: Пользователи
Сообщений: 39
Репутация: 0
Награды: 0
Статус: Offline
| Так и я о томже что палки в конце нет, а как заполучить мне этот делимитер?
|
|
| |
YURIY | Дата: Понедельник, 30 Ноября 2009, 19:18 | Сообщение # 23 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| А в чём проблема? К строке присоединить "палку" не получается? Добавлено (30 Ноябрь 2009, 19:18) ---------------------------------------------
Quote (Oleg) Так и я о томже что палки в конце нет Quote (Oleg) если как надо, то в массиве нету в конце палки аа, пардон. Невнимательно прочёл.
Вечная память Андрею Сергееву!
|
|
| |
Oleg | Дата: Понедельник, 30 Ноября 2009, 19:22 | Сообщение # 24 |
Любопытный
Группа: Пользователи
Сообщений: 39
Репутация: 0
Награды: 0
Статус: Offline
| пробывал не шло :redface: .Попробую ещё раз. Проверил точно не идёт, потомучто букву потерял Буду внимательнее, пасибо.
Сообщение отредактировал Oleg - Понедельник, 30 Ноября 2009, 19:27 |
|
| |
Alex3A | Дата: Понедельник, 30 Ноября 2009, 19:26 | Сообщение # 25 |
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
| Quote (Oleg) а идея в том что копирую адрес в буфер А откуда копирую, я же не зря тебя спрашивал расказать подробно, возможно никакого буфера, палок, разделителей и не понадобится.
|
|
| |
YURIY | Дата: Понедельник, 30 Ноября 2009, 19:28 | Сообщение # 26 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Кстати, меня этот вопрос тоже интересует. И мне кажется, что здесь такой огород выходит, который совсем не нужен.
Вечная память Андрею Сергееву!
|
|
| |
Oleg | Дата: Понедельник, 30 Ноября 2009, 19:33 | Сообщение # 27 |
Любопытный
Группа: Пользователи
Сообщений: 39
Репутация: 0
Награды: 0
Статус: Offline
| На мыло приходит адрес и № артикля, пакет надо отправить но сначала надо заполнить конверт или пакет
|
|
| |
YURIY | Дата: Понедельник, 30 Ноября 2009, 19:34 | Сообщение # 28 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| И Вы выделяете в письме эти данные и копируете их в буфер? Так выходит? Затем уже обрабатываете в MMB?
Вечная память Андрею Сергееву!
|
|
| |
Oleg | Дата: Понедельник, 30 Ноября 2009, 19:39 | Сообщение # 29 |
Любопытный
Группа: Пользователи
Сообщений: 39
Репутация: 0
Награды: 0
Статус: Offline
| да, пока на лучше фантазии не хватает, а можеть и ума. Подскажите если можно какнибудть проще сделать
|
|
| |
DEMBEL | Дата: Понедельник, 30 Ноября 2009, 19:55 | Сообщение # 30 |
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
| что-то я не догоняю до конца... опишите подробнее в деталях весь алгоритм вашей работы (что, куда, зачем...), тогда может подскажем. явно тут можно оптимизировать.
Win7x64 SP1 Neobook v5.70 (Trial) WinXP SP3 Neobook v5.62
|
|
| |