Laboratory of Mobile Agricultural Chemicals Searcher
携帯農薬検索実験室

研究会

  ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索  
710 / 1063 <前へ | 次へ>

〔354〕Excel 読み込み高速化
 Hidemi Oya WEB  (06/06/25 16:35)

引用なし
   kabe さん、こん**は。Hidemi Oya です。

>Excel入出コンポのサンプルどおり、TStringListに全部読み込んだ後に、SQLite に書き込んでいます。
 TStringList は、件数が増えると Add が目に見えて遅くなります。データの行データを全て読み込むのはちょっときついです。1行分の列データを保存する程度なら、それほど遅くありません。
 ってことで、1行分のデータを読み込むたびに INSERT 文を発行した方が高速化できる可能性が高いです。

>ReadCellイベントでうまくデータが拾えず挫折しています。(;_;
 私も細かくは検証していませんが、それなりに問題なさそうに思えましたが…。具体的に、どのようなデータが読めないのでしょう?
 サンプルだと、Col = 0 の時に行が変わったと判断して INSERT 文を発行していますが、Col = 0 にデータがない場合は、これだとダメですね。適用データは必ず登録番号があるのでこれでも大丈夫だと思いますが、Row 番号をメモリに保存しておいて、その値と現在の Row 番号が異なったら INSERT 文を発行する方が確実です。

>>FRow.DelimitedText := Data + ',"","","","","","","","","","","","","","","","","","",""';
>0列目で最初に列数分、初期化すればいいんですね。
 最初は OnReadCell イベントが発生するたびに単純に Add してたんですが、これだと列番号とデータが合いませんでした。それで、セルにデータがない時は OnReadCell イベントが発生しないことに気が付いた次第です(^_^;)。で、先にデータ領域を用意しておく方法として、これが最も単純な方法かなあと…。
 string の配列を用意しておいても良いのですが、あとでクォート付きカンマテキストに変換することを考えると、TStringList を使った方が楽ですから(速度的には不利になるかもしれませんが)。QuoteChar をシングルクォートにしておいて、CommaText ではなく Delimited テキストを使用することにより、空白データもそのまま初期化できますし…。なお、整数データの部分は、ダブルクォートなしにすれば OK です。


〔327〕ACFinder 060620版 kabe (06/06/20 23:21)
〔332〕Re:ACFinder 060620版 Hidemi Oya (06/06/21 16:06)
〔333〕SQL ステートメント制限 Hidemi Oya (06/06/22 11:45)
〔335〕Re:SQL ステートメント制限 kabe (06/06/22 22:46)
〔337〕正規表現拡張構文 Hidemi Oya (06/06/23 0:56)
〔338〕Re:正規表現拡張構文 Hidemi Oya (06/06/23 13:31)
〔341〕Re:SQL ステートメント制限 s_kobayashi (06/06/23 22:02)
〔342〕「キング」対応パターン Hidemi Oya (06/06/24 0:05)
〔343〕テーブルの構成 kabe (06/06/24 1:03)
〔346〕Re:テーブルの構成 Hidemi Oya (06/06/24 12:04)
〔347〕Re:テーブルの構成 kabe (06/06/24 17:24)
〔348〕Re:テーブルの構成 Hidemi Oya (06/06/24 21:56)
〔349〕Re:テーブルの構成 kabe (06/06/24 22:29)
〔350〕Re:テーブルの構成 Hidemi Oya (06/06/25 3:04)
〔352〕Re:テーブルの構成 kabe (06/06/25 15:03)
〔354〕Excel 読み込み高速化 Hidemi Oya (06/06/25 16:35) <<<
〔355〕Re:テーブルの構成 kabe (06/06/25 16:48)
〔356〕Re:テーブルの構成 Hidemi Oya (06/06/25 18:28)
〔357〕Re:テーブルの構成 kabe (06/06/25 21:25)
〔358〕Re:テーブルの構成 Hidemi Oya (06/06/25 22:41)
〔359〕Re:テーブルの構成 Hidemi Oya (06/06/25 23:17)
〔360〕Re:テーブルの構成 kabe (06/06/26 7:03)
〔361〕Re:テーブルの構成 Hidemi Oya (06/06/26 20:53)
〔351〕Re:テーブルの構成 kabe (06/06/25 14:24)
〔353〕Re:テーブルの構成 Hidemi Oya (06/06/25 15:53)
〔344〕Re:「キング」対応パターン s_kobayashi (06/06/24 8:42)
〔345〕Re:「キング」対応パターン Hidemi Oya (06/06/24 10:58)
〔334〕ACFinder 060622版 kabe (06/06/22 22:22)
〔336〕Re:ACFinder 060622版 Hidemi Oya (06/06/23 0:04)
〔339〕Re:ACFinder 060622版 kabe (06/06/23 19:46)
〔340〕Re:ACFinder 060622版 Hidemi Oya (06/06/23 20:02)

  ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索  
710 / 1063 <前へ | 次へ>
ページ:  ┃  記事番号:   
(SS)C-BOARD vv3.8 is Free.