C言語関係掲示板

過去ログ

No.909 ファイルのいらない行の読み飛ばし

[戻る] [ホームページ]
No.11525

ファイル読込みについて
投稿者---くじら(2004/01/06 14:22:45)


テキストファイルからデータを読込みたいのですが、その中に読込みたくない行が
ある場合どうしたらいいのでしょうか…

例えば…

レコード数:3件 // この行はいらない
02 03 0214 00004890
09 08 0195 00002953
35 03 0548 00015932

↑のような場合どうすればいいんでしょうか?
わからなくて困ってますTT

No.11527

Re:ファイル読込みについて
投稿者---YuO(2004/01/06 15:08:21)


>テキストファイルからデータを読込みたいのですが、その中に読込みたくない行が
>ある場合どうしたらいいのでしょうか…

読み飛ばせばよいのでは?


No.11529

Re:ファイル読込みについて
投稿者---くじら(2004/01/06 16:55:22)


>読み飛ばせばよいのでは?

どうやれば読み飛ばせるかわからないんです…



No.11530

Re:ファイル読込みについて
投稿者---nm(2004/01/06 17:22:55)


>どうやれば読み飛ばせるかわからないんです…

この質問めちゃめちゃ多いですね。はっきり言ってFAQです。
# ちゃんと検索すればヒットするはず、という意味ですよ。

読み飛ばす=読み込むけど利用しないで、次を読む
それだけです。

No.11533

Re:ファイル読込みについて
投稿者---くじら(2004/01/06 22:02:16)


>この質問めちゃめちゃ多いですね。はっきり言ってFAQです。
># ちゃんと検索すればヒットするはず、という意味ですよ。

過去ログ含め、検索したりしましたがそれらしきヒットがありません…
「読込み」「読みこみ」「読込み」等
キーワードが悪いのでしょうか^^;


>読み飛ばす=読み込むけど利用しないで、次を読む
>それだけです。

理屈はわかってるのですが…
例えばfgetsでいらない一行を読み、その読込んだものは何もせずに
次を読込むという形でいいのでしょうか?

くだらない質問ですいませんTT

No.11534

Re:ファイル読込みについて
投稿者---かずま(2004/01/06 23:00:58)


    while (fgets(buf, sizeof buf, fp))
        if (sscanf(buf, "%d%d%d%d", &a, &b, &c, &d) == 4)
            printf("%02d %02d %04d %08d\n", a, b, c, d);


No.11539

Re:ファイル読込みについて
投稿者---nop(2004/01/07 13:09:06)


>レコード数:3件 // この行はいらない
>02 03 0214 00004890
>09 08 0195 00002953
>35 03 0548 00015932

以下、簡単なコード例をば…
# 考え方を示すためなので、要点以外省略

[その1]
fgets(buf,sizeof(buf),fp);  /* 読み飛ばし */
while( fgets(buf,sizeof(buf),fp)!=NULL )
{
    /* 処理 */
}

[その2]
while( fgets(buf,sizeof(buf),fp)!=NULL )
{
    if( isdigit(*buf) )  /* 先頭文字は数字か? */
    {
        /* 処理 */
    }
}