Invalid FileName (45)

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7373
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Re: Invalid FileName (45)

Сообщение Игорь Столяров »

Дед Пахом писал(а):Предвижу вопрос "А как же Блокнот, он же умеет?" Ну и? Блокнот умеет, а Калькулятор не умеет, и что?
Ну не надо совсем косить под юзера ... В блокноте тоже самое - "имя файла" обрабатывается совсем разными процедурами открытия в зависимости от того локальное это имя или ссылка.
Это видно - если попробовать открыть страницу сайта с закрытым (требуется ввод имени и пароля) содержимым.
Не проверял - но более чем уверен, что страница скачивается в TEMP и далее открывается как текст (то о чем говорили раньше) ...

Работы на пару часов - написать распарсиватель имени файла и подобную процедуру открытия этого файла через драйвер Clarion.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2329
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 18 раз

Re: Invalid FileName (45)

Сообщение Губин Игорь »

Извини, конечно, но моё решение использует те же самые настройки. Т.е. установленные в реестре виндов. Т.ч. в этом смысле хрен редьки не слаще.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2329
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 18 раз

Re: Invalid FileName (45)

Сообщение Губин Игорь »

Игорь Столяров писал(а):
Дед Пахом писал(а):Работы на пару часов - написать распарсиватель имени файла и подобную процедуру открытия этого файла через драйвер Clarion.
Там даже нескольких минут много (при примитивном подходе): если файл начинается на ftp:// или http:// то используем один вариант, а если нет, то другой.
Конечно, если писать специальный объект (глетчер в огород Цигуро :roll: ), то можно и неделю возиться...
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7373
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Re: Invalid FileName (45)

Сообщение Игорь Столяров »

Губин Игорь писал(а):Т.ч. в этом смысле хрен редьки не слаще.
Возможно у меня тогда неправильное понимание происходящего. Я в свое время переписал код на Catalyst именно из-за проблем
у некоторых клиентов с PROXY. И с тех пор этих проблем не имею. Однако !
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2329
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 18 раз

Re: Invalid FileName (45)

Сообщение Губин Игорь »

Мне, когда я только начинал возиться с этим, долго пытались объяснить как проверять настройки и под них подстраиваться. В результате я плюнул и работаю по умолчанию. Видимо в Catalyst это всё как-то, в отличие от моего кода, обрабатывают.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7373
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Re: Invalid FileName (45)

Сообщение Игорь Столяров »

Губин Игорь писал(а):В результате я плюнул и работаю по умолчанию.
Меня, в свое время, вызывали клиенты в офис и тыкали носом в "работающий" в Internet Explorer и не работающую на этом же компьютере с тем же Internet'ом мою программу.
Юзеры и слышать ничего не хотели про устройство мировой глобальной сети и методы маршрутизации ... оно им было до одного места.
Метод тыка привел к выводу, что не работает именно при использовании PROXY. Далее - переход на CATALYST.
Теперь все стало одинаково. Если нет доступа к Internet - то его нет нигде. В настройках Explorer выставляем доступ через PROXY (кстати много различных вариантов уже перепробовал).
Заработал Explorer - сразу заработала и программа в Internet. Меня это устраивает на 100% - т.к. обеспечить Internet в Explorer - задача местных сисадминов ... ;)

P/S: Кстати та же самая история (и ее решение) повторилась и с кодом г-на Осипова для отправки почты на SMTP сервер ....
За теми кто отстал - не возвращаться. (С) Кодекс
Алексей- Софт-Центр
Ветеран
Сообщения: 390
Зарегистрирован: 26 Август 2009, 12:41
Откуда: Moscow
Контактная информация:

Re: Invalid FileName (45)

Сообщение Алексей- Софт-Центр »

Добрый день!
Спасибо всем за отклики! Буду пробовать все варианты !
Получить доступ к некоторому файлу на локальном диске и по протоколу HTTP (или FTP) - это не одно и тоже.
Про это я "догадываюсь" :) , но
меня немного смутило то, что я пробовал доступ по протоколу TCP/IP , указывая имя файла типа:
\\111.111.111.111\ddd.txt
В этом случае здесь все работает - и это, замечу, не локальный комп! Поэтому и "родилась" идея в таком же варианте получить доступ к файлу в глобальной сети.
Предвижу вопрос "А как же Блокнот, он же умеет?"
"Старичок" ты, Дед Пахом , но не оракул! - такого вопроса не будет! :)

Алексей
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7373
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Re: Invalid FileName (45)

Сообщение Игорь Столяров »

Алексей- Софт-Центр писал(а): \\111.111.111.111\ddd.txt В этом случае здесь все работает - и это, замечу, не локальный комп!
Да, но и доступ к файлу на этом компьютере производится не по протоколу HTTP ...
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2329
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 18 раз

Re: Invalid FileName (45)

Сообщение Губин Игорь »

Алексей- Софт-Центр писал(а):меня немного смутило то, что я пробовал доступ по протоколу TCP/IP , указывая имя файла типа: \\111.111.111.111\ddd.txt
Не путай, одно дело доступ средствами файловой системы к файлу по "сети" как к расположенному на диске, пусть и удалённом, а совсем другое, доступ к файлу по протоколу http/ftp
Это я только кажусь дураком! На самом деле я полный идиот!
Алексей- Софт-Центр
Ветеран
Сообщения: 390
Зарегистрирован: 26 Август 2009, 12:41
Откуда: Moscow
Контактная информация:

Re: Invalid FileName (45)

Сообщение Алексей- Софт-Центр »

Добрый день!

Да, это я уже понял!

Но, теперь в процессе возник второй вопрос:
Кларион 6, АВС.
В АРР-ке уже есть несколько External proc, находящихся в библиотеке Setupapi.lib
В эту же Арр я хочу добавить процедуру HttpDownloadFile из библиотеки cshtpav6.lib, НО !!!!!!
при добавлении , новая процедура цепляется к модулю существующей библиотеке Setupapi.lib и никак не дает изменить ее на
cshtpav6.lib !

Алексей
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7373
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Re: Invalid FileName (45)

Сообщение Игорь Столяров »

В среде Clarion: Procedure -> Сhange module ...

Но главное не это. Абсолютно нет необходимости добавлять функции из внешних DLL как external процедуры в APP.
Вполне достаточно добавить в Global MAP описание:

Module('CSHTPAPI')
HttpDownloadFile(*CSTRING lpszLocalFile,*CSTRING lpszFileURL,LONG nTimeout,LONG dwOptions,*HTTPTRANSFERSTATUS lpStatus,LONG lpfnEventProc,LONG dwParam),LONG,PASCAL,RAW,NAME('HttpDownloadFileA')
end

ну и не забыть прилинковать к APP файл cshtpav6.lib .... и далее в любом месте APP вызывать HttpDownloadFile по имени.
Добавление HttpDownloadFile как EXTERNAL PROCEDURE сделает то же самое, только в CST таких методов сотни и это сильно утяжелит APP ... К чему ?
За теми кто отстал - не возвращаться. (С) Кодекс
Алексей- Софт-Центр
Ветеран
Сообщения: 390
Зарегистрирован: 26 Август 2009, 12:41
Откуда: Moscow
Контактная информация:

Re: Invalid FileName (45)

Сообщение Алексей- Софт-Центр »

Добрый день!
Пробую вариант :
LocalFile1 = 'D.D'
HTTP_TIMEOUT=3000
URL1 = 'http://www.soft-center.ru/papa/data.php'
stop(HttpDownloadFile(LocalFile1,URL1,HTTP_TIMEOUT,HTTP_OPTION_NOCACHE,HTTPTRANSFERSTATUS,HttpEventDelegate,l3))
Выдает 0.
А вот что не отрабатывает?

Алексей
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7373
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Re: Invalid FileName (45)

Сообщение Игорь Столяров »

Как говорит один мой друг-проктолог: "Не телефонный разговор - это уже надо смотреть ..." ;)

Ное если таки посмотреть справку к CST то для того, что бы получить текст ошибки в голову приходит следующая процедура:

GetHTTPError Procedure

Loc:HTTP_Error cString(128)
Loc:HTTP_EBuffer long
Loc:HTTP_CodError long

Code

Clear(Loc:HTTP_Error)

Loc:HTTP_CodError = HttpGetLastError()
Loc:HTTP_EBuffer = 128
If HTTPGetErrorString(Loc:HTTP_CodError,Loc:HTTP_Error,Loc:HTTP_EBuffer) = 0
Loc:HTTP_Error = 'Неизвестная ошибка обмена данными с HTTP сервером !'
end

Return(Loc:HTTP_Error)

Добавь и вызови сразу после функции загрузки, ну например как: Message(GetHTTPError()) и все тайное станет явным ... ;)
P/S: только убери "жесткую" остановку работы программы стопом ...
За теми кто отстал - не возвращаться. (С) Кодекс
Алексей- Софт-Центр
Ветеран
Сообщения: 390
Зарегистрирован: 26 Август 2009, 12:41
Откуда: Moscow
Контактная информация:

Re: Invalid FileName (45)

Сообщение Алексей- Софт-Центр »

Добрый день!

"Не выходит каменный цветок у Данилы..." (с) Сказание!

Ошибка возвращает код 0 !
:oops:

Алексей
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7373
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Re: Invalid FileName (45)

Сообщение Игорь Столяров »

Ну видимо не судьба. Или не инициализирована библиотека перед вызовом функции.

If HTTPInitialize(CSTOOLS6_LICENSE_KEY,0) <> False
If HttpDownloadFile( ...
end
HTTPUnInitialize()
end
За теми кто отстал - не возвращаться. (С) Кодекс
Ответить