Страница 3 из 3
Re: Invalid FileName (45)
Добавлено: 05 Сентябрь 2011, 12:08
Губин Игорь
Вот потому-то я и не люблю "чёрные ящики".
Попробуй мой вариант
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
Алексей- Софт-Центр
Добрый день!
Большое спасибо, Игорь!
Алексей