0

IETF インターネット ドラフトを解析し、タイトル、日付、プロトコル、著者の国などを抽出するプログラムを作成しています。これは以前にも行われたことがある (arkko.com) ことは承知していますが、これは少し自主的なプログラミング演習です。

私が抱えている問題はこれです:

いくつかのロジック、いくつかの基本的な解析、および

position = doc.tell()

私は、行を調べ、著者の出身国を探し、特定し、引き出し始める必要がある各文書のポイントを正確に特定しました。そして、私はその正確なポイントに到達できます:

doc.seek(position)

私が抱えている問題は...それで何?その位置に到達したので、任意の数の次の行の解析を開始するために知っているファイルと文字列のメソッドのすべての組み合わせを試しましたが、うまくいきません。

申し訳ありませんが、完全なコード スニペットはありませんが、あまりにも多くのコードを試しましたが、この時点で完全に間違ったツリーを鳴らしている可能性があります。

編集:実際、私はかなり単純な解決策を思いつきました:

ファイルを 1 回調べて、行を数え、解析を開始する必要がある行番号を書き留めました。

次に、もう一度ファイルを調べて行数を数え、行番号が最初の行番号よりも大きくなったら、解析を開始しました。

2 番目のカウントを回避するために doc.seek() を使用できたはずだと思うという点で、おそらく最もエレガントなソリューションではありませんが、機能します。これで、文字列とファイル操作の領域がわかりました。もう少し詳しく調べる必要があります。

4

1 に答える 1

1

電話をかけるだけでdoc.read(some_buffer_length)、文字列が返されます。

その文字列をどのように処理するかはまったく別の問題ですが、ファイルの先頭から来るかどうかは問題ではありません。

于 2013-06-03T15:21:10.337 に答える