diff options
author | Neo2003 <none@none> | 2008-10-08 15:02:26 -0500 |
---|---|---|
committer | Neo2003 <none@none> | 2008-10-08 15:02:26 -0500 |
commit | e3079a1ba63ebe13a19e85db3f4e1e1a392a04ed (patch) | |
tree | 6157acbb7b8934591ea82bf8d99fd8c1ab198dca /contrib/dbcEditer/thOpenSource.cpp | |
parent | 28ee57b14c8f55e9f60f731a48ffe150b61aa53e (diff) |
[svn] * Removal of not needed old DBC tools
--HG--
branch : trunk
Diffstat (limited to 'contrib/dbcEditer/thOpenSource.cpp')
-rw-r--r-- | contrib/dbcEditer/thOpenSource.cpp | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/contrib/dbcEditer/thOpenSource.cpp b/contrib/dbcEditer/thOpenSource.cpp deleted file mode 100644 index 7df4debfe31..00000000000 --- a/contrib/dbcEditer/thOpenSource.cpp +++ /dev/null @@ -1,182 +0,0 @@ -//--------------------------------------------------------------------------- - -#include <vcl.h> -#pragma hdrstop - -#include "thOpenSource.h" -#include "dbcedit.h" -#include "stdio.h" -#include <dir.h> -#include <inifiles.hpp> -#include <process.h> -#pragma package(smart_init) -//--------------------------------------------------------------------------- - -// Important: Methods and properties of objects in VCL can only be -// used in a method called using Synchronize, for example: -// -// Synchronize(UpdateCaption); -// -// where UpdateCaption could look like: -// -// void __fastcall thOpenFile::UpdateCaption() -// { -// Form1->Caption = "Updated in a thread"; -// } -//--------------------------------------------------------------------------- - -__fastcall thOpenFile::thOpenFile(bool CreateSuspended) - : TThread(CreateSuspended) -{ - -} -//--------------------------------------------------------------------------- -void __fastcall thOpenFile::Execute() -{ - //---- Place thread code here ---- - //if(!Terminated){ - // FrmMain->LoadAndModify(FrmMain->OpenDialog1->FileName.c_str()); - // FrmMain->OpenOk=true; - //} - thEnd=false; - RunOpen(); - FrmMain->OpenOk=true; - thEnd=true; - -} -//--------------------------------------------------------------------------- -void __fastcall thOpenFile::RunOpen() -{ - LoadAndModify(FrmMain->OpenDialog1->FileName.c_str()); - //OpenOk=true; -} - -void thOpenFile::ReadAndModifyFromBuff(char *pBuff, DWORD dwSize, const char* pszFileName) -{ - char szErrorMsg[MAX_PATH]; - char szNewFileName[MAX_PATH]; - DWORD w; - TIniFile *ini; - - - TypePtr p(pBuff); - if('WDBC' != TAG(*p.dw)) - { - _snprintf(szErrorMsg, 512, "[%s]Not Wow's dbc file!", pszFileName); - ShowMessage(szErrorMsg); - return; - } - p.dw++; - - DWORD dwRows, dwCols, dwRowLen, dwTextLen; - dwRows = *p.dw++; - dwCols = *p.dw++; - dwRowLen = *p.dw++; - dwTextLen = *p.dw++; - - FrmMain->sgEdit->RowCount = dwRows+1; - FrmMain->sgEdit->ColCount = dwCols+1; - - for(int i=0; i<FrmMain->sgEdit->RowCount; i++){ - FrmMain->sgEdit->Cells[0][i]=IntToStr(i); - if(Terminated) return; - } - //设定列标题 - AnsiString iniSetFile=ExtractFilePath(Application->ExeName)+"BcdEditer.ini"; - AnsiString SectionName=ExtractFileName(FrmMain->CurrentOpenFile); - - ini = new TIniFile( iniSetFile ); - for(int j=0; j<FrmMain->sgEdit->ColCount; j++){ - FrmMain->sgEdit->Cells[j][0]= ini->ReadString(SectionName,"ColTitle"+IntToStr(j),IntToStr(j)); - //sgEdit->Cells[j][0]=IntToStr(j); - ColType[j]=ini->ReadInteger(SectionName,"ColType"+IntToStr(j),0); - if(Terminated) return; - } - delete ini; - - //int *ColType = new int[dwCols]; - - DWORD dwTextStartPos = dwRows*dwRowLen+20; - char* pTextPtr = pBuff + dwTextStartPos; - char pszTemp[MAX_PATH]; - float fTemp; - long lTemp; - DWORD i, j; - BOOL* pbString = new BOOL[dwRows*dwCols]; - float newTmp; - //int ColType; - - ini = new TIniFile( iniSetFile ); - - for(i=0; i<dwRows; i++) - { - for(j=0; j<dwCols; j++) - { - //SleepEx(0,0); - if(Terminated) return; - lTemp = *p.l; - newTmp = *p.f; - memcpy(&fTemp, &newTmp, 4); - - if(j==0) //ID - FrmMain->sgEdit->Cells[j+1][i+1]=IntToStr(lTemp); - else{ - - //ColType= ini->ReadInteger(SectionName,"ColType"+IntToStr(j),0); - - switch (ColType[j+1]) - { - case 0: //整型 - FrmMain->sgEdit->Cells[j+1][i+1]=IntToStr(lTemp); - break; - case 1: //浮点 - FrmMain->sgEdit->Cells[j+1][i+1]=FloatToStr(fTemp); - break; - case 2: //文本 文本类型只能看,不能编辑 - if(dwTextStartPos + lTemp < dwSize){ - pTextPtr = pBuff + dwTextStartPos + lTemp; - FrmMain->sgEdit->Cells[j+1][i+1]=pTextPtr; - }else{ - FrmMain->sgEdit->Cells[j+1][i+1]="该列不是文本"; - } - break; - default: //整型 - FrmMain->sgEdit->Cells[j+1][i+1]=IntToStr(lTemp); - } - } - p.c += 4; - } - } - - delete [] pbString; - //delete [] ColType; - delete ini; - -} - -void thOpenFile::LoadAndModify(const char * pszFileName) -{ - HANDLE hFile = NULL; - hFile = CreateFile(pszFileName, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL); - if(hFile == INVALID_HANDLE_VALUE)return; - - DWORD r = 0, nFileSize = 0; - nFileSize = GetFileSize(hFile, NULL); - char* pTmpBuf = new char[nFileSize]; - if(pTmpBuf==NULL) - { - CloseHandle(hFile); - return; - } - ReadFile(hFile, pTmpBuf, nFileSize, &r, NULL); - - FrmMain->CurrentOpenFile=pszFileName; - FrmMain->btSave->Enabled=true; - - ReadAndModifyFromBuff(pTmpBuf, nFileSize, pszFileName); - - //SAFE_DELETE_ARRAY(pTmpBuf); - delete [] pTmpBuf; - CloseHandle(hFile); - -} |