powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Не понятная картина
31 сообщений из 31, показаны все 2 страниц
Не понятная картина
    #40037721
hum_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток!
из-за чего может быть такая картина? при запуске кода дебагером поиск файла по маске отрабатывает корректно ll_findfile = FindFirstFileA( ls_filefullpath, str_finddata ) и возвращает значение больше 0. А если запускаешь через run то ll_findfile = FindFirstFileA( ls_filefullpath, str_finddata ) возвращает -1 и пишет в лог что Файл по маске не найден.
...
Рейтинг: 0 / 0
Не понятная картина
    #40037724
hum_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще что любопытно что если в коде той функции, которая делает поиск по маске
прописать вывод значения переменной на экран и запустить через run, то тоже отрабатывает корректно

ls_filefullpath = as_in_path + '\' + as_mask

MessageBox('ls_filefullpath',ls_filefullpath)

ll_findfile = FindFirstFileA( ls_filefullpath, str_finddata )

MessageBox('ll_findfile',String(ll_findfile))
...
Рейтинг: 0 / 0
Не понятная картина
    #40037753
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hum_i,
это проблема определения текущего каталога, т.е. при запуске из среды, РВ ищет в каталоге РВ, а АРР.ЕХЕ ищет в своем каталоге.
...
Рейтинг: 0 / 0
Не понятная картина
    #40037820
hum_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AIS
hum_i,
это проблема определения текущего каталога, т.е. при запуске из среды, РВ ищет в каталоге РВ, а АРР.ЕХЕ ищет в своем каталоге.

А как эту проблему решить? подскажите пожалуйста
...
Рейтинг: 0 / 0
Не понятная картина
    #40037837
osxl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hum_i
А как эту проблему решить? подскажите пожалуйста
Какая версия PB?
...
Рейтинг: 0 / 0
Не понятная картина
    #40037839
osxl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AIS
hum_i,
это проблема определения текущего каталога, т.е. при запуске из среды, РВ ищет в каталоге РВ, а АРР.ЕХЕ ищет в своем каталоге.
Тут походу что-то другое, запуск приложения и так и так производиться из под среды PB.
...
Рейтинг: 0 / 0
Не понятная картина
    #40037845
hum_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если я в нужную мне папку C:\TEST_FILE вручную копирую zip файл
а потом запускаю проект который должен этот файл найти и распаковать, то все работает отлично
Но если я в коде прописываю взять этот файл с ftp и положить в нужную мне папку C:\TEST_FILE

TRY
// Загрузка zip архивов
wso_c = CREATE Oleobject
wso_c.ConnectToNewObject( "WScript.Shell")

IF isValid(wso_c) THEN
ll_ret = wso_c.Run( "get_file.bat", NORMAL, WAIT )
ELSE
ll_ret = -1
END IF

CATCH ( RunTimeError e1 )
e1.getMessage()
FINALLY
DESTROY(wso_c)
garbageCollect()
END TRY

а потом его распаковать, то все файл уже найти не может.
...
Рейтинг: 0 / 0
Не понятная картина
    #40037846
hum_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
osxl
hum_i
А как эту проблему решить? подскажите пожалуйста
Какая версия PB?

Version 2017 R3 Build 1880
...
Рейтинг: 0 / 0
Не понятная картина
    #40037864
osxl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hum_i
если я в нужную мне папку C:\TEST_FILE вручную копирую zip файл ... то все работает отлично
Начали с одного, закончили другим ))
Вы сами ответили на свой вопрос о проблеме. Вручную. Когда копируете вручную, вы копируете с одними правами, программа копирует с другими правами. Лично с этим сталкивался. Скорее всего дело в правах доступа.

А по первому вопросу, Debug vs Run, смутно припоминаю что сталкивался, покажите как вы декларируете функцию FindFirstFileA(..., ...)
...
Рейтинг: 0 / 0
Не понятная картина
    #40037866
osxl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hum_i
Но если я в коде прописываю взять этот файл с ftp и положить в нужную мне папку C:\TEST_FILE
ll_ret = wso_c.Run( "get_file.bat", NORMAL, WAIT )
Тут даже не программа копирует, а скрипт, вам надо сравнить права файл скопированных вручную и скриптом.
P.S. Есть готовая библиотека на PB для работы с FTP сервером, почему ей не воспользуетесь?
...
Рейтинг: 0 / 0
Не понятная картина
    #40037868
hum_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
osxl
hum_i
если я в нужную мне папку C:\TEST_FILE вручную копирую zip файл ... то все работает отлично
Начали с одного, закончили другим ))
Вы сами ответили на свой вопрос о проблеме. Вручную. Когда копируете вручную, вы копируете с одними правами, программа копирует с другими правами. Лично с этим сталкивался. Скорее всего дело в правах доступа.

А по первому вопросу, Debug vs Run, смутно припоминаю что сталкивался, покажите как вы декларируете функцию FindFirstFileA(..., ...)

А как вопрос с правами решить? может как то в коде дать права на папку
...
Рейтинг: 0 / 0
Не понятная картина
    #40037880
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
22.01.2021 9:59, hum_i пишет:

> Version 2017 R3 Build 1880

Кстати, зачем использовать ANSI-функцию в Юникодной среде?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Не понятная картина
    #40037882
osxl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hum_i
А как вопрос с правами решить? может как то в коде дать права на папку
Попробуйте назначить, добавить права папке с наследованиями.
По первому вопросу Debug vs Run проверил, что через Debug что через Run работает одинаково.
...
Рейтинг: 0 / 0
Не понятная картина
    #40037959
osxl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dim2000

22.01.2021 9:59, hum_i пишет:

> Version 2017 R3 Build 1880
Кстати, зачем использовать ANSI-функцию в Юникодной среде?
Не факт, но скорее всего просто скопипастил, объявить функцию можно с любым именем.
...
Рейтинг: 0 / 0
Не понятная картина
    #40037972
hum_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
osxl
hum_i
А как вопрос с правами решить? может как то в коде дать права на папку
Попробуйте назначить, добавить права папке с наследованиями.
По первому вопросу Debug vs Run проверил, что через Debug что через Run работает одинаково.

А какие именно права нужно дать пользователю, под которым запускается программа, на эту папку?
Типа Full control?
...
Рейтинг: 0 / 0
Не понятная картина
    #40037979
hum_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дала права пользователю под которым программа запускается. Права Full control. Не помогло
...
Рейтинг: 0 / 0
Не понятная картина
    #40037981
osxl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hum_i
А какие именно права нужно дать пользователю, под которым запускается программа, на эту папку?
Типа Full control?
Я не даю пользователю или программе дополнительных прав. Конкретно назначал папке и наследуемым файлам права.
...
Рейтинг: 0 / 0
Не понятная картина
    #40037984
hum_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
osxl
hum_i
А какие именно права нужно дать пользователю, под которым запускается программа, на эту папку?
Типа Full control?
Я не даю пользователю или программе дополнительных прав. Конкретно назначал папке и наследуемым файлам права.

можете написать какие именно права и как это сделать? пожалуйста
...
Рейтинг: 0 / 0
Не понятная картина
    #40037986
osxl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hum_i,
Вообще начните с функции, потому что действительно возможно вы используете Ansi функцию, вы не выложили как ее задекларировали, маловероятно но и там тоже могут быть свои заковырки.
Запустите скрипт для скачки файла с FTP. Но распакуйте руками. Проверьте если программа видит. Не видит, руками дайте права файлу. Еще раз проверьте. А так получается тыкаем в слепую...
...
Рейтинг: 0 / 0
Не понятная картина
    #40038002
hum_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
osxl
hum_i,
Вообще начните с функции, потому что действительно возможно вы используете Ansi функцию, вы не выложили как ее задекларировали, маловероятно но и там тоже могут быть свои заковырки.
Запустите скрипт для скачки файла с FTP. Но распакуйте руками. Проверьте если программа видит. Не видит, руками дайте права файлу. Еще раз проверьте. А так получается тыкаем в слепую...


function long FindFirstFileA (ref string filename, ref os_finddata findfiledata) library "KERNEL32.DLL" alias for "FindFirstFileA;Ansi"
Скачивается файл без проблем. Прблема именно в том что потом когда нужно его распаковать, программа его не находит.
Вот код который сначала скачивает zip файл с ftp а потом его распаковывает
OleObject wso_c
OleObject wso_uz

SetNull( ls_file_path )
SetNull( ls_unzip_command )
SetNull( ls_filename )
SetNull( ls_chcp_command )

SetPointer(HourGlass!)

ls_chcp_command = 'chcp 866'

TRY
// Загрузка zip архивов
wso_c = CREATE Oleobject
wso_c.ConnectToNewObject( "WScript.Shell")

IF isValid(wso_c) THEN
ll_ret = wso_c.Run( "get_file.bat", NORMAL, WAIT )
ELSE
ll_ret = -1
END IF

CATCH ( RunTimeError e1 )
e1.getMessage()
FINALLY
DESTROY(wso_c)
garbageCollect()
END TRY

ls_zipper_path = 'C:\7z.exe'

ls_file_path = is_dir_impsc + '\'
ls_file_path2 = is_dir_impsc

ls_mask = 'test_' + ls_date+'*'

ls_file = uf_find_file( ls_file_path2, ls_mask )

ls_filename = ls_file_path + ls_file

IF NOT( IsNull( ls_zipper_path ) ) AND NOT( IsNull( ls_filename ) ) THEN
TRY
wso_uz = CREATE Oleobject
wso_uz.ConnectToNewObject( "WScript.Shell")

ls_unzip_command = '"' + ls_zipper_path + '"' + ' x ' + '"' + ls_filename + '"' + ' -y -o"' + ls_file_path
IF isValid(wso_uz) THEN
ll_ret = wso_uz.run( ls_unzip_command, 0, TRUE )
ELSE
ll_ret = -1
END IF

CATCH ( RunTimeError e2 )
e2.getMessage()
FINALLY
DESTROY(wso_uz)
garbageCollect()
END TRY
END IF
...
Рейтинг: 0 / 0
Не понятная картина
    #40038005
hum_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если например я кусок кода который копирует zip файл с ftp закрмментирую, файл туда в папку положу вручную и запущу прогу, то все прекрасно отрабатывает, программа распаковывает файл
...
Рейтинг: 0 / 0
Не понятная картина
    #40038008
hum_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как и какие права нужно дать права папке и ее наследуемым файлам?
...
Рейтинг: 0 / 0
Не понятная картина
    #40038018
osxl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hum_i,
Поменяйте для начала объявление вашей функции на Unicode. Ловил из-за этого глюки в программе.
Сравните права безопасности для скаченного файла через скрипт, и для файла который вы копируете руками. Там скорее всего будет разница.
...
Рейтинг: 0 / 0
Не понятная картина
    #40038045
osxl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hum_i
Как и какие права нужно дать права папке и ее наследуемым файлам?
Зависит от потребностей. Вот скачанный файл с одного ftp имеет разные наследования и параметры безопасности. Я не могу утверждать что у вас именно из-за этого не работает. Я с таким столкнулся.
...
Рейтинг: 0 / 0
Не понятная картина
    #40038157
osxl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hum_i, Ищите проблему у себя в коде, вытащил из архива старые коды для работы с Ftp, загружает zip файлы и функция FindFirstFile() отлично все видит.
...
Рейтинг: 0 / 0
Не понятная картина
    #40038490
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hum_i,
указывайте реальный полный путь к файлу, а не относительный, и все будет работать.
Текущий каталог (полный путь) меняется в процессе выполнения программы в зависимости от вызываемых функций, поэтому при смене текущего каталог, программа и не видит файла по относительному пути, т.к. он физически находится в другом каталоге.
Совет 1: всегда сохраняйте при старте каталог программы и восстанавливайте его после использования функций, которые его меняют.
Совет 2: определяйте рабочий каталог программы не через "GetCurrentDirectory" (проверьте что выводит эта РВ функция при старте из РВ и из ЕХЕ), а например как то так (и тоже проверьте для чистоты эксеримента):
Код: sql
1.
2.
3.
4.
5.
string 	ls_FullPath
ClassDefinition lcd
ls_FullPath = Space(1024)
lcd = ххх.ClassDefinition // ххх - класс объекта в ЕХЕ файле
ls_Fullpath = lcd.LibraryName
...
Рейтинг: 0 / 0
Не понятная картина
    #40038879
hum_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да все оказалось гораздо проще и с правами все в порядке.
Просто нужно было поставить Sleep(10) между процессом копирования файла с FTP и распаковкой
так как файл не успевал скопироваться полностью как запускался процесс распаковки. А все это делается одной функцией
...
Рейтинг: 0 / 0
Не понятная картина
    #40038979
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hum_i,
вы же использовали сценарий "run and wait", зачем же привязываться жестко к определенному значению времени.
...
Рейтинг: 0 / 0
Не понятная картина
    #40039381
hum_i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AIS
hum_i,
вы же использовали сценарий "run and wait", зачем же привязываться жестко к определенному значению времени.

Ну возможно этого сценария не достаточно. Проверено опытным путем
...
Рейтинг: 0 / 0
Не понятная картина
    #40039481
osxl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hum_i
Ну возможно этого сценария не достаточно. Проверено опытным путем
Дело в ваших батниках и скриптах. Дело конечно личное, но имхо всегда был против использования батников в программе, если это можно реализовать в коде программы, что дает возможность практически полностью контролировать процесс, в отличии от батника.
Есть готовые библиотеки для работы с Ftp и Zip на PB, зачем городить сие через OLE, запуском скриптов, остается для меня загадкой...

P.S. Насчет прав забыл то что у нас сеть с доменом, файлы приходили с другой сети без домена, поэтому программа у нас не видела, но у вас другой случай.
...
Рейтинг: 0 / 0
Не понятная картина
    #40043300
osxl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hum_i,
Знаю что вопрос решили, было пол часика свободного времени, накидал по быстрому из старых проектов. Не удобно получилось что ввел вас в заблуждение с правами. Вариант как это делать без скриптов. Pb 12.6. Распаковать на диск C:\ если захотите ознакомиться.
...
Рейтинг: 0 / 0
31 сообщений из 31, показаны все 2 страниц
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Не понятная картина
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]