削除する行数がわかっている場合は、ファイルから開始する場所(バイト単位)をどのように知ることができますか?

削除する行数がわかっている場合は、ファイルから開始する場所(バイト単位)をどのように知ることができますか?

read()特定の場所でファイルの作成を開始したいと思います。読み始める必要がある行の数はわかっていますが、read()は行を引数として使用せず、位置にバイトが必要です。

どの行から読み始めるかを知っていれば、どこから読み始めるかを計算するために使用できる方法はありますか?

ベストアンサー1

どんなトリックもありません。ファイル内のバイトの開始位置を計算できるため、バイトをスキップするのは簡単です。ただし、各文字が改行文字であるかどうかを確認しない限り、可変長行に対して計算を実行することはできません。

本を想像してみてください。 42ページを探したいときは、見なくても42ページまで数えることができます。明確なページ厚のために定規を使用して42ページの位置を測定することもできます。ただし、第5章を見つけるには、すべてのページを見て、新しい章が始まる場所を確認する必要があります。

ファイルには行インデックスがないため、一部の行をスキップする実装を使用しても、行を見つけるためにバイト単位で読み取る以外にサーフェスの後に機会がないため、すべての行を削除して目的のread行を削除することもできます。スキップします。

おすすめ記事