#include #include #include /* 定数 */ #define FNAME1 "uho.txt" /* 読み込むファイル名 */ #define FNAME2 "yaranaika.txt" /* 吐き出すファイル名 */ /* 関数のプロトタイプ宣言 */ int split_date(char* buf); int split_saba(char* bluefish); /*グローバル変数として宣言*/ FILE *fp1,*fp2; /* ファイルポインタ */ char saba[20]; /*鯖名(.2ch.net削除前)*/ char bluefish[20]; /*鯖名(.2ch.net削除後)*/ /* main関数 */ int main(void) { /* 変数宣言 */ char buf[512]; /*uho.txtから読み込むデータのための配列*/ /*uho.txtを読み込みモードで開く*/ fp1 = fopen(FNAME1,"r"); if ( fp1 ==NULL) { printf("ファイルオープンに失敗したんです><\n"); return 1; } /*yaranaika.txtを上書きモードで開く*/ fp2 = fopen(FNAME2,"w"); if ( fp2 ==NULL) { printf("ファイルオープンに失敗したんです><\n"); return 2; } /*uho.txtから一行分のデータを読み込む*/ while(fgets(buf,256,fp1)!=NULL) { /*データの取り出し*/ split_date(buf); } /*uho.txtを閉じる*/ fclose(fp1); /*yaranaika.txtを閉じる*/ fclose(fp2); return 0; } /*split date関数*/ int split_date(char* buf) { char* token; /*トークン*/ char hanamogera[20]; /*ハナモゲラ*/ char test[20]; /*testのところ*/ char cgi[20]; /*read.cgiのところ*/ char board[20]; /*板名*/ char threadkey[20]; /*スレッドキー(文字列扱い)*/ char fourthreadkey[10]="";/*スレッドキー先頭3桁または4桁(文字列扱い)*/ char fivethreadkey[10]=""; /*スレッドキー先頭4桁または5桁(文字列扱い)*/ int len;/*スレッドキーの桁数*/ long keynumber; /*スレッドキー(数値扱い)*/ int fourkeynumber; /*スレッドキー先頭3桁または4桁(数値扱い)*/ int fivekeynumber; /*スレッドキー先頭4桁または5桁(数値扱い)*/ /*ハナモゲラ*/ token=strtok(buf,"/"); strcpy(hanamogera,token); /*空間のところはいらないのかなー*/ /*鯖*/ token=strtok(NULL,"/"); strcpy(saba,token); /*test*/ token=strtok(NULL,"/"); strcpy(test,token); /*read.cgi*/ token=strtok(NULL,"/"); strcpy(cgi,token); /*板*/ token=strtok(NULL,"/"); strcpy(board,token); /*スレッドキー*/ token=strtok(NULL,"/"); strcpy(threadkey,token); /*スレッドキーの長さを取得*/ len=strlen(threadkey); /*スレッドキーの長さを判定して表示*/ if(len==9) { printf("スレッドキーは9桁ですね\n"); strncat(fourthreadkey,threadkey,3); strncat(fivethreadkey,threadkey,4); } else if(len==10) { printf("スレッドキーは10桁ですね\n"); strncat(fourthreadkey,threadkey,4); strncat(fivethreadkey,threadkey,5); } else { printf("スレッドキーの桁数を確認してみてください\n"); } split_saba(bluefish); /*スレッドキーを数値扱いにする*/ keynumber=atoi(threadkey); fourkeynumber=atoi(fourthreadkey); fivekeynumber=atoi(fivethreadkey); /*板名で分岐*/ if (strcmp(board,"news4vip") == 0){ printf("DinoSwiftさんVIPPERでないとしたら、wannabeを始められたのは技術的な興味からだろうか\n"); } else if(strcmp(board,"bike") == 0){ printf("ピタハハさんのサイトが外部板登録できないことは、%s板住人さんにとって大いなる損失だ\n",board); } else if(strcmp(board,"atopi") == 0){ printf("%s板のミラー保管がしっかりしているのは、板の特質が深く関係しているのではないか\n",board); } else{ printf("%s板ですかそうですか\n",board); } /*画面に出力*/ printf("%s %s %ld %d %d\n", bluefish,board,keynumber,fourkeynumber,fivekeynumber); /*yaranaika.txtに出力*/ fprintf(fp2,"%s %s %ld %d %d\n", bluefish,board,keynumber,fourkeynumber,fivekeynumber); return 0; } /*split_saba関数*/ int split_saba(char* bluefish) { char* dot; char two[10]; char net[10]; dot=strtok(saba,"."); strcpy(bluefish,dot); dot=strtok(NULL,"."); strcpy(two,dot); dot=strtok(NULL,"."); strcpy(net,dot); return 3; }