アプリ版:「スタンプのみでお礼する」機能のリリースについて

yymmddhhmmss.txt(例.060125162541.txt)という形式のテキストファイルが
実行ファイルの直下の「txt」フォルダにたくさんあり、
txtファイルには下記のように情報があります。


172.20.1.31,2879,207.46.248.109,80
...GET /cgi-bin/~ref+ HTTP/1.1..Accept: */*..Referer: http:w
ww.j-motto.info/~.html...Accept-Langua: ja..Accept-Encording: gzip, de
flate..User-Agent: Mozila/4.00 (compatible~NT5.0)..Host: ad.jp.ap.vali
ecommerce~.........


1行目には「自IP」「自ポート」「相手IP」「相手ポート」がカンマ区切りで、
下の行にはパケット情報が書き込まれています。

YYYYMMDDの形で日付入力を待ち、それに該当する日付のファイルがあれば読み込んで、


(06/01/25)
[Get]
 /cgi-bin//cgi-bin/~ref+ HTTP/1.1
 
[Referer]
 http:www.j-motto.info/~.html

[User-Agent]
 Mozila/4.00 (compatible~NT5.0)

[Host]
 ad.jp.ap.valiecommerce~


のように表示させたいのです。
fscanf()等で読み込んで範囲を指定して一部だけを
表示させることは可能でしょうか?

A 回答 (2件)

fscanfのみで部分部分を読み込むのは困難ではないかと思います。


strstrなど、キーとなるワードを検索して、自分で切り出すような処理になると思いますが、
そうしたマッチング処理は、正規表現が扱える言語(例えば、Perl)を使うと楽できます。

標準ライブラリでは、ありませんが、Cでも扱える正規表現ライブラリ
(GNU regex.c とか)もあるので、そういうものの利用も考えると良いかも知れません
    • good
    • 0

1.ファイルのリストを作る


2.日付を入力させる
3.リストから一致するものを探す
4.そのファイルの内容を表示

という流れになりましょうか。
すべてのファイルで一行目の構造が同じなら、一行目をfgets()するなりして、strtok()で切り出すと良いかもしれません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!