Что нового

Получать данные по DDE

ViktorSPB

Новичок
Сообщения
109
Репутация
0
Скажите, пожалуйста, есть ли тут кто-нибудь, кто пользуется DDE сервером или клиентом построенном на AutoIt?
Ссылка на него есть, скрипт с примером не запускается, хотя там, на англицком форуме вижу хвальбы и восторги. Сам не могу там вступить в дискуссию, языка не знаю на столько хорошо.
Библиотеки я поправил, макро устаревшие заменил, тем не менее вылетает скрипт по ошибкам, что переменные не продекларированы, некоторые вообще 1 раз в тексте встречаются в качестве аргумента.. В подключаемых константах его опять же нет..
Кто-нибудь пользует этот продукт?
 
Автор
W

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
ViktorSPB
У меня работало, т.е. Аутоит+аутоит.
И даже от квика удавалось что-то получать, но дело все в парсинге этих сообщений, не тот у меня уровень, да и возможности autoit явно ограничены.
Бросил эту идею в итоге.

А почему все-таки не использовать, например, C# или Дельфи?
Для последнего есть вообще готовые примеры - окошко с таблицей, которая получает данные. Не сложнее Autoit(если не проще), можно, наверное, сделать вывод в текстовый файл.

Или вот http://kbrobot.ru/mysql.html/ описание настройки вывод в MYSQL (еще хвалят MSSQL Server, вроде как быстрее). С ним Autoit работает, на этом форуме есть примеры: http://autoit-script.ru/index.php/topic,2073.0.html
Минус - кучу программ нужно устанавливать, а мне нужна была портабельность. Я такую связку тоже не доделал, там что-то было с Win7, да и надобность отпала.
 

ViktorSPB

Новичок
Сообщения
109
Репутация
0
Понял. Если что-то удавалось взять все-таки с квика, замечательно, значит и у меня получится. В Делфи или С# не хочу лезть, трудны они в восприятии для меня. А за Autot вижу будущее для себя в решении многих задач.
Насчет парсинга, да, надо будет разобраться. А вот по поводу возможностей AutoIt я бы говорил с осторожностью. Я писал в ветке про таблицу, какие результаты стали дотступны.. Сам я бы не скоро до них дошел, спасибо, что помогли мне специалисты-форумчане. Вдумайтесь, мне показали решение, которое 100 000 строк в несколько секунд обрабатывает. А то что я написал решением "влоб" то же самое счетало часа 4!
Так что пока - :IL_AutoIt_1:
 
Автор
W

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
В приложенном файле - скрипты по теме DDE, несколько измененные для работы с квиком. В квике используется метод "Poke", как-то так, поэтому остальные методы я закомментировал.

Запускаем SampleDDEServer.au3
В квике берем какую-нибудь табличку, в параметрах DDE-экспорта пишем:
DDE-сервер: "SampleDDEService"
Книга: "SampleTopic"

И жмем начать вывод - скрипт реагирует, пишется некая строка и в консоль размерность таблицы. Это все, что удавалось взять :smile:
Главное - парсинг этого формата XlTable (вот здесь есть краткое описание http://quikprofit.ru/quik-xltable-dde-mts/ )
и ответ для квика.
Еще на тему http://www.russian-trader.ru/forums/showthread.php?t=4830

Посмотрел бы на это кто-нибудь, кто поглубже разбирается в Autoit :-[
 

ViktorSPB

Новичок
Сообщения
109
Репутация
0
Вот спасибо! Хорошо бы... но у нас задача не поставлена. Я сейчас разбираюсь читаю описание функций, точнее, библиотек, которые используются в DDE. Думаю, когда глубже разберемся, нам в нюансах помогут. Дорогу осилит идущий)
 
Автор
W

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
Вопрос к тем, кто разбирается в структурах.

Периодически появляется желание все-таки написать подобие DDE-сервера для получения данных из торговой программы Quik.

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

У меня есть функция, которая получает данные, но парсинг формата XlTable, в котором эти данные передаются, пока выше моего понимания :(

Функция следующая-
Код:
_DdeGetDataAsStruct($hData, "dword tdtTable;int tdtFloat;int tdtString")

Это предварительный вариант

Здесь нужно правильно задать структуру, чтобы после записи в нее данных, можно было получить их. Проблема - с типами данных.

На этой странице,
http://www.kamynin.ru/archives/tag/dde-server
начиная со слов Fast Table формат (XlTable)
идет описание этого формата XlTable, с помощью которого Quik передает данные в DDE-сервера.

Не может ли кто нибудь на основании этог описания, правильно создать структуру?

Расширенное описание этого формата на английском - в приложенном архиве.

Также есть примеры таких DDE-серверов на Дельфи, C++, C#
 

ViktorSPB

Новичок
Сообщения
109
Репутация
0
Добрый день! Выложьте текстовик с какой-нибудь небольшой таблицей, полученной через ваш DDE и скриншот её внешнего вида. Посмотрю, что можно сделать.
 
Автор
W

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
ViktorSPB
Таблицу не получаю, получаю еще нераспарсенный набор данных, скорее всего это одна строка таблицы в виде структуры.
Проблема правильно задать типы данных для ее составляющих.

Т.к. я недостаточно хорошо знаю языки программирования, я не могу прямо перенести с них на Autoit пример такого DDE-сервера.
 

ViktorSPB

Новичок
Сообщения
109
Репутация
0
вот эти нераспарсенные данные мне и нужны. В текстовике, набор символов. А скрин, чтобы видеть исходные данные, что должно получиться.
 
Автор
W

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
ViktorSPB
Это не набор символов, это еще просто набор байт, который нужно преобразовать в символы по специальному алгоритму. Эти данные просто так нельзя даже показать или написать.

Я вот и прошу в посте выше, помочь кого-нибудь, кто в структурах разбирается, правильные типы данных подставить, по описанию этого формата

Да и после этого до работающего DDE-сервера далеко
 

ViktorSPB

Новичок
Сообщения
109
Репутация
0
Может, эти байты просто через
Код:
BinaryToString

? а потом символы парсить?
 
Автор
W

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
ViktorSPB
Нет, там гораздо сложнее
Выше я привел ссылку на страницу и выложил файл, где описан этот формат
Парсить нужно на основании этих описаний

Просто подумал, что здесь кто-нибудь подскажет по структурам быстрее, чем я соображу сам :-\

Кроме того, пока сервер получает данные только один раз - затем квик сообщает об ошибке, сервер слишком примитивный, чтобы вести полноценный обмен с квиком.
 
Верх