掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TFileStreamのランダム読み出しついて教えてください。 (ID:33498)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
環境はWindowsXP Delphi6personalです。 目的は、ファイル名を検索して、フルパスをテキストで HDDのファイルに書き込み(大抵は2〜5万件) あとで、手動で100番目、101番目、50番目などとランダムに指定して そこに書かれたファイル名を取得したいのです。 書き込みに関しては過去ログに「ファイルの入出力について」で見つけました。 書き込みは下記のコードでうまくいきました。 コレに対応する読む方法がうまくいきません。 var counter:integer; procedure TForm1.Button1Click(Sender: TObject); var fs:TFileStream; fn,s:string; begin fn := 'c:\TestData.txt'; if FileExists(fn) then fs := TFileStream.Create(fn,fmOpenReadWrite or fmShareDenyWrite) else fs := TFileStream.Create(fn,fmCreate or fmShareDenyWrite); try s := 'data : '+IntToStr(counter)+#13#10; // 改行を入れておく Inc(counter); fs.Seek(0,soFromEnd);// ファイルの末尾にシークして移動 fs.Write(PChar(s)^,Length(s)); // データを追加 finally fs.Free; end; end; 説明を探して読むのですが、先頭バイトを書くとか最後のヌルを書くときは+1とか sizeofをつかうとかLengthをつかうとか、古いコードで今はあまり使わないとか、 なんだか書く方式と読む方式が一致していないと いけないような感じを受けて説明がよくわかりません。 この目的に合う、ランダムリードの方法を教えて頂けませんか。 (今はListboxを使っています。リソースを消費するのでやめたいです) よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.