#99 Article 1004 Posted at 1995/12/09 12:34:04 by 夢中ゆわ (MAP2717) [SAHOU.2]

Subject: Re: プログラミング作法・お題2 /995

Cでやってみました。
------------------- asuka.c -------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* MAPLE文字列の検索など、                   */
/* このファ~レンのアスカ皇女にかかれば      */
/* 造作も無い事なのぢゃ!                    */
/*                                           */
/* 嗚呼、また姫の悪い癖が…                  */
/*                                           */
/* なんか言ったか?             いえ、別に… */

#define LEN 2000                          /* とりあえず2千文字用意するのぢゃ */
int main(void)
{
    char linebuff[LEN],*p;                /* 行バッファとポインタなのぢゃ */
    unsigned long count=0;                /* MAPLEを数えるのぢゃ */
    FILE *fpread;                         /* ファイルポインタなのぢゃ */
    if ((fpread=fopen("LOG","r")) == NULL)/* ファイルを開くのぢゃ */
    {
         printf("ファイル\"LOG\"が見つからないのぢゃ。\n");
         exit(1);                         /* もうヤメなのぢゃ */
                                          /* そ、そんなアスカさま… */
    }
    printf("現在、検索中なのぢゃ!しばし待てぃっ\n");
    while (fgets(linebuff,LEN-1,fpread))  /* ファイルから1行読み込むのぢゃ */
    {
        putchar('.');
        p = linebuff;
        while (p = strstr(p,"MAPLE"))     /* 文字を探すのぢゃ */
        {
            count++;                      /* みぃつかったのぢゃ~ */
            p++;                          /* うれしいのぉ         */
        }
    }
    putchar('\n');
    if (ferror(fpread))                   /* ファイルが読めないのぢゃ */
    {
         printf("読めないのぢゃ~\n");
         printf("今迄に\"LOG\"は%ld個あったのぢゃ。\n",count);
         exit(2);                         /* もう、イ・ヤぢゃ~~ */
                                          /* いけませんアスカさま */
    }
    printf("\"LOG\"は全部で%ld個あったのぢゃ。\n",count);
    fclose(fpread);                       /* おわるのぢゃ */
}
------------------- end -------------------
工夫点。特になし(^^;)

ただ、大きいファイルだと、検索しているのかフリーズしてるのかわからず
気持ち悪いのでメータを入れたのぢゃ。
whileの()の中に文を入れるのぢゃ。でも割とメジャーかもしれんのぢゃ。
バッファとポインタが1対1なら一緒に宣言してしまうのぢゃ。

この課題って、各人の取るバッファの大きさが見所???(^^;)

#MAP2717 夢中ゆわ