Файлик большой(прикрепил), думаю может быть проблема, в том, что я наугад копировал символы(возможно первый символ и пропал).
А сделать обратную функцию - из win1251 в utf8 из этой можно?) А то по сути надо win1251 обработать функцией, и после этого искать по файлу в МТ4 - тогда будут находится строчки с русскими словами:)
В общем у меня вопрос по этой функции. Какие символы она не читает?
А то я сделал так:
Когда создается массив строк, то перед записью строку прогоняю через 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". Никакие особые среды разработки не нужны.
там было Э, спасибо за функцию.
Скиньте файлик, посмотрю что за дела.
Скиньте файлик, посмотрю что за дела.
Файлик большой(прикрепил), думаю может быть проблема, в том, что я наугад копировал символы(возможно первый символ и пропал).
А сделать обратную функцию - из win1251 в utf8 из этой можно?) А то по сути надо win1251 обработать функцией, и после этого искать по файлу в МТ4 - тогда будут находится строчки с русскими словами:)
В общем у меня вопрос по этой функции. Какие символы она не читает?
А то я сделал так:
Когда создается массив строк, то перед записью строку прогоняю через 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, то есть к примеру вот так:люди подскажите как сменить 5 знаков на 4 в терминале!
Зарегистрировать счёт в другом ДЦ где 4-х значные котировки
у меня были 4 знака. после установки совы стали 5 знаков. совы нет больше на счету а знаки как поменнятьь обратно?
у меня были 4 знака. после установки совы стали 5 знаков. совы нет больше на счету а знаки как поменнятьь обратно?
Чудес-то не бывает. Где вы видите четыре знака и не видите пять - начнём с этого.
у меня два счёта нат одном евродоллар 1.3469 а на втором где был советник теперь 1.36690
у меня два счёта нат одном евродоллар 1.3469 а на втором где был советник теперь 1.36690
1.3469 и 1.34690 сори )))) и так стало после советника какогото нипомню даже какого