Автор |
Тема: Шрифт (Прочитано 3395 раз) |
|
Svetlana
Moderator
    

Просмотреть Профиль |
Сообщений: 404
|
Сергей, программы не могут находить сами путь - нужно его программировать. Если это скрыто от тебя - это значит, кто-то предварительно запрограммировал что если кликают по файлу с определенным расширением то автоматически проверяется редактор, который этот файл умеет видеть. А этот редактор должен находиться в определенном месте, которое задается при установке редактора на комп мастером. Мне вот кажется, что проработав с ФБП почти 25 лет невозможно задавать такие вопросы, как ты задаешь. Почему ты задаешь такие вопросы как что такое BB или z1? Это - строки ... строки, не числа ... которые формируют путь к искомому файлу. Я в теме http://hdru.com/cgi-bin/pp2/YaBB.cgi?board=beginners;action=display;num= 1605428701 дала полностью текст перехода из формы в форму с отбором файлов и постепенным формированием строки BB которая есть 'путь к файлу для просмотра'. Ты писал что все у тебя работает и осталось шрифт добить. Потом написал что и шрифт получился. А теперь ты начинаешь все сначала? И ты перестал понимать что такое 'строка' и 'путь к файлу'? Считаю, что все это - неуважительное отношение к коллегам, который пытались тебе помочь (уже правда не знаю в чем).
|
|
Зарегистрирован |
|
|
|
mine-R
  
 compact & flexible rulezzz
Просмотреть Профиль |
Сообщений: 150
|
on 04.02.21 в 10:21:46, Seroga wrote:... от начинающего, что бы все моменты осознавать ... - Зачем мы в начале загружаем t1 ? - Что такое ВВ ? Нам нужно получить: путь к программе + пробел + путь к файлу. ВВ= ...z1... Что делает z1 в определении ВВ ? Либо программа сама находит полный путь к указанному файлу? - У меня полный путь к файлу, без dos, это i2. Пустую строку вставил пред t0, не работает. Я скопировал полный фрагмент программы, который выдает список имен файлов и должен открыть нужные файлы. Свое писал, как у тебя. Попробую в отдельном файле, но уже не знаю … Правда, у тебя твое идет, у Светланы свое идет, почему у меня …. |
| Само и сразу, "по щучьему велению", ни у меня, а возможно даже и у Светланы не идет.. z1 - это почти то же, что и аргумент передаваемый оператору loaddir, но без конечных '\*.*' . Вместо '\*.*' при формировании BB подставляется конкретный файл, выбираемый по Enter'у из разворачивающегося списка. В итоге и получаем полный путь вместе с конкретным файлом который следует открыть. Я бы и полностью ваш способ формирования пути использовал в своем примере, но вы полный текст не показываете. Я конечно примерно додумал что у вас содержится в переменных q1 и q3, но для точной конкретики примерно додумать - недостаточно. Я в принципе и не ставлю под сомнение ваш способ формирования пути к файлу, мне интересна итоговая строка для открытия файла. Покажите, что у вас передается оператору printstr в итоге? вместо Code:printstr 'N:ENTER:>"C:\Program Files(x86)\Google\Chrome\Application\chrome.exe"'+BB |
| временно сделайте Code: A='N:ENTER:>"C:\Program Files(x86)\Google\Chrome\Application\chrome.exe"'+BB *printstr A debug: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^A |
| Иначе понять почему не идет запуск у вас - я просто не осилю.
|
« Изменён в : 04.02.21 в 12:50:49 пользователем: mine-R » |
Зарегистрирован |
|
|
|
mine-R
  
 compact & flexible rulezzz
Просмотреть Профиль |
Сообщений: 150
|
on 04.02.21 в 11:26:48, Svetlana wrote:... (уже правда не знаю в чем). |
| У меня вот предположение что не только в именах файлов, но и в самом пути к файлам кириллица присутствует.. например, 'C:\DOGOVORA\Счета\Файлы\' И если такой путь формируется внутри программы, то перед отправкой на запуск, с помощью [win] обработка могла бы помочь.. Но это всё предположения мои.. ------------------------------------ P.S. Посмотрел у себя свои же заметки по поводу [ch10] Если используется [ch10] то нет необходимости в пустой строке перед строкой с форматными вставками. Так что по поводу [ch10] прошу прощения Удобнее всё-же использовать [ch10] вместо пустой строки.
|
« Изменён в : 04.02.21 в 18:39:37 пользователем: mine-R » |
Зарегистрирован |
|
|
|
Svetlana
Moderator
    

Просмотреть Профиль |
Сообщений: 404
|
on 04.02.21 в 17:42:24, mine-R wrote: ... P.S. Посмотрел у себя свои же заметки по поводу [ch10] Если используется [ch10] то нет необходимости в пустой строке перед строкой с форматными вставками. Так что по поводу [ch10] прошу прощения Удобнее всё-же использовать [ch10] вместо пустой строки. |
| Я тоже [ch 10] использую - как-то элегантнее и удобнее
|
|
Зарегистрирован |
|
|
|
Svetlana
Moderator
    

Просмотреть Профиль |
Сообщений: 404
|
on 04.02.21 в 17:42:24, mine-R wrote: У меня вот предположение что не только в именах файлов, но и в самом пути к файлам кириллица присутствует.. например, 'C:\DOGOVORA\Счета\Файлы\' И если такой путь формируется внутри программы, то перед отправкой на запуск, с помощью [win] обработка могла бы помочь.. Но это всё предположения мои.. ... |
| Решила проверить. Написала маленькую формочку: на диске C создала каталог 'ДОГОВОРЫ'. И попробовала его извлекать и передавать: * B=[im 'Варианты','1','2'] * if B=1 c='c:\'+'*.*' loaddir c for i=3 to [ged 'ld.N'] a=[ged 'ld.'+[intsn i]] a=[dos a] N:ENTER:R !!001 ·2·#1· ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^a N:ENTER: endfor * elseif B=2 ?C C: ^^^^^^^^^^^^^^^^^^^^^^^^^C endif Результат на скриншоте: Посмотрела в логе как пошли запросы: C> 09:05:21 05.02.2021 VER·*********·620A2L@@·G !!001 S> 0.00 "Q-M: ·2·1·Варианты·" C> 09:05:22 05.02.2021 VER·*********·620A2L@@·G !!001 ·1· S> 0.06 4374 C> 09:05:46 05.02.2021 VER·*********·620A2L@@·R !!001 ·2·ДОГОВОРЫ· S> 0.00 39
|
« Изменён в : 05.02.21 в 09:21:00 пользователем: Svetlana » |
Зарегистрирован |
|
|
|
mine-R
  
 compact & flexible rulezzz
Просмотреть Профиль |
Сообщений: 150
|
Вот А вопрос в том, что если бы внутри папки "ДОГОВОРЫ" лежали, допустим, *.pdf для запуска в качестве аргумента к директиве ">". Увиделся бы путь, содержащий кириллицу, без обратной обработки с помощью [win] ?
|
|
Зарегистрирован |
|
|
|
Seroga

 Я люблю этот Форум!
Просмотреть Профиль |
Сообщений: 40
|
Не просто задавать вопросы, когда последняя строчка … попробовал, все работает. С поправкой на все сразу. Начало фрагмента z1='C:\Program Files (x86)\AutoIt3\Examples' t1='C:\Program Files (x86)\AutoIt3\Examples\*.*' loaddir t1 У Светланы (тоже самое, она писала для меня) loaddir в отношении «программ» отсутствует, а в данном случае он есть и еще в начале последнего раздела программы (формы). Поэтому и спрашивал, почему так сделано, зачем.
|
|
Зарегистрирован |
|
|
|
Seroga

 Я люблю этот Форум!
Просмотреть Профиль |
Сообщений: 40
|
На всякий случай спросил (уточнил), что такое «ВВ». Получил ответ: «ВВ» - это путь к открываемому файлу. z1='C:\Program Files (x86)\AutoIt3\Examples' t1='C:\Program Files (x86)\AutoIt3\Examples\*.*' loaddir t1 t8=[ged 'ld.N'] for t9=3 to t8 z0=[strip [ged 'ld.'+[intsn t9]]] t0=[strip [dos [ged 'ld.'+[intsn t9]]]] BB=[ch32]+'"'+z1+'\'+z0+'"' Если у нас «ВВ» это путь к открываемому файлу, а BB=[ch32]+'"'+z1+'\'+z0+'"', а z1='C:\Program Files (x86)\AutoIt3\Examples', то 'C:\Program Files …’ это ни как не фрагмент пути к открываемому файлу, а следовательно и z1 тоже, по-моему разумению или я не прав. Поэтому и спрашивал, что делает z1 в определении «ВВ».
|
|
Зарегистрирован |
|
|
|
Seroga

 Я люблю этот Форум!
Просмотреть Профиль |
Сообщений: 40
|
У Светланы пред t0 пропуск строки отсутствует. Я это отнес на дизайн, получаемого отчета. По документации к однопользовательской и сетевой версии ch – строка из одного …, употребительна для управления принтером. А также имеет отношение к цвету, прозрачности и массивам. Больше в документации ничего нет по этому поводу. Т.е. не мой случай. - Поэтому пропуск строки делать не стал. Теперь я знаю, что такое ch32 и ch10, но остается вопрос, в каких случаях их изпользовать. Но это уже другая тема.
|
« Изменён в : 05.02.21 в 14:45:31 пользователем: Seroga » |
Зарегистрирован |
|
|
|
Seroga

 Я люблю этот Форум!
Просмотреть Профиль |
Сообщений: 40
|
Нет, не скрываю, наоборот, я на форум выложил полный фрагмент файла, который должен сделать список файлов и открыть выбранный файл по Ентеру. Предшествующее к нему (кусок отчетной формы) отношение к обсуждаемому не имеет. Я могу выложить все, но это не разумно, выкладывать много лишнего и не нужного. Если это поможет, я бы предпочел файл переслать, в противном случае (скопировать и вставить), там нужно будет много редактировать абракадабры. q1 – это субсчет Подрядчика, к которому привязан его ИНН. q3 – номер договора, в моем случае это ‘170129-01’ вводится в форму вручную.
|
|
Зарегистрирован |
|
|
|
Seroga

 Я люблю этот Форум!
Просмотреть Профиль |
Сообщений: 40
|
Име файла, а также путь. Можно посмотреть скриншот Светланы, у меня тоже самое. Без dos, заглавная кириллица, «(», «)» и т.п. это псевдографика, прописная кириллица – это кириллица, но абракадабра, но расширение файла всегда правильное .pdf (у меня, я проверял) и без dos, правильно делает список файлов, т.е. путь правильный или я не прав. Т.е. ФбП отрабатывают нормально в отношении этого. Как этот путь, полученный ФбП, отработает открывающая программа …?
|
|
Зарегистрирован |
|
|
|
Svetlana
Moderator
    

Просмотреть Профиль |
Сообщений: 404
|
on 05.02.21 в 12:56:08, mine-R wrote:Вот А вопрос в том, что если бы внутри папки "ДОГОВОРЫ" лежали, допустим, *.pdf для запуска в качестве аргумента к директиве ">". Увиделся бы путь, содержащий кириллицу, без обратной обработки с помощью [win] ? |
| Да, поняла что вы имеете ввиду. Нет, не увидел бы, надо преобразовывать. То есть, мой пример должен был быть так доведен до показа файлов: * B=[im 'Варианты','1','2'] if B=1 c='c:\*.*' loaddir c for i=1 to [ged 'ld.N'] a=[ged 'ld.'+[intsn i]] a=[dos a] N:ENTER:R !!001 ·2·#1· ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^a N:ENTER: endfor [sed 'ld.N',0] elseif B=2 ?FF Содержимое каталога: ^^^^^^^^^^^^^^^^^^^^^^^^FF KK=[win FF] * cc='c:\'+KK+'\*.*' loaddir cc cc=[ged 'ld.N'] for i=3 to [ged 'ld.N'] a=[ged 'ld.'+[intsn i]] a=[dos a] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^a endfor [sed 'ld.N',0] endif
|
|
Зарегистрирован |
|
|
|
mine-R
  
 compact & flexible rulezzz
Просмотреть Профиль |
Сообщений: 150
|
on 05.02.21 в 14:39:34, Seroga wrote:Не просто задавать вопросы, когда последняя строчка … попробовал, все работает. С поправкой на все сразу. Начало фрагмента z1='C:\Program Files (x86)\AutoIt3\Examples' t1='C:\Program Files (x86)\AutoIt3\Examples\*.*' loaddir t1 У Светланы (тоже самое, она писала для меня) loaddir в отношении «программ» отсутствует, а в данном случае он есть и еще в начале последнего раздела программы (формы). Поэтому и спрашивал, почему так сделано, зачем. |
| on 05.02.21 в 14:41:56, Seroga wrote:На всякий случай спросил (уточнил), что такое «ВВ». Получил ответ: «ВВ» - это путь к открываемому файлу. z1='C:\Program Files (x86)\AutoIt3\Examples' t1='C:\Program Files (x86)\AutoIt3\Examples\*.*' loaddir t1 t8=[ged 'ld.N'] for t9=3 to t8 z0=[strip [ged 'ld.'+[intsn t9]]] t0=[strip [dos [ged 'ld.'+[intsn t9]]]] BB=[ch32]+'"'+z1+'\'+z0+'"' Если у нас «ВВ» это путь к открываемому файлу, а BB=[ch32]+'"'+z1+'\'+z0+'"', а z1='C:\Program Files (x86)\AutoIt3\Examples', то 'C:\Program Files …’ это ни как не фрагмент пути к открываемому файлу, а следовательно и z1 тоже, по-моему разумению или я не прав. Поэтому и спрашивал, что делает z1 в определении «ВВ». |
| Если рассматривать мой пример, то: 1. Существует путь: C:\Program Files (x86)\AutoIt3 2. По этому пути расположена программа autoit3.exe то есть полный путь до программы с учетом обертывания в двойные кавычки: Code: "C:\Program Files (x86)\AutoIt3\autoit3.exe" |
| 3. По этому же пути (C:\Program Files (x86)\AutoIt3) расположена директория Examples, в которой расположены документы для программы autoit3.exe, с расширениями *.au3 4. Маска выбора всех документов для loaddir присвоенная переменной t1, в моем примере выглядит вот так: Code: t1='C:\Program Files (x86)\AutoIt3\Examples\*.*' |
| 5. Имя документов в цикле (t0=[strip [dos [ged 'ld.'+[intsn t9]]]]) на всякий случай с учетом того, что они могут содержать кириллицу - для отображения в форме. (В моем примере это msgbox.au3, inputbox.au3 и.т.д.) 6. Переменная z0 это то же самое t0, но без обработки с помощью [dos]. Используется не для отображения в форме, а для формирования полного пути к документу в BB. С учетом обертывания в двойные кавычки это будет: Code: А с учетом добавления пробела перед первой кавычкой: Code: BB=[ch32]+'"'+z1+'\'+z0+'"' |
| Таким образом: printstr 'N:ENTER:>"C:\Program Files (x86)\AutoIt3\autoit3.exe"'+BB имеет целью сформировать строку в форме: N:ENTER:>"C:\Program Files (x86)\AutoIt3\autoit3.exe" "C:\Program Files (x86)\AutoIt3\Examples\msgbox.au3"' И в моем примере такая строка формируется, я проверял отладочными форматными вставками. Следовательно документ открывается программой (проверил на практике). Я пытаюсь уже второй день узнать у вас, какая формируется строка в вашем примере. Вот как-то так..
|
|
Зарегистрирован |
|
|
|
mine-R
  
 compact & flexible rulezzz
Просмотреть Профиль |
Сообщений: 150
|
on 05.02.21 в 15:41:13, Svetlana wrote: Да, поняла что вы имеете ввиду. Нет, не увидел бы, надо преобразовывать. То есть, мой пример должен был быть так доведен до показа файлов: . . . |
| Вот и думаю теперь, может если формировать строку для открытия в переменную в формате отображения на форме а перед отправкой оператору printstr, обрабатывать готовую строку махом с помощью [win]... Может так было бы понятнее, что я пытаюсь донести про кириллические имена документов и запуск.. Хотя уже не настолько уверен как вчера, что именно из-за кириллицы в примере с ИНН и номером договора не находится путь Без отладочных вставок иногда достаточно сложно понять, где именно и что именно пошло как-то не так..
|
|
Зарегистрирован |
|
|
|
Seroga

 Я люблю этот Форум!
Просмотреть Профиль |
Сообщений: 40
|
Для чистоты эксперимента интересующий нас фрагмент программы (файла) вынес в отдельный файл. Полный путь к открываемому файлу. d:\DOGOVOR\4028041029\2017\170129-01 13 279 292-94 ОАО Селенгинский ЦКК\170129-01 00 7 979 292-94 Дог 05с.pdf *Содержание формы q1='610000001' [ia 61] q3='170129-01' j1='D:\DOGOVOR\' j2=[strip [ged q1+'ИНН']] j3='20'+[cp q3,1,2] loaddir j1+j2+'\'+j3+'\'+'*.*' * j4=[ged 'ld.N'] for j5=3 to j4 j6=[ged 'ld.'+[intsn j5]] if [cp j6,1,9]=q3 j7=[strip j6]; goto d-j7; endif endfor :d-j7 * loaddir j1+j2+'\'+j3+'\'+j7+'\'+'*.*' ************* z1='C:\Program Files (x86)\AutoIt3\Examples' t1='C:\Program Files (x86)\AutoIt3\Examples\*.*' loaddir t1 t8=[ged 'ld.N'] for t9=3 to t8 z0=[strip [ged 'ld.'+[intsn t9]]] t0=[strip [dos [ged 'ld.'+[intsn t9]]]] BB=[ch32]+'"'+z1+'\'+z0+'"'+[ch10] printstr 'N:ENTER:>"C:\Program Files (x86)\AutoIt3\autoit3.exe"'+BB ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^t0 N:ENTER: endfor Предлагаемая часть фрагмента формы вставлена неизменной, включая обозначения переменных. Результат ее выполнения. calculator.au3 COM count-do.au3 count-for.au3 count-while.au3 functions.au3 GUI Helpfile inputbox.au3 msgbox.au3 notepad1.au3 notepad2.au3 _ReadMe_.txt
|
|
Зарегистрирован |
|
|
|
|
|