Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 256

 
mzk_3om6u:

там было Э, спасибо за функцию.

Скиньте файлик, посмотрю что за дела.
 
Integer:

Скиньте файлик, посмотрю что за дела.


Файлик большой(прикрепил), думаю может быть проблема, в том, что я наугад копировал символы(возможно первый символ и пропал).

А сделать обратную функцию - из win1251 в utf8 из этой можно?) А то по сути надо win1251 обработать функцией, и после этого искать по файлу в МТ4 - тогда будут находится строчки с русскими словами:)

Файлы:
zulu2_1.txt  1082 kb
 

В общем у меня вопрос по этой функции. Какие символы она не читает?

А то я сделал так:

Когда создается массив строк, то перед записью строку прогоняю через utf8win1251(), вываливается куча ошибок (инвалид символ), поймать конкретную ошибку не получается, во все места натыкал

if (GetLastError()!=0) Print(GetLastError()); Но теперь поиск по русским словам работает:) Не думаю что какие-то особо важные символы потерялись, просто раздражает сам факт ошибок в логе, по этому поводу(их можно отключить - вывод в лог ошибок из этого блока?)

 

mzk_3om6u, с DOM-структурами легче всего работать в IE10 через VBScript/JScript, запускать wsf-скрипты можно через WinExec(). Вы пытаетесь конвертнуть тэги. Зачем? Можно спокойно работать через InnerText, в конце скрипта делаете запись в файл, в индюке файл принимаете. Вот пример:

'On Error Resume Next
Dim IE : Set IE = WSCript.CreateObject("InternetExplorer.Application")' это браузер
Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")' это файловая система компьютера
Dim fCsvName : fCsvName = Left(WSCript.ScriptFullName,len(WSCript.ScriptFullName)-3) & "csv"' далёко будем записывать данные
IE.visible = false' браузер в фоновом режиме
IE.navigate "адрес_страницы"
Do While IE.Busy' пока браузер не откроется
        WSCript.Sleep 500' ждём полсекунды
loop' в цикле
Do While элемент_страницы is Nothing' пока этот элемент страницы не загрузится
        WSCript.Sleep 500' будем ждать загрузки страницы
loop
I1 = IE.document.getElementsByClassName("anchor1").Item(18).getElementsByTagName("TD").Item(5).InnerText' парсим две ячейки
I2 = IE.document.getElementsByClassName("anchor2").Item(21).getElementsByTagName("TD").Item(5).InnerText
Set IE = Nothing' закрываем браузер
Set Csv = objFSO.OpenTextFile(fCsvName, 2, True)'открываем файл для записи
Csv.WriteLine I1 & ";" & I2' записываем туда содержимое двух ячеек
Csv.Close' закрываем файл
WSCript.Quit()' выключаем этот скрипт
В качестве элемент_страницы подойдёт любая из ячеек без InnerText, то есть к примеру вот так:
Do While IE.document.getElementsByClassName("anchor1").Item(18).getElementsByTagName("TD").Item(5) is Nothing' пока этот элемент страницы не загрузится
        WSCript.Sleep 500' будем ждать загрузки страницы
loop
Плюс такого подхода в том, что для WSH не нужен отдельный интерпретатор, потому что интерпретатор встроен в сам Windows едва ли не с Win3.1. Иными словами, скрипты запускаются сразу после блокнота.
То есть, проще говоря, к примеру, открываете простой блокнот, пишете
WScript.Echo "somebody"
WScript.Quit
Сохраняете как test.vbs, двойной клик по файлу - и вылетает сообщение с надписью "somebody". Никакие особые среды разработки не нужны.
 
люди подскажите как сменить 5 знаков на 4 в терминале!
 
Glina:
люди подскажите как сменить 5 знаков на 4 в терминале!
Зарегистрировать счёт в другом ДЦ где 4-х значные котировки
 
artmedia70:
Зарегистрировать счёт в другом ДЦ где 4-х значные котировки


у меня были 4 знака. после установки совы стали 5 знаков. совы нет больше на счету а знаки как поменнятьь обратно?
 
Glina:

у меня были 4 знака. после установки совы стали 5 знаков. совы нет больше на счету а знаки как поменнятьь обратно?
Чудес-то не бывает. Где вы видите четыре знака и не видите пять - начнём с этого.
 
artmedia70:
Чудес-то не бывает. Где вы видите четыре знака и не видите пять - начнём с этого.


у меня два счёта нат одном евродоллар 1.3469 а на втором где был советник теперь 1.36690
 
Glina:

у меня два счёта нат одном евродоллар 1.3469 а на втором где был советник теперь 1.36690


1.3469 и 1.34690 сори )))) и так стало после советника какогото нипомню даже какого

Причина обращения: