Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
palat
1

Statistica 6 и dll на C++

26.04.2011, 23:53. Просмотров 1202. Ответов 1
Метки нет (Все метки)

Здравствуйте! Вытаскиваю массив из MetaTrader 4, потом обрабатываю его в dll на C++, подключаю dll'ки от Statistica 6 ( #import "statist.exe", #import "sta_TRE.dll"), из массива строю исходную таблицу, затем провожу ее анализ(строю деревья классификаций). После запуска эксперта происходит обработка, потом открывается Statistica 6 и выводит результаты анализа в таблице результатов. Вопрос в том, как вытащить значения из этой таблицы результатов. Понимаю что есть два способа 1) Сделать таблицу активной и обратится к ней как к исходной или 2)создать объект -
STATISTICA::_SpreadsheetPtr ИмяТаблицы и присвоить ему значения таблицы результатов. Но как это сделать незнаю все перепробовал! Прошу помоши! Заранее спасибо! Код от dll C++(для упрощения исходную таблицу не формировал из массива, а взял из файла Tree.sta )

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#import "statist.exe"
#import "sta_TRE.dll"
using namespace STATISTICA;
using namespace STAQuickTrees;
 
extern "C" __declspec(dllexport) void  __stdcall StaticCandle(char *arr[][2], int size_arr)
{
  ::CoInitialize(NULL);
  STATISTICA::_ApplicationPtr pApp("STATISTICA.Application");
  STATISTICA::_SpreadsheetPtr pSpreadSheet=pApp->Spreadsheets->Open("C:\\Tree.sta", true);// Задает исходную таблицу для анализа
  STATISTICA::_AnalysisPtr pBasDiag = pApp->Analysis(scQuickTrees);
//Задает параметры дерева для анализа 
  STAQuickTrees::TreStartupPtr TreeDialog = pBasDiag->Dialog;
  TreeDialog->PutVariables("12 | 2-11 |    | 1");
  TreeDialog->PutCategoricalPredictorCodes("0-1 | 0-1");
  TreeDialog->PutDependentVariableCodes("True-False");
  pBasDiag->Run();
  STAQuickTrees::TreResultsPtr TreeResult=pBasDiag->Dialog;
 
pBasDiag->GetRouteOutput(TreeResult->MisclassificationMatrix.GetInterfacePtr())->PutVisible(true); // Выводит таблицу результатов из которой нужно извлечь значения
 
}
А вот код излечения данных из исходной таблицы(Здесь все прекрасно работает):

C++
1
2
3
4
5
6
//считаем, что "pApp" - указатель на STATISTICA, открытие файла
STATISTICA::_SpreadsheetPtr pSpreadSheet=pApp->Spreadsheets->Open("C:\\Tree.sta", true);
//считаем, что "pSpreadsheet" указатель на Таблицу,  получение значения из таблице
pSpreadSheet->GetValue(1,1);
//считаем, что "pSpreadsheet" указатель на Таблицу, устанавливает значения в таблицу
pSpreadSheet->PutValue(1,1,"Tech");
И еще если есть у кого нибудь код обращения к библиотекам Статистики 6 без ее запуска( statist.exe ) напишите если не трудно. К библиотеке stadev32.lib не получается подключиться (ничего не происходит), а к stadev32.dll компилятор ругается на ошибку загрузки библиотеки(fatal error C1083) :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stadev32.h"
#pragma comment (lib, "stadev32.lib") 
 
 
//----------
typedef long  HSTAFILE;
typedef short HRES;
typedef HSTAFILE (*w_open) (LPCSTR);
typedef long  (*sgnc)(HSTAFILE);
typedef HRES (*scf)(HSTAFILE);
//----------
 
extern "C" __declspec(dllexport) void  __stdcall StaticCandle(char *arr[][2], int size_arr)
{
 
 
    HINSTANCE hSimplex = ::LoadLibrary(LPCWSTR("D:\\DLLMQL4\\MFC\\MFC\\stadev32.dll"));
        w_open op = (w_open)::GetProcAddress(hSimplex, "StaOpenFile");
        HSTAFILE handle = op("C:\\Tree.sta");
 
 
}
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2011, 23:53
Ответы с готовыми решениями:

Ошибка об отсутствии MSVCP140D.dll, ucrtbased.dll, CONCRT140D.dll, VCRUNTIME140D.dll
Добрый день, товарищи. Возникла проблема. Делаю программу с использованием openCV 3.1 на Visual...

Литература по STATISTICA
Можете что нибудь посоветовать?

Литература по Statistica
Подскажите пожалуйста книги по Statistica, для анализа эксперементальных данных, построение...

Аналог STATISTICA
Доброго времени суток, друзья. Мне необходимо определить функцию нелинейной (экспоненциальной)...

1
8 / 8 / 1
Регистрация: 22.02.2011
Сообщений: 187
16.08.2011, 09:08 2
palat, я неработал со statistica и не знаю какю
Скажи пожалуйста как писать роботы и индикаторы на c++ для meta trader(dll)?
Я умею писать для metastock а здесь как?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.08.2011, 09:08

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Нейронные сети (Statistica 12)
Делаю анализ цветов в программе Statistica 12. То есть, есть картинки размером в 1 пиксель, которые...

Нейронная сеть в STATISTICA
Все привет! Не являюсь программистом, встала задача получения нейронной сети в STATISTICA...

Перенос переменных в Statistica
Как из результата Нелинейного оценивания(Nonlinear estimation) Рисунок 1, перенести переменные...

Хороша ли программа STATISTICA?
Всем привет! У меня встал вопрос в выборе программы, для проведения статистического анализа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.