К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Проблемы с FSO

Гость
0 - 01.03.2016 - 06:10
Какие то неожиданные и непонятные проблемы с FSO. Формирую файл html, потом в другой проверяю его сушествование FSO.FileExists, упорно выдает "0" - файла нет. Начинаю юзать отладчик - возвращает -1 (это как я понимаю = true) Аналогичный трабл с FSO.GetFile, собственно из за ошибки в нем и стал проверять существование файла. В отладчике работает, без отладчика - посылает меня.Файл в каталоге есть, прекрасно открывается. До этого маялся с примитивным копированием и удалением файла, аналогичные косяки.
Винда -7, x64, 1C - 7.7
Может просто весна ?



1 - 01.03.2016 - 08:38
Может из за пробелов в имени или пути к файлу?
Гость
2 - 01.03.2016 - 09:09
0-USSR > "FSO.FileExists" - СОМ-вызов FSO, или к "семерошному" ФС?
У меня с ФС были неприятности из-за длины названия.
Гость
3 - 01.03.2016 - 10:14
(2)FSO.FileExists
(1)пробелов нет
Ситуация странная.
1 - в отладчике все работает
2 - Файлы записываются ADODDB Stream (это веб страница)
Если записать, а потом другой обработкой читать (или этой же но в закомментарить записб файлов), то все нормально, а вот если сразу после записи проблемы
Записывается так:
олеАДО.SaveToFile(ИмяВремФайла, 2);
олеАДО.Close();
4 - 01.03.2016 - 10:31
Цитата:
Сообщение от USSR Посмотреть сообщение
а вот если сразу после записи проблемы
Похоже записывается только в виртуале, а физическая запись (чтобы её можно прочитать с диска) происходит уже позже, при выходе из процедуры к примеру.
Не помнишь фишку? - В фоксе что-то похожее происходило, запись делаешь в таблицу, а она не обновляется, и приходилось делать какую-то промежуточную манипуляцию, типа команды brow/list без вывода на экран, тогда все появлялось и читалось. Как-то так, сейчас уже не помню в подробностях.
5 - 01.03.2016 - 10:37
Цитата:
Сообщение от USSR Посмотреть сообщение
В отладчике работает, без отладчика - посылает меня.
Отладчик как раз и выступает в роли промежуточного манипулятора, заставляющего процедуру сделать физическую запись на диск.
Гость
6 - 01.03.2016 - 10:54
(5) ну так как сделать ее (запись на диск) без отладчика ?)) Так то я тоже уловил закономерность
7 - 01.03.2016 - 11:06
(6) хз :)
может между записью и чтением попробовать еще сделать запись пустого файла в темп, или выполнить типа форма.обновить.
Доставай бубен :)
Гость
8 - 01.03.2016 - 11:19
(7)был бы бубен - достал бы ) Обидно, что все куски по отдельности отладил, а все вместе не работает. Какие то то необычные файлв записывает этот самый ADODDB Stream
Есть советы альтернативные по скачиванию из 7.7 web странички в файл? свой код приведу (взят с Мисты), он работает, но вот ...)
9 - 01.03.2016 - 11:52
Кстати, про необычные файлы, а код работает с другими файлами, не html? В Тотал фтп клиент эти сохраненные странички не может загрузить на хостинг, пишет ошибка. Думал на имя файла ругается, сохранил с именем 123.html - нифига не помогает, ошибка и всё. Другие файлы грузит, а эти какие-то необычные :)
Интересно бы разодраться, что в них необычного.
Гость
10 - 01.03.2016 - 12:18
(9)да я с FSО c 13 года. как Высоцкий с конем. Тут отладил сохранение web странички в файл. перекодировку в 1251 (Romeх-у спасибо), самопальный парсинг странички закупки и страничек извещения и заказчика, а все вместе - Вася. И именно на файловых процедурах. Если ничего не записывать, а натравить обработку на ранее созданные ей и отвергнутые ей же файлы, то все прекрасно
Имена очень простые - номер закупки + ".html"
11 - 01.03.2016 - 12:31
Какие еще мысли ... может не успевает записать, антивирус отключить.

Цитата:
Сообщение от USSR Посмотреть сообщение
да я с FSО c 13 года.
ага,- я все мели тут зна..ю ... - вот первая :)
12 - 01.03.2016 - 13:39
Поставь паузу между записью и чтением.
Гость
13 - 01.03.2016 - 15:09
ну причина действительно в паузе ) Только виноват не
ADODDB Stream, а ЗапуститьПриложение в котором запускал утилиту Ромикса по перекодировке файла из UTF-8 в 1251.
Поставил цикл и все работает. Но как то мне не нравится такое решение. Как на соплях
14 - 01.03.2016 - 15:17
13-USSR >Таймаут - это нормально.
Гость
15 - 01.03.2016 - 15:20
FlushBuffer или как там это в ФСО называется
Гость
16 - 01.03.2016 - 15:35
все равно еще не все заработало, но это уже другая песня )
(14)Просто как подобрать паузу, на одно машине ее достаточно, на другой будет мала
Гость
17 - 01.03.2016 - 15:37
(15)так тут ЗапуститьПриложение виновато. Страницы в UTF-8 и приходится их перекодировать, иначе не удалось мне нормально прочитать с помощью FSO. Как то неправильно это )
18 - 01.03.2016 - 15:43
Цитата:
Сообщение от USSR Посмотреть сообщение
а ЗапуститьПриложение в котором запускал утилиту Ромикса по перекодировке файла из UTF-8 в 1251.
WSH: пример конвертации текста из кодировки в кодировку
Гость
19 - 01.03.2016 - 15:53
(18)спасибо огромное )
Гость
20 - 01.03.2016 - 16:02
(18)это все отлично заработало) еще раз спасибо.
Со ссылками еще случается путаница, надо разбираться)
А я уж было утром в ступор впал, когда простые файловые операции отказались работать. Сразу мир вокруг становится такой неустойчивый ))
21 - 01.03.2016 - 16:04
(20)
))
можно и напрямую utf читать, вот примерчик на вбс:
Dim objStream, strData

Set objStream = CreateObject("ADODB.Stream")

objStream.CharSet = "utf-8"
objStream.Open
objStream.LoadFromFile("C:\Users\admin\Desktop\Art istCG\folder.txt")

strData = objStream.ReadText()

objStream.Close
Set objStream = Nothing


К списку вопросов






Copyright ©, Все права защищены