wstring LongToStr(long lVal) { wstring strRet; TCHAR buff[20]; _ltot_s(lVal,buff,sizeof(buff)/sizeof(buff[0]),10); strRet = buff; return strRet; }
void UTBStr::ltot(long value, TCHAR * dest, size_t size, int radix) { #if _MSC_VER >= 1400 _ltot_s(value, dest, size, radix); #else UNREFERENCED_PARAMETER(size); _ltot(value, dest, radix); #endif }
void GetInfo(CONTACTINFO& ci, std::wstring& str) { if (!CallService(MS_CONTACT_GETCONTACTINFO, 0, (LPARAM)&ci)) { if (ci.type == CNFT_ASCIIZ) { str = ci.pszVal; mir_free(ci.pszVal); } else if (ci.type == CNFT_DWORD) { TCHAR buf[20]; _ltot_s(ci.dVal, buf, 10 ); str = buf; } else if (ci.type == CNFT_WORD) { TCHAR buf[20]; _ltot_s(ci.wVal, buf, 10 ); str = buf; } } }
/** * @param iValue - new field value. */ void CNumEdit::SetValue(INT32 iValue) { TCHAR szValue[64]; _ltot_s(iValue, szValue, countof(szValue), m_eNumFormat); SetValue(szValue, countof(szValue)); }
// // 機能 : 画面の更新 // // 機能説明 : // // 返り値 : BOOL // // 備考 : // BOOL CRsfSimpleForm::UpdateForm() { /// カレントレコード if (theApp.m_lngRsflId <= 0) return FALSE; /// 再生中のファイルを停止する // PlayStop(); // StatusBarのクリア CMainFrame *pFrame = (CMainFrame*)::AfxGetMainWnd(); pFrame->SetStatusText(_T(""), 0); pFrame->SetStatusText(_T(""), 1); // ラジオボタンの参照定義(DDXは扱いにくいので) // (クラスメンバーで宣言すると正常に動作しない) CButton *rd_rec = (CButton *)GetDlgItem(IDC_RDO_REC); CButton *rd_vrec = (CButton *)GetDlgItem(IDC_RDO_VREC); CButton *rd_discon = (CButton *)GetDlgItem(IDC_RDO_DISCONNECT); /// 初期設定 m_blAudio = FALSE; m_blChat = FALSE; m_blVideo = FALSE; m_blImg = FALSE; m_blBeep = FALSE; m_blPrg = FALSE; rd_rec->SetCheck(0); rd_vrec->SetCheck(0); rd_discon->SetCheck(1); /// 応答設定テーブルを選択 CTblRsfl tbl(theApp.m_strDBPath); CString strWhere; _TCHAR buf[64]; strWhere.Empty(); _ltot_s(theApp.m_lngRsflId, buf, sizeof(buf)/sizeof(buf[0]), 10); strWhere = strWhere + _T("ID") + _T("=") + buf; _ltot_s(RESPBASE_TYPE_SIMPLE, buf, sizeof(buf)/sizeof(buf[0]), 10); strWhere = strWhere + _T(" and ") + _T("lngRespType") + _T("=") + buf; if (tbl.SelectRec(strWhere) <= 0) { return FALSE; } /// 選択された応答設定RSFをロード CTPsetup tps(theApp.m_strDataFolder); if (tbl.lngDefaultFlag == 1) { m_strSenderId = _T("0"); // default setting } else { m_strSenderId = tbl.strSenderId; } tps.SetCallerId(m_strSenderId); UST_RSF *pst = tps.LoadRSF(); if (pst == NULL) return FALSE; /// 選択された応答設定RSFを参照 UST_RSF_RESP *pst_resp; for (int i = 0; i < pst->resp_cnt; i++) { pst_resp = pst->resp + i; //// BEEPのON/OFF if (pst_resp->beep > 0) { m_blBeep = TRUE; } switch(pst_resp->type) { case RESP_TYPE_PLAY: //// 再生内容のON/OFF if (pst_resp->play_type & RESP_PLAY_TYPE_AUDIO) { m_blAudio = TRUE; } if (pst_resp->play_type & RESP_PLAY_TYPE_VIDEO) { m_blVideo = TRUE; } if (pst_resp->play_type & RESP_PLAY_TYPE_IMAGE) { m_blImg = TRUE; } if (pst_resp->play_type & RESP_PLAY_TYPE_CHAT) { m_blChat = TRUE; } break; //// 録音内容のON/OFF case RESP_TYPE_RECORD: rd_rec->SetCheck(1); rd_vrec->SetCheck(0); rd_discon->SetCheck(0); break; case RESP_TYPE_VRECORD: rd_rec->SetCheck(0); rd_vrec->SetCheck(1); rd_discon->SetCheck(0); break; case RESP_TYPE_DISCONNECT: // 全ての設定で使用されるので、設定すべきことはない break; //// プログラム連携のON/OFF case RESP_TYPE_EXEC: m_blPrg = TRUE; break; default: break; } } /// 応答音声ファイルの時間表示 CString strPlayFile; CString strSize; CFileSpec fs; strSize = _T("[ 00:00 ]"); strPlayFile = tps.RsfAudioFileName(_T("$")); fs.SetFullSpec(strPlayFile); if (fs.Exist()) { CMainFrame *pFrame = (CMainFrame*)::AfxGetMainWnd(); CAudio *pAudio = pFrame->m_pAudio; pAudio->m_PlayFile = strPlayFile; float fTime = pAudio->GetPlaySize(); if (fTime > 0.0) { long lngTime = (long)(fTime+1); strSize.Format(_T("[ %02i:%02i ]"), (lngTime/60), (lngTime%60)); } } m_lblAudioSize.SetText((LPCTSTR)strSize); /// 応答ビデオファイルの時間表示 strSize = _T("[ 00:00 ]"); strPlayFile = tps.RsfVideoFileName(_T("$")); fs.SetFullSpec(strPlayFile); if (fs.Exist()) { CMainFrame *pFrame = (CMainFrame*)::AfxGetMainWnd(); CVideo *pVideo = pFrame->m_pVideo; pVideo->SetPlayFile(strPlayFile); float fTime = pVideo->GetPlaySize(); if (fTime > 0.0) { long lngTime = (long)(fTime+1); strSize.Format(_T("[ %02i:%02i ]"), (lngTime/60), (lngTime%60)); } } m_lblVideoSize.SetText((LPCTSTR)strSize); /// 画像ファイルのサイズ表示 strSize = _T("[ 0 Kbytes ]"); strPlayFile = tps.FindRsfImgFile(_T("$")); fs.SetFullSpec(strPlayFile); if (fs.Exist()) { strSize.Format(_T("[ %d Kbytes ]"), fs.FileSize()/1024); } m_lblImgSize.SetText((LPCTSTR)strSize); /// チャットテキストファイルのサイズ表示 strSize = _T("[ 0 bytes ]"); strPlayFile = tps.RsfChatFileName(_T("$")); fs.SetFullSpec(strPlayFile); if (fs.Exist()) { strSize.Format(_T("[ %d bytes ]"), fs.FileSize()); } m_lblChatSize.SetText((LPCTSTR)strSize); /// 連携プログラムコンボボックスを選択 CString str, strPrgId; strPrgId.Format(_T("%d"), pst_resp->exec_id); int idx = 0; for(int i = 0; i < m_aryPrgId.GetSize(); i++) { str = m_aryPrgId.GetAt(i); if (strPrgId == str) { idx = i; break; } } m_idxPrg = idx; /// 連携プログラムCSVファイルが存在しない場合、テンプレートCSVフォルダからコピー CString strBinDir, strFile; fs.SetFullSpec(FS_APPDIR); strBinDir = fs.GetFullSpec() + _T("bin"); // テンプレートCSVフォルダ for(int i = 0; i < m_aryPrgId.GetSize(); i++) { strPrgId = m_aryPrgId.GetAt(i); strFile = tps.RsfPrgFileName(_T("$$$$"), strPrgId); // 連携プログラムCSVファイル fs.SetFullSpec(strFile); if (!fs.Exist()) { fs.SetFullSpec(strBinDir + "\\" + strPrgId + ".csv"); if (fs.Exist()) { fs.FileCopy(strFile, FALSE); // 上書きはしない } } } UpdateData(FALSE); // DDX更新 return TRUE; }
int Start() { TCHAR buf[BUF_SIZE]; TCHAR bufWord[LEN_UINT_MAX]; int len; UINT x[BUF_SIZE/2]; bool *local_min; int xCnt = 0; int i, j; buf[len = Edit_GetText(hWndTextBox, buf, 65536)] = 0; i = 0; while (i < len) { j = 0; while (buf[i] == ' ' && i < len) i++; while (buf[i] == '0' && i < len) { i++; bufWord[0] = '0'; bufWord[1] = 0; j = 1; } while (buf[i] >= '0' && buf[i] <= '9' && i < len) { if (j == LEN_UINT_MAX - 1) return 1; bufWord[j] = buf[i]; bufWord[j + 1] = 0; i++; j++; } if (j) { x[xCnt] = _ttol(bufWord); if (x[xCnt] >= SQRT_UINT_MAX) return 1; xCnt++; } } if (xCnt == 0) return 0; local_min = new bool[xCnt]; if (xCnt > 1) // Проверка первого и последнего { if (x[0] < x[1]) local_min[0] = 1; else local_min[0] = 0; if (x[xCnt - 1] < x[xCnt - 2]) local_min[xCnt - 1] = 1; else local_min[xCnt - 1] = 0; } for (i = 1; i < xCnt - 1; i++) { if (x[i] < x[i - 1] && x[i] < x[i + 1]) local_min[i] = 1; else local_min[i] = 0; } buf[0] = 0; for (i = 0; i < xCnt; i++) { if (local_min[i]) x[i] = x[i] * x[i]; _ltot_s(x[i], bufWord, 10); _tcscat_s(buf, bufWord); _tcscat_s(buf, _T(" ")); } Edit_SetText(hWndTextBox, buf); delete[]local_min; return 0; }