ショッピングモール  


【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は謹んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板1こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.3013

始めまして
投稿者---hina(2004/11/22 16:13:41)


コマンドラインから引数を渡して、findfirstで*.cを探して表示させる事には成功したのですが、よく考えてみると*.c以外の*.exeや*.objなどのファイルを検索する事ができません。どんな拡張子のファイルでも表示させられるようにするにはどうしたらよろしいでしょうか教えてください。
struct kouzoutai
{
time_t time_write;
_fsize_t size;
char name[243];
unsigned attrib;
};

struct kouzoutai *alloc(char *x);
void print(struct kouzoutai *a);
void kaihou(struct kouzoutai *m);

int main(int argc,char *argv[])
{
struct kouzoutai *d_file;
int atai;
int i;
for(i=0; i<argc; i++)
{
if((atai=strcmp(argv[i],"*.c"))==0)
{
break;
}
}
if(atai!=0)
{
printf("ファイルがありません。\n");
return 1;
}

d_file=alloc("*.c");

if(d_file==NULL)
{
return 1;
}
print(d_file);
kaihou(d_file);

return 0;
}

struct kouzoutai *alloc(char *x)
{
struct _finddata_t e_file;
struct kouzoutai *b_file;
long file;

if((file=_findfirst(x,&e_file))==-1L)
{
printf("カレントディレクトリにファイルは存在しません。\n");
return NULL;
}
b_file=(struct kouzoutai *)malloc(sizeof(struct kouzoutai));
if(b_file==NULL)
{
printf("メモリが確保できませんでした。\n");
return NULL;
}
b_file->size=e_file.size;
b_file->time_write=e_file.time_write;
b_file->attrib=e_file.attrib;
strcpy(b_file->name,e_file.name);

return b_file;
}

void print(struct kouzoutai *a)
{
struct tm *c_time;
c_time=localtime(&(a->time_write));

printf("%d年",c_time->tm_year+1900);
printf("%d月",c_time->tm_mon+1);
printf("%d日",c_time->tm_mday);
printf("%d時",c_time->tm_hour);
printf("%d分",c_time->tm_min);
printf("%d秒",c_time->tm_sec);
printf(" %10d %10s ",a->size,a->name);

printf((a->attrib & _A_ARCH )?" %10" "Y":"N");
printf((a->attrib & _A_HIDDEN )?"Y":"N");
printf((a->attrib & _A_NORMAL )?"Y":"N");
printf((a->attrib & _A_RDONLY )?"Y":"N");
printf((a->attrib & _A_SUBDIR )?"Y":"N");
printf((a->attrib & _A_SYSTEM )?"Y\n":"N\n");
}

void kaihou(struct kouzoutai *m)
{
free(m);
}





この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:始めまして 3014 nop 2004/11/22 16:23:32


No.3014

Re:始めまして
投稿者---nop(2004/11/22 16:23:32)


>d_file=alloc("*.c");

たぶんこう。

d_file=alloc("*.*");


# 「C言語ソース⇒HTML形式ツール」位使いましょうよ…。


この投稿にコメントする

削除パスワード

No.3015

Re:始めまして
投稿者---hina(2004/11/22 16:46:25)


>>d_file=alloc("*.c");
>
>たぶんこう。
>
>d_file=alloc("*.*");
>
ありがとうございました。
>
># 「C言語ソース⇒HTML形式ツール」位使いましょうよ…。
すみません。うっかり忘れていました。



この投稿にコメントする

削除パスワード

No.3016

Re:始めまして
投稿者---hina(2004/11/22 17:45:49)


アドバイス通りにやってみたのですが、2004年11月22日16時50分15秒  0  .NNNNYNとしか表示されませんでした。mainで新しくchar str[20]を宣言してscanf("%s\n",str);としてif((argv[i],"*.c"))==0)をif((argv[i],str))==0)に変えて、d_file=alloc("*.*");をd_file=alloc(str);に変えてみたのですがやはりうまくいきませんでした。何かよい方法はありませんでしょうか。


この投稿にコメントする

削除パスワード

No.3018

Re:始めまして
投稿者---REE(2004/11/22 19:35:10)


>アドバイス通りにやってみたのですが、2004年11月22日16時50分15秒  0  .NNNNYNとしか表示されませんでした。

なにが問題ですか?
「.」というディレクトリが正しく表示されていると思いますが?

※題名は具体的に!



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧




掲示板提供:Real Integrity