小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

【大智慧】大智慧dll導(dǎo)出數(shù)據(jù)是binary格式,請(qǐng)問(wèn)如何修改源碼改為txt格式,可以為matlab調(diào)用?

 長(zhǎng)江黃鶴 2014-05-01
大智慧dll導(dǎo)出數(shù)據(jù)是binary格式源碼以下:
// FxjFunc.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"
#include "FxjFunc.h"
#include <string>
using namespace std;
#include <fstream>
#include<sstream>


BOOL APIENTRY DllMain( HANDLE hModule,
          DWORD  ul_reason_for_call,
          LPVOID lpReserved
           )
{
    switch (ul_reason_for_call)
  {
    case DLL_PROCESS_ATTACH:
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
      break;
    }
    return TRUE;
}

string DzhCode(string dm , const BOOL  bIndex)
{
  string mydm=dm;
  if(bIndex && mydm.sBUStr(0,3)=="000")
  {
    mydm="1";mydm=mydm.append(dm);
    return mydm;
  }
  else
  {
    return mydm;
  }
}

string int2Code(int iCode)
{
  char strvar[20];
  itoa(iCode,strvar,10);//指標(biāo)序號(hào),第三個(gè)參數(shù)10表示十進(jìn)制
  string mydm(strvar);
  if(iCode>1000000)//滬市指數(shù)1000001...
  {
    return mydm;
  }
  else
  {
    //char s[20];
    //sprintf(s,"00000%d",iCode);
    //return string(s);
    string zeros="";
    for(int j=strlen(strvar);j<6;j++) zeros.append("0");
    mydm=zeros.append(mydm);
    return mydm;
  }
}

string DzhDataType(DATA_TYPE datatype)
{
  switch(datatype)
  {
  case TICK_DATA:          //分筆成交
    return "TICK";
    break;
  case MIN1_DATA:          //1分鐘線
    return "MIN1";
    break;
  case MIN5_DATA:          //5分鐘線         
    return "MIN5";
    break;
  case MIN15_DATA:          //15分鐘線
    return "MIN15";
    break;
  case MIN30_DATA:          //30分鐘線
    return "MIN30";
    break;
  case MIN60_DATA:          //60分鐘線
    return "MIN60";
    break;
  case DAY_DATA:          //日線
    return "DAY";
    break;
  case WEEK_DATA:          //周線
    return "WEEK";
    break;
  case MONTH_DATA:          //月線
    return "MONTH";
    break;
  case MULTI_DATA:          //多日線
    return "NDAYS";
    break;
  case 12:           
    return "YEAR";
    break;
  case 13:           
    return "QUARTER";
    break;
  case 14:           
    return "SEMIYEAR";
    break;
  case 15:           
    return "15";
    break;
  case 1:           
    return "1";
    break;
  default:
    return  "NA";
  }
  
}

string fileName(string dm , const BOOL  bIndex,int varid,DATA_TYPE datatype)
{
    char strvar[20];
    itoa(varid,strvar,10);//指標(biāo)序號(hào),第三個(gè)參數(shù)10表示十進(jìn)制
    string filename ="FMLDATA\\";
    filename.append(DzhCode(dm,bIndex));
    filename.append(".");
    filename.append(strvar);
    filename.append(".");
    filename.append(DzhDataType(datatype));
    return filename;
}


__declspec(dllexport) int WINAPI WRITE(CALCINFO* pData)
{
  float f ;
  int nVar,nFirst,i;
  string code="";
  if(pData->m_pfParam1 && pData->m_pfParam2 && //參數(shù)1,2有效
    pData->m_nParam1Start>=0 &&          //參數(shù)1為序列數(shù)
    pData->m_pfParam3==NULL)      //有2個(gè)參數(shù)
  {
    nFirst = pData->m_nParam1Start;        //有效值
    code.append(pData->m_strStkLabel);
    f = *pData->m_pfParam2; nVar = (int)f;         
    if(nVar>0)
    {
      struct recordStruct{int dt;float value;} record;
      string filename=fileName(code,pData->m_bIndex,nVar,pData->m_dataType);
      ofstream fout(filename.c_str(),ios::binary);
      if(fout)
      {
        for(i=0;i<pData->m_nNumData;i++)
        {
          record.dt=pData->m_pData.m_time;
          record.value=pData->m_pfParam1;
          fout.write((char*)(&record),sizeof(record));
          pData->m_pResultBuf=pData->m_pfParam1;
        }
      }
      fout.close();
      return 1;
    }
  }
  return -1;
}

__declspec(dllexport) int WINAPI READ(CALCINFO* pData)
{
  float f;
  int nCode,nVar,i;
  string code="";

  if(pData->m_pfParam1 &&  pData->m_pfParam2 &&        //參數(shù)有效
    pData->m_nParam1Start<0 &&      //參數(shù)為常數(shù)
    pData->m_pfParam3==NULL)      //2個(gè)參數(shù)
  {
   
    nCode=(int) *pData->m_pfParam1;  //參數(shù)1
    if(nCode==0)
      code.append(pData->m_strStkLabel);
    else
      code=int2Code(nCode);

    f = *pData->m_pfParam2;
    nVar = (int)f;          //參數(shù)1
    if(nVar>0)
    {

      struct recordStruct{int dt;float value;} record;
      string filename=fileName(code,pData->m_bIndex,nVar,pData->m_dataType);
      ifstream fin(filename.c_str(),ios::binary);
      if(fin)
      {
        record.dt=0;record.value=0;
        fin.read((char*)(&record),sizeof(record));
        for(i=0;i<pData->m_nNumData;i++)
        {
          int dzhrq =  pData->m_pData.m_time;
          while(!fin.eof() && dzhrq>record.dt )
          {
            fin.read((char*)(&record),sizeof(record));
          }
          if(!fin.eof() && dzhrq==record.dt)
          //if(!fin.eof())
          {
            pData->m_pResultBuf=record.value;
          }
          if(fin.eof()) break;
        }
      }
      fin.close();

      return 1;
    }

  }
  return -1;
}
我已將write to txt修改以下,請(qǐng)問(wèn)如何修改read txt to strucy:
__declspec(dllexport) int WINAPI WRITE(CALCINFO* pData)
{
  float f ;
  int nVar,nFirst,i;
  string code="";
  if(pData->m_pfParam1 && pData->m_pfParam2 && //參數(shù)1,2有效
    pData->m_nParam1Start>=0 &&          //參數(shù)1為序列數(shù)
    pData->m_pfParam3==NULL)      //有2個(gè)參數(shù)
  {
    nFirst = pData->m_nParam1Start;        //有效值
    code.append(pData->m_strStkLabel);
    f = *pData->m_pfParam2; nVar = (int)f;         
    if(nVar>0)
    {
      
      string filename=fileName(code,pData->m_bIndex,nVar,pData->m_dataType);
          ofstream out(filename.c_str());
      if(out)
      {
          for(i=0;i<pData->m_nNumData;i++)
        {
          struct recordStruct{int dt;float value;} record;
                  record.dt=pData->m_pData.m_time;
          record.value=pData->m_pfParam1;
          pData->m_pResultBuf=pData->m_pfParam1;
                  out<<record.dt<<" "<<record.value<<endl;
        }
      }
      return 1;
    }
  }
  return -1;
}
謝謝股票論壇 www.55188.com

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多