Имя: Пароль:
1C
 
Сохранить страницу с курсом валют
0 xxTANATORxx
 
31.03.16
16:01
В чем проблема: при выполнении кода скрипта (см. ниже) текст страницы сохраняется, но без переносов строк

Как сделать чтоб текст сохранялся с переносами строк? как пор ссылке http://cbrates.rbc.ru/tsv/cb/840.tsv";


Sub btnCtrl_onclick()

    Dim objXMLHTTP, objADOStream


    Set objXMLHTTP = CreateObject("WinHTTP.WinHTTPrequest.5.1")

    objXMLHTTP.Open "GET", "http://cbrates.rbc.ru/tsv/cb/840.tsv";, false
    objXMLHTTP.Send()



    Set objADOStream = CreateObject("ADODB.Stream")

    objADOStream.Mode = 3
    objADOStream.Type = 1
    objADOStream.Open

    objADOStream.Write objXMLHTTP.responseBody

    objADOStream.SaveToFile "C:\Temp\file-11.txt", 2


End Sub
1 Юрий Лазаренко
 
31.03.16
16:26
(0) Покажи текст страницы, который у тебя в файле сохраняется.
2 xxTANATORxx
 
31.03.16
16:30
20000101    1    27.000020000102    1    27.000020000103    1    27.000020000104    1    27.000020000105    1    27.000020000106    1    26.900020000107    1    27.230020000108    1    27.230020000109    1    27.230020000110    1    27.230020000111    1    27.730020000112    1    28.440020000113    1    28.850020000114    1    28.650020000115    1    28.570020000116    1    28.570020000117    1
3 xxTANATORxx
 
31.03.16
16:31
(1)в блокноте выглядит как в (2)

как я понял блокноту нужен перевод сроки и перевод коретки
4 Мэс33
 
31.03.16
16:33
(3) а если objADOStream.Type = 2 ?
5 xxTANATORxx
 
31.03.16
16:33
(3)+как определить в каком формате сохраняется файл, и в какой нужно перевести, чтоб блокнот правильно распознал переносы строк ???
6 xxTANATORxx
 
31.03.16
16:34
(4)там страница в виде бинарника получается, тайп 2 не прокатывает
7 xxTANATORxx
 
31.03.16
16:42
или как можно указать кодировку при сохранении потока?
8 Юрий Лазаренко
 
31.03.16
16:43
(3) А просматривать его потом надо будет через блокнот или через браузер?
9 xxTANATORxx
 
31.03.16
16:48
(8)в блокноте, мне для юзверей, они полюбому туда полезут, в браузере он нормально отображается
10 lamme
 
31.03.16
16:50
(0)
а зачем ?
там же - в коде - есть разбор курса валют - те разбор строки на составляющие
11 Юрий Лазаренко
 
31.03.16
16:57
(9) Попробуй получить эту страницу через ТекстовыйДокумент, а не через WinHTTP. Создай новый текстовый документ, открой его, только вместо имени файла укажи "http://cbrates.rbc.ru/tsv/cb/840.tsv";, а потом сохрани содержимое уже локально.
12 xxTANATORxx
 
31.03.16
17:08
(11)а примерчик можно?
13 Записьдампа
 
31.03.16
17:27
(0)
1) Не надо смотреть блокнотом на этот файл. rbc отдает его с линуксовым переводом строки 0x0a, а блокнот ожидает виндовое 0x0d0a
2) Слишком заморочный код, используй более простое, типа:
set http = CreateObject("Microsoft.XmlHTTP")
http.Open "GET", "http://cbrates.rbc.ru/tsv/cb/840.tsv";, false
http.Send

set fso = CreateObject("Scripting.FileSystemObject")
set f = fso.CreateTextFile("D:\file-11.txt", true)
f.Write http.responseText
f.Close
14 Юрий Лазаренко
 
31.03.16
17:30
(12) Вот рабочий код:

    ЧтениеХТМЛ = Новый ЧтениеHTML;
    ЧтениеХТМЛ.ОткрытьФайл("http://cbrates.rbc.ru/tsv/cb/840.tsv";);
    ПостроительDOM = Новый ПостроительDOM;
    ДокументHTML = ПостроительDOM.Прочитать(ЧтениеХТМЛ);    
    ТД = Новый ТекстовыйДокумент;
    ТД.УстановитьТекст(ДокументHTML.Тело.ТекстовоеСодержимое);
    ТД.Записать("D:\1.txt");
15 Юрий Лазаренко
 
31.03.16
17:31
+(14) У меня в блокноте открывается нормально, с переносами
16 Записьдампа
 
31.03.16
17:42
(14) Как все сложно-то, в этом вашем 1С...
КопироватьФайл("http://cbrates.rbc.ru/tsv/cb/840.tsv";, "D:\file-11.txt");
17 Юрий Лазаренко
 
31.03.16
17:43
(16) Ваще красава
18 Записьдампа
 
31.03.16
17:43
(15) Потому что ты открываешь не оригинальный файл, а сформированный заново, при помощи ТекстовыйДокумент.
У которого по умолчанию переносы строк - виндовый
19 Записьдампа
 
31.03.16
17:45
(17) Там только через прокси могут быть сложности.
1С схемы http и ftp через какой-то встроенный curl поддерживает и весьма своеобразно относится к авторизации и т.п.

Microsoft.XmlHTTP гибче, но windows only
20 Юрий Лазаренко
 
31.03.16
17:45
(18) Ну да, мне ж так и надо. Его ж потом под виндой будут юзать.
21 Записьдампа
 
31.03.16
17:45
(20) Читать блокнотом?
22 Юрий Лазаренко
 
31.03.16
17:48
(21) Ну да, так ТС в (9) написал
23 xxTANATORxx
 
31.03.16
18:02
спасибо
проблема решена
24 Мэс33
 
01.04.16
07:40
(23) как решил-то, друже?
25 xxTANATORxx
 
01.04.16
09:34
(24)не популярным способом  )

открыл этот файл в том же скрипте, прочитал построчно и пересохранил новым потоком
26 Мэс33
 
01.04.16
09:39
(25) главное - результат достигнут.
27 xxTANATORxx
 
01.04.16
09:40
(25)+ у мя задача: машина с 1Ской в полностью закрытой сети, нужно автоматизировать получение курса валют

на машине с инетом скриптом читаю файл с РБК на флеху(в этой сетки 1Са нет)
переносим файл в закрытую сеть, обработкой загружаю курсы
при этом у меня Бух 77  )
28 Мэс33
 
01.04.16
09:41
(27) а почему сетки нет? что за несправедливость?
29 xxTANATORxx
 
01.04.16
09:48
(28)безопасники так решили, правильно с одной стороны
30 oleg_km
 
01.04.16
12:27
(29) А безопасно и контролируемо пробросить интернет в эту сетку у безопасников мозгов не хватает?
31 Записьдампа
 
01.04.16
12:39
(29) У вас там уже дырка в безопасности, размером с целую флешку
32 xxTANATORxx
 
01.04.16
13:06
(30)они же безопасники, а не админы )
(31)считают что это норма
33 Мэс33
 
01.04.16
13:19
(31) точно. Таскают туда сюда флешки (((. Капец.