Invalid FileName (45)
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- Ветеран
- Сообщения: 390
- Зарегистрирован: 26 Август 2009, 12:41
- Откуда: Moscow
- Контактная информация:
Invalid FileName (45)
Добрый день!
Кларион 6, АВС.
1. Стартую блокнот. Открываю файл :
http://www.ya.ru
Все нормально открывается.
2. В словаре объявляю DOS (Binary) файл c именем !FN
3. Bо вставке "до открытия файлов" :
FN='http://www.ya.ru'
Стартую программу - выдает ошибку:
File http://www.ya.ru could not be opened. Error: Invalid file name (45). ...
В чем "засада"?
Алексей
Кларион 6, АВС.
1. Стартую блокнот. Открываю файл :
http://www.ya.ru
Все нормально открывается.
2. В словаре объявляю DOS (Binary) файл c именем !FN
3. Bо вставке "до открытия файлов" :
FN='http://www.ya.ru'
Стартую программу - выдает ошибку:
File http://www.ya.ru could not be opened. Error: Invalid file name (45). ...
В чем "засада"?
Алексей
-
- Активист
- Сообщения: 127
- Зарегистрирован: 01 Декабрь 2005, 20:47
- Откуда: Минск
- Контактная информация:
Re: Invalid FileName (45)
Привет!
для загрузки файлов http://*.html применяю шаблон File Explore (fe.tpl) можно скачать в привате, все грузится без проблем
для загрузки файлов http://*.html применяю шаблон File Explore (fe.tpl) можно скачать в привате, все грузится без проблем
Специализация - программы для образования, делопроизводство, складской учет
-
- Ветеран
- Сообщения: 390
- Зарегистрирован: 26 Август 2009, 12:41
- Откуда: Moscow
- Контактная информация:
Re: Invalid FileName (45)
Добрый день!
Stalker!
Спасибо за совет, но не нашел этот темплатейт на фтп!
Если можно , имя папки на фтп, или киньте в мыло info@soft-center.ru
Алексей
Stalker!
Спасибо за совет, но не нашел этот темплатейт на фтп!
Если можно , имя папки на фтп, или киньте в мыло info@soft-center.ru
Алексей
-
- Ветеран
- Сообщения: 390
- Зарегистрирован: 26 Август 2009, 12:41
- Откуда: Moscow
- Контактная информация:
Re: Invalid FileName (45)
Добрый день!
File Explorer - это немножко (или множко) не то, что надо!
Задача состоит в том, чтобы прочитать файл, находящийся на страничке сайта, типа :
http://www.yandex.ru/index.html
как обычный бинарный файл (DOS (bin))
Алексей
File Explorer - это немножко (или множко) не то, что надо!
Задача состоит в том, чтобы прочитать файл, находящийся на страничке сайта, типа :
http://www.yandex.ru/index.html
как обычный бинарный файл (DOS (bin))
Алексей
-
- Ветеран
- Сообщения: 390
- Зарегистрирован: 26 Август 2009, 12:41
- Откуда: Moscow
- Контактная информация:
Re: Invalid FileName (45)
Добрый день!
Скачать: чем?
(все это должно происходить в рамках программы)
Алексей
Скачать: чем?
(все это должно происходить в рамках программы)
Алексей
- Дед Пахом
- Старичок
- Сообщения: 3133
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 10 раз
- Поблагодарили: 28 раз
- Контактная информация:
Re: Invalid FileName (45)
Из первого попавшегося: http://www.clarionlife.net/ далее Файлы >> Internet, выбирайте что больше нравится.
С уважением, ДП
-
- Ветеран
- Сообщения: 390
- Зарегистрирован: 26 Август 2009, 12:41
- Откуда: Moscow
- Контактная информация:
Re: Invalid FileName (45)
Добрый день!
Дед Пахом: спасибо за советы ( и за те , которые впереди по этой теме - это чтобы не забыть потом сказать "спасибо" )
Или я чего-то не понимаю, или я чего-то не так прошу! (В любом случае виноват я )
Все предложенные варианты типа этого:
У меня другая ОСНОВНАЯ задача!
Что мне надо:
1. ( и единственное) Прочитать страницу сайта средствами клариона , используя обычный драйвер DOS (Binary).
И здесь у меня ОСНОВНАЯ проблема в том, что я не могу (не знаю, не умею) правильно указать имя файла (Index), чтобы кларион понял, что это страница в глобальной сети. Пробовал и:
FN='http://www.yandex.ru/index.html' и
FN='\\77.88.21.3\index.html' и
FN='file://www.yandex.ru/index.html' и
много других вариантов. В том числе просто давать команду copy (xcopy) для предварительного копирования в текстовый файл.
Везде выдает ошибку типа : неправильное имя файла!
Что мне не надо:
1. Открывать на экране страницу HTML
2. Разбирать HTML код
3. Открывать диалоговые окна для выбора нужной страницы
и т.д. и т.п.
Или это в принципе не возможно?
Алексей
Дед Пахом: спасибо за советы ( и за те , которые впереди по этой теме - это чтобы не забыть потом сказать "спасибо" )
Или я чего-то не понимаю, или я чего-то не так прошу! (В любом случае виноват я )
Все предложенные варианты типа этого:
НО МНЕ ЭТОГО НЕ НАДО!!!!!Для того, чтобы открыть страницу выполняется команда:
?OLE{'Navigate("file://' & CLIP(inFileName) & '")'}
Основой любого html-документа являются ссылки. И основная задача состоит в том, чтобы перехватить нажатие на ссылке в html-документе и выполнить свое действие.
У меня другая ОСНОВНАЯ задача!
Что мне надо:
1. ( и единственное) Прочитать страницу сайта средствами клариона , используя обычный драйвер DOS (Binary).
И здесь у меня ОСНОВНАЯ проблема в том, что я не могу (не знаю, не умею) правильно указать имя файла (Index), чтобы кларион понял, что это страница в глобальной сети. Пробовал и:
FN='http://www.yandex.ru/index.html' и
FN='\\77.88.21.3\index.html' и
FN='file://www.yandex.ru/index.html' и
много других вариантов. В том числе просто давать команду copy (xcopy) для предварительного копирования в текстовый файл.
Везде выдает ошибку типа : неправильное имя файла!
Что мне не надо:
1. Открывать на экране страницу HTML
2. Разбирать HTML код
3. Открывать диалоговые окна для выбора нужной страницы
и т.д. и т.п.
Или это в принципе не возможно?
Алексей
-
- ✯ Ветеран ✯
- Сообщения: 4983
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Re: Invalid FileName (45)
А попробуй в словаре явно указать полный путь и из словаря же посмотреть эту таблицу.
А ещё сдается мне, что нет файла http://www.yandex.ru/index.html. Страница рисуется в динамике. Можно взять какой-нибудь сайт, где явно лежит index.html и попробовать на нем.
А ещё сдается мне, что нет файла http://www.yandex.ru/index.html. Страница рисуется в динамике. Можно взять какой-нибудь сайт, где явно лежит index.html и попробовать на нем.
We are hard at work… for you.
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2329
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 18 раз
Re: Invalid FileName (45)
Если ты уверен, что файл именно в интернете, то действуешь неправильно.Алексей- Софт-Центр писал(а):И здесь у меня ОСНОВНАЯ проблема в том, что я не могу (не знаю, не умею) правильно указать имя файла (Index), чтобы кларион понял, что это страница в глобальной сети.
Т.е. надо изменить логику.
1. Скачиваешь файл из интернета на диск или в память
2. Организуешь его разбор или делаешь с ним всё, что хочется.
Глобальные переменные
Код: Выделить всё
HANDLE EQUATE(UNSIGNED)
INTERNET_OPEN_TYPE_DIRECT EQUATE(1)
INTERNET_OPEN_TYPE_PRECONFIG EQUATE(0)
INTERNET_OPEN_TYPE_PROXY EQUATE(3)
DWORD EQUATE(ULONG)
HINTERNET EQUATE(HANDLE)
Код: Выделить всё
Module('API')
InternetAttemptConnect(DWORD),DWORD,PASCAL
InternetCloseHandle(HINTERNET), BOOL, PASCAL, PROC
InternetOpen(*CSTRING,DWORD,<*CSTRING>,<*CSTRING>,DWORD),HINTERNET, RAW, PASCAL, NAME('InternetOpenA')
InternetOpenURL(HINTERNET, *CSTRING Url, <*CSTRING Headers>, DWORD, DWORD, DWORD), HINTERNET, RAW, PASCAL, PROC, NAME('InternetOpenUrlA')
InternetReadFile(HINTERNET, *?, DWORD, *DWORD),BOOL, RAW, PASCAL, PROC
End
Код: Выделить всё
hSession HINTERNET
hUrl HINTERNET
MyUrl CSTRING(255) ! имя файла для скачивания
BufferSize EQUATE(1024) ! Размер буфера для скачивания
Buffer Group ! Буффер для скачивания
BYTE,DIM(BufferSize)
End
BufferLength DWORD
BufferString STRING(Buffersize),Over(Buffer) ! Строка для удобства работы с буффером. Именно в неё BufferString [ 1 : BufferLength ] и попадает то, что ты скачал
Agent CSTRING('My Downloader') ! Название агента для сервера (т.е. вместо IE, Opera, Chrome, Mozilla...)
Код: Выделить всё
MyURL = Clip('http://...') ! имя файла
hSession = InternetOpen(Agent,INTERNET_OPEN_TYPE_PRECONFIG,,,0);
if hSession ! Связь установлена, сессия открыта
hUrl = InternetOpenUrl(hSession, myUrl,,0,0,0)
If hUrl ! Файл обнаружен и готов к чтению
Loop
Buffer = All('<0>')
InternetReadFile(hUrl, Buffer, Buffersize, BufferLength)
if BufferLength <> 0 Then ! Скачан очередной буфер в Buffer длиной BufferLength
! Тут ты делаешь с этим Buffer/BufferString всё, что сочтёшь нужным( пишешь в файл, присваиваешь строке...)
end
until BufferLength = 0
InternetCloseHandle(hUrl)
End
End
Это я только кажусь дураком! На самом деле я полный идиот!
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2329
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 18 раз
Re: Invalid FileName (45)
На самом деле глубоко фиолетово (т.е. без разницы), генерируется страница динамически или статически, т.к. это дело сервера, и клиенту подсовывается уже готовый результат работы.kreator писал(а):А попробуй в словаре явно указать полный путь и из словаря же посмотреть эту таблицу.
А ещё сдается мне, что нет файла http://www.yandex.ru/index.html. Страница рисуется в динамике. Можно взять какой-нибудь сайт, где явно лежит index.html и попробовать на нем.
Это я только кажусь дураком! На самом деле я полный идиот!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7373
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Re: Invalid FileName (45)
Полностью согласен с выше написанным. Получить доступ к некоторому файлу на локальном диске и по протоколу HTTP (или FTP) - это не одно и тоже.Губин Игорь писал(а): Если ты уверен, что файл именно в интернете, то действуешь неправильно.
Т.е. надо изменить логику.
1. Скачиваешь файл из интернета на диск или в память
2. Организуешь его разбор или делаешь с ним всё, что хочется.
Нужно грузить файл по протоколу на диск (например в TEMP) или в область памяти, и потом уже как-то получать доступ к его содержимому (text, binary, zip и т.д.)
Описанный ниже способ загрузки файла (страницы) по HTTP - рабочий, но есть проблемы работы через PROXY.
Если не хочешь сильно напрягаться - можно воспользоваться библиотекой Catalyst Socket Tools (есть в FTP разделе форума), там
все делается одной командой:
LocalFile_ = Clip(LongPath(System{Prop:TempPath})) & 'yandex.html'
URL_ = 'http://www.yandex.ru/index.html'
If HttpDownloadFile(LocalFile_,URL_,HTTP_TIMEOUT,HTTP_OPTION_NOCACHE) <> False
! Открываем LocalFile_ на диске как угодно ...
end
P/S: код писал на память - могут быть орфографические АшиПки - лучше проверить по справке CST ...
За теми кто отстал - не возвращаться. (С) Кодекс
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2329
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 18 раз
Re: Invalid FileName (45)
По поводу прокси - что есть, то есть. Но тут уж (как меня в своё время просвещали) вручную настроиться на все виды прокси не проще, чем отловить все глюки в виндоус
Каталист, наверное, более "умный" в этом смысле.
Каталист, наверное, более "умный" в этом смысле.
Это я только кажусь дураком! На самом деле я полный идиот!
- Дед Пахом
- Старичок
- Сообщения: 3133
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 10 раз
- Поблагодарили: 28 раз
- Контактная информация:
Re: Invalid FileName (45)
Предвижу вопрос "А как же Блокнот, он же умеет?" Ну и? Блокнот умеет, а Калькулятор не умеет, и что?
С уважением, ДП
- Игорь Столяров
- Ветеран движения
- Сообщения: 7373
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 13 раз
- Поблагодарили: 48 раз
Re: Invalid FileName (45)
Да, причем решение великолепное по свое простоте. Он использует текущие настройки прокси Windows для MS Explorer ...Губин Игорь писал(а):Каталист, наверное, более "умный" в этом смысле.
За теми кто отстал - не возвращаться. (С) Кодекс