次のような列を持つファイルがあります。
- K
- K
- K
- SND
- P
- P
- SND
- K
...
列の長さは、たとえば 20000 です。次の C# コードを使用して、この列に沿って移動します。
while (true)
{
// Find SND
dest_cells = ex_cells.Find("SND", dest_cells, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlWhole, Excel.XlSearchOrder.xlByColumns,
Excel.XlSearchDirection.xlNext, false, false, false);
// END?
if (dest_cells.Row < row)
return false;
row = dest_cells.Row;
// Find K
dest_cells = ex_cells.Find("K", dest_cells, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlWhole, Excel.XlSearchOrder.xlByColumns,
Excel.XlSearchDirection.xlNext, false, false, false);
// END?
if (dest_cells.Row < row)
return false;
row = dest_cells.Row;
// Some operations
/*there were some operations, but I commented them. So they don't influence on performance*/
}
各連続検索の期間は増加しています。時間は計りませんでした。しかし、説明のためだけにしましょう: 最初の Find は 0.1 秒、2 番目は 0.2 秒、10 番目は 1 秒、20 番目は 2 秒などです。
なんで?理解できません