Страница 3 из 3

Re: Invalid FileName (45)

Добавлено: 05 Сентябрь 2011, 12:08
Губин Игорь
Вот потому-то я и не люблю "чёрные ящики". :P

Попробуй мой вариант

Re: Invalid FileName (45)

Добавлено: 05 Сентябрь 2011, 12:36
Игорь Столяров
Губин Игорь писал(а):Попробуй мой вариант
Без разницы - все равно нужно думать, смотреть код, справку и т.д. ;)
Пользуйся MS Explorer для загрузки файлов - там все просто. :)

Re: Invalid FileName (45)

Добавлено: 05 Сентябрь 2011, 14:22
Алексей- Софт-Центр
Добрый день!

Первая малююююююсенькая победа! :)
Получил 1 в инициализации библиотеки!
После этого вызов скачивания файла (HttpDownloadFile)- вызывает ошибку приложения. Значит какие-то параметры не так описаны:

Прототип:
(*CSTRING,*CSTRING ,long,long,*GROUP,*GROUP,LONG ),LONG,PASCAL,RAW,NAME('HttpDownloadFileA')

Вызов:
r#=HttpDownloadFile(LocalFile1,URL1,HTTP_TIMEOUT,HTTP_OPTION_NOCACHE,HTTPTRANSFERSTATUS,HttpEventDelegate,l3)

Описание параметров:
localfile1 CSTRING(128)
URL1 CSTRING(128)
HTTP_TIMEOUT LONG
HTTP_OPTION_NOCACHE EQUATE(0001h)
HTTPTRANSFERSTATUS GROUP,PRE()
dwBytesTotal LONG
dwBytesCopied LONG
dwBytesPerSecond LONG
dwTimeElapsed LONG
dwTimeEstimated LONG
END
HttpEventDelegate GROUP,PRE()
hClient LONG
nEventId LONG
dwError LONG
dwParam LONG
END
l3 LONG

Алексей

Re: Invalid FileName (45)

Добавлено: 05 Сентябрь 2011, 20:52
Игорь Столяров
Алексей- Софт-Центр писал(а):Значит какие-то параметры не так описаны:
Логично. Я в FTP раздел форума сбрасывал все прототипы функций и структур CST для Clarion.
Все абсолютно рабочее и проверено многократо и кстати написано не мной, а самой CST когда оно еще считало, что Clarion будет развиваться как язык программирования.
Просто возьми их оттуда и вставь в программу.

Re: Invalid FileName (45)

Добавлено: 06 Сентябрь 2011, 13:46
Алексей- Софт-Центр
Добрый день!
Все заработало!!!!
Огромное спасибо ВСЕМ-ВСЕМ ИГОРЯМ !!!! :)
Особенно Игорю :) :)
Ошибка была в прототипе:
Было:
Прототип:
(*CSTRING,*CSTRING ,long,long,*GROUP,*GROUP,LONG ),LONG,PASCAL,RAW,NAME('HttpDownloadFileA')
Вызов:
r#=HttpDownloadFile(LocalFile1,URL1,HTTP_TIMEOUT,HTTP_OPTION_NOCACHE,HTTPTRANSFERSTATUS,HttpEventDelegate,l3)
Надо:
Прототип:
(*CSTRING,*CSTRING ,long,long,*HTTPTRANSFERSTATUS,HttpEventDelegate,LONG ),LONG,PASCAL,RAW,NAME('HttpDownloadFileA')
Вызов:
r#=HttpDownloadFile(LocalFile1,URL1,HTTP_TIMEOUT,HTTP_OPTION_NOCACHE,HTTPTRANSFERSTATUS,HttpEventDelegate,l3)

Алексей

Re: Invalid FileName (45)

Добавлено: 06 Сентябрь 2011, 15:47
Игорь Столяров
Губин Игорь писал(а):Попробуй мой вариант
Таки моя взяла ... ;)
Кларионист, это не сишник, он думать и колдовать над кодом по своей сути не любит. :)

Re: Invalid FileName (45)

Добавлено: 06 Сентябрь 2011, 16:07
Губин Игорь
Т.е. он лентяй и не способен написать даже простенького "Helllow World" без применения дизайнера...

Re: Invalid FileName (45)

Добавлено: 06 Сентябрь 2011, 16:28
Игорь Столяров
Губин Игорь писал(а):Т.е. он лентяй и не способен написать даже простенького "Helllow World" без применения дизайнера...
Он - кларионист. Впрочем, как и я ... ;)
Не лентяй, скорее программист нацеленный на результат, а не на процесс.
В программировании за деньги - это считается нормально.

Re: Invalid FileName (45)

Добавлено: 06 Сентябрь 2011, 16:36
Губин Игорь
А что, есть те, кто занимается программированием бесплатно?! Дайте мне таких сюда, у меня куча задач для них. Ладно, кончаем хохмить, пошли в клаталк.

Re: Invalid FileName (45)

Добавлено: 16 Сентябрь 2011, 14:58
Алексей- Софт-Центр
Добрый день!
Не сочтите за "наглость":
А есть ли HttpDownload - не в файл , а в переменную? :)


Алексей

Re: Invalid FileName (45)

Добавлено: 16 Сентябрь 2011, 15:18
Губин Игорь
См. моё решение. Там плевать куда. ;) Чем и хороши решения "в исходных кодах"

А так, ну кто тебе решает сохранить во временный файл, а потом его прочитать? Код для получения уникального имени временного файла нужен?

Re: Invalid FileName (45)

Добавлено: 16 Сентябрь 2011, 15:35
Игорь Столяров
Здесь как обычно два варианта ...

1. Есть такой метод в CST, если не ошибаюсь HttpGetData(..). Но придется инициализировать соединение, работать с областями памяти и т.д. :(
Не то что бы нельзя, просто если делаешь это не в "сях", то несколько затруднительно в отладке.

2. На мой взгляд проще загрузить одной командой CST файл в TEMP папку, перегрузить в строку и удалить.
Вариантов может быть масса - один из них я прикрепил к сообщению.
Строку лучше конечно инициализировать динамически, через NEW() по размеру уже загруженного файла.

Выбирай ... ;)

Re: Invalid FileName (45)

Добавлено: 18 Сентябрь 2011, 13:10
Алексей- Софт-Центр
Добрый день!

Большое спасибо, Игорь!

Алексей