URLDownloadToFile()使おう
DeleteUrlCacheEntry ()も使わないとキャッシュされたデータが何度もくるかもよ。
URLDownloadToFile()使おう
DeleteUrlCacheEntry ()も使わないとキャッシュされたデータが何度もくるかもよ。
読み
CFile f; CString writeData=""; if ( f.Open("test.txt",CFile::modeRead) == TRUE) { unsigned int flen = (unsigned int)f.GetLength(); unsigned char *data = (unsigned char *)malloc(flen+1); if ( data != NULL ) { f.Read(data,flen); data[flen] = 0; writeData = data; free(data); f.Close(); } }
書き
CFile f; CString writeData="abcdefg"; if ( f.Open("test.txt",CFile::modeCreate | CFile::modeWrite) == TRUE) { f.Write(writeData.GetBuffer(),writeData.GetLength()); f.Close(); }
map<int, string> m; ... if (m.count(n) == 0){ // ない }else{ // ある }
// 0 〜 4が入ったvector型変数numbersを用意 std::vector<int> numbers {0, 1, 2, 3, 4}; // aとbを除きたい int a = 1; int b = 3; // iteratorで内部要素を回し、該当値であればその要素を削除 for (auto itr = numbers.begin(); itr != numbers.end(); itr++) { if (((*itr) == a) || ((*itr) == b)) { numbers.erase(itr); break; } }
int main(){ std::vector<int> data; data.push_back(5); data.push_back(1); data.push_back(2); data.push_back(3); data.push_back(4); std::sort(data.begin(),data.end());//昇順ソート ...
CFileStatus fileStatus; if (CFile::GetStatus(filePath, fileStatus)) { // ファイルサイズ msg.Format(_T("ファイルサイズ:%d\n"), fileStatus.m_size); OutputDebugString(msg); ...
SQLite には、データを一括挿入するための特別な方法はありません。 データの挿入または更新時に最適なパフォーマンスを得るには、以下を行ってください。
トランザクションの使用。
同じパラメーター化コマンドの再利用。 後続の実行で、最初の実行のコンパイルを再利用します。
CSVで取れます。
ここから日本円での損益を簡単に計算するサービスはないものか
サンプル。指定シートの更新を行ってから待つ
クラス CQtEvents
Option Explicit Private WithEvents mQryTble As QueryTable Private mRefreshed As Boolean Private mCallback As String Public Property Set QryTble(ByVal QryTable As QueryTable): Set mQryTble = QryTable: End Property Public Property Get QryTble() As QueryTable: Set QryTble = mQryTble: End Property Public Property Let Refreshed(ByVal paramRefreshed As Boolean): mRefreshed = paramRefreshed: End Property Public Property Get Refreshed() As Boolean: Refreshed = mRefreshed: End Property Public Property Let Callback(ByVal SpecifiedProcName): mCallback = SpecifiedProcName: End Property Private Sub Class_Initialize() mRefreshed = False End Sub Private Sub mQryTble_BeforeRefresh(Cancel As Boolean) mRefreshed = False Debug.Print "*** mQryTble_BeforeRefresh(): Refreshed=" & Refreshed End Sub Private Sub mQryTble_AfterRefresh(ByVal Success As Boolean) mRefreshed = True Debug.Print "*** mQryTble_AfterRefresh(): Refreshed=" & Refreshed, "Success=" & Success If mCallback <> "" Then Application.Run mCallback, Success End Sub
メインコード
Dim TargetTable As ListObject: Set TargetTable = Sheets("hogehoge").ListObjects(1) TargetTable.DataBodyRange.Rows.Delete ' いったんテーブルのデータを全てクリア Dim TargetQueryTable As QueryTable: Set TargetQueryTable = TargetTable.QueryTable Dim classQtEvents As CQtEvents: Set classQtEvents = New CQtEvents Set classQtEvents.QryTble = TargetQueryTable Dim BeforeTime: BeforeTime = Timer Debug.Print "[Before] TargetQueryTable.Refreshing:" & TargetQueryTable.Refreshing, "Rows.Count: " & TargetTable.Range.Rows.Count classQtEvents.QryTble.Refresh BackgroundQuery:=False ' クエリ更新を待つ 'Debug.Print "[After] TargetQueryTable.Refreshing:" & TargetQueryTable.Refreshing, "Rows.Count: " & TargetTable.Range.Rows.Count 'Debug.Print "[Completed] " & Format(Timer - BeforeTime, "00:00:00.000")