ショッピングモール  


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

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

 詳しくはこちら



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

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


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

No.3074

オプション指定
投稿者---hina(2004/11/26 15:13:53)


コマンドラインにc:\*.*とargv[1]番目に引数を渡してやると_A_SYSTEMの属性のファイルを表示させないことには成功したのですが、オプションで-sと指定したら_A_SYSTEMの属性のファイルを表示しないようにしたいのですがうまくいきません。よい方法があれば教えていただけないでしょうか。
<pre>
struct kouzoutai
{
time_t time_write;
_fsize_t size;
char name[254];
unsigned attrib;
struct kouzoutai *next;
};

struct kouzoutai *alloc(char *x);
void print(struct kouzoutai *f);
void kaihou(struct kouzoutai *ptr );

int main(int argc,char *argv[])
{
struct kouzoutai *d_file;
int i;
char kakunou[260];
d_file = NULL;

for(i=1;i&lt;argc;i++)
{
if(argv[i][0]=='-')
{
switch(argv[i][1])
{
case's':
}
}
else
{
strncpy(kakunou,argv[i],259);
}
}

d_file = alloc(kakunou);
if(d_file == NULL)
{
return 1;
}

print(d_file);
kaihou(d_file);

return 0;
}

{
struct _finddata_t e_file;
struct kouzoutai *root;
struct kouzoutai *itr;
struct kouzoutai *b_file;
long hFind;

root=NULL;
itr=NULL;
b_file=NULL;
hFind=0;

if((hFind = _findfirst(x, &amp; e_file)) == -1L)
{
puts(<font color="#0000ff">&quot;一致するファイルが見つかりません。&quot;</font>);
return NULL;
}

do{
<font color="#009900">
b_file = (struct kouzoutai*)malloc(sizeof(struct kouzoutai));
if(b_file == NULL)
{
puts(<font color="#0000ff">&quot;メモリが確保できませんでした。&quot;</font>);
return NULL;
}
b_file-&gt;size=e_file.size;
b_file-&gt;time_write=e_file.time_write;
b_file-&gt;attrib=e_file.attrib;
strcpy(b_file-&gt;name,e_file.name);

b_file-&gt;next = NULL;

if( root == NULL )
{
root = b_file;
itr = b_file;
}
else
{
itr-&gt;next = b_file;
itr = itr-&gt;next;
}
}while( _findnext(hFind, &amp;e_file) == 0 );
_findclose(hFind);
return root;
}

{
puts(<font color="#0000ff">&quot;作成年月日 作成時刻 サイズ ファイル名 属性&quot;</font>);
while( f )
{
struct tm* c_time = localtime(&amp;(f-&gt;time_write));

printf(<font color="#0000ff">&quot;%04d年%02d月%02d日 &quot;</font>, c_time-&gt;tm_year+1900, c_time-&gt;tm_mon+1, c_time-&gt;tm_mday);
printf(<font color="#0000ff">&quot;%02d時%02d分%02d秒 &quot;</font>, c_time-&gt;tm_hour, c_time-&gt;tm_min, c_time-&gt;tm_sec);
printf(<font color="#0000ff">&quot;%10d %20s &quot;</font>, f-&gt;size, f-&gt;name);
if(f-&gt;attrib &amp; _A_ARCH)
printf(<font color="#0000ff">&quot;A&quot;</font>);
else
printf(<font color="#0000ff">&quot;-&quot;</font>);
if(f-&gt;attrib &amp; _A_HIDDEN)
printf(<font color="#0000ff">&quot;H&quot;</font>);
else
printf(<font color="#0000ff">&quot;-&quot;</font>);
if(f-&gt;attrib &amp; _A_RDONLY)
printf(<font color="#0000ff">&quot;R&quot;</font>);
else
printf(<font color="#0000ff">&quot;-&quot;</font>);
if(f-&gt;attrib &amp; _A_SUBDIR)
printf(<font color="#0000ff">&quot;D&quot;</font>);
else
printf(<font color="#0000ff">&quot;-&quot;</font>);
if(f-&gt;attrib &amp; _A_SYSTEM)
{
printf(<font color="#0000ff">&quot;S\n&quot;</font>);
continue;
}
else
printf(<font color="#0000ff">&quot;-\n&quot;</font>);
f = f-&gt;next;
}
}

{
struct kouzoutai *itr;
while( ptr )
{
itr = ptr;
ptr = ptr-&gt;next;
free(itr);
itr = NULL;
}
}
</pre>


この投稿にコメントする

削除パスワード

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




掲示板提供:Real Integrity