掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
サイズの大きいテキストファイルの読込について (ID:1546)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
メモリに余裕があるなら、TStringList, THashedStringList, TMemIniFile 等 で一気にメモリに読み込んで処理するのが速いでしょう。 たかみちえさんも書かれているように読むだけならTMemIniFileが手軽ですね。 読み書きするのならD6から導入されたTHashedStringListが良いと思います。 (TMemIniFileは内部的には、THashedStringListが使われているそうです。) メモリに全部読み込むのはちょっと、と言う場合は、 初めに、インデックスを作っておくという手法があります。 手順としては下記のような感じです。 Readln で1行ずつ読み込みながら、[名前○]が見つかったら、名前とファイル ポジションをTStringListまたはTHashedStringListに「名前○=ファイルポジ ション」のように格納しておく。 検索するときは、名前を IndexOfName で検索して、ファイルポジションを読み 出し、ファイルポジションへ移動して、BlockRead か、TFileStream.Read で ファイルから読み込む。読み込むサイズは、次のファイルポジション−現在の ファイルポジションで取得する。 インデックスととして作ったTStringListは、ファイルとして保存しておけば、 次からそれを読み込むだけでインデックスとして利用できます。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.