Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
#include <stdlib.h>
#include <stdio.h>
#include <dos.h>
void main(int argc, char *argv[]) ;
void print_info(struct find_t *find);
char *time_conv(unsigned time, char *char_buf);
char *date_conv(unsigned date, char *char_buf);
void main(int argc, char *argv[]) {
struct find_t find;
// Ќ 室Ё¬ ЇҐаўл© д ©«, 㤮ў«Ґвў®апойЁ© ЄаЁвҐаЁп¬ Ї®ЁбЄ .
// ‚ Є зҐб⢥ ЄаЁвҐаЁп ЁбЇ®«м§гҐ¬ ®Ўа §Ґж, Ї®«гзҐл©
// Ё§ Є®¬ ¤®© бва®ЄЁ. „«п Ї®ЁбЄ ЁбЇ®«м§гҐ¬ д ©«л б «оЎл¬Ё
// ваЁЎгв ¬Ё.
if(!_dos_findfirst(argv[1], 0xffff, &find)) {
printf("\n"
"\n€¬п д ©« Ђвва. „ в ‚аҐ¬п ђ §¬Ґа"
"\n------------ ----- ---------- -------- ------");
// ‚лў®¤Ё¬ Ёд®а¬ жЁо ® ЇҐаў®¬ ©«Ґ®¬ д ©«Ґ нЄа
print_info(&find);
}
else {
printf("‡ ¤ ©вҐ ®Ўа §Ґж ¤«п Ї®ЁбЄ д ©«®ў !");
exit(-1);
}
// ‚лў®¤Ё¬ Ёд®а¬ жЁо ®Ў ®бв «мле ©¤Ґле д ©« е
while(!_dos_findnext(&find)) print_info( &find );
exit(0);
}
// ”гЄжЁп ¤«п ўлў®¤ Ёд®а¬ жЁЁ ® ©¤Ґле д ©« е
void print_info(struct find_t *pfind) {
char timebuf[10], datebuf[12];
// ЏаҐ®Ўа §гҐ¬ д®а¬ в ¤ вл Ё ўаҐ¬ҐЁ Ї®б«Ґ¤ҐЈ® Ё§¬ҐҐЁп д ©«
date_conv(pfind->wr_date, datebuf);
time_conv(pfind->wr_time, timebuf);
// ‚лў®¤Ё¬ ᮤҐа¦Ё¬®Ґ ¤ҐбЄаЁЇв®а д ©«
printf("\n%-12s",pfind->name);
printf(" %02X %8s %8s %8ld ",
pfind->attrib,
datebuf,
timebuf,
pfind->size);
}
// ”гЄжЁп ЇаҐ®Ўа §®ў Ёп д®а¬ ⠢६ҐЁ
char *time_conv(unsigned t, char *buf) {
int h, m;
h = (t >> 11) & 0x1f, m = (t >> 5) & 0x3f;
sprintf(buf, "%2.2d:%02.2d:%02.2d", h % 12, m, (t & 0x1f) * 2);
return buf;
}
// ”гЄжЁп ЇаҐ®Ўа §®ў Ёп д®а¬ в ¤ вл
char *date_conv(unsigned d, char *buf) {
sprintf(buf, "%2.2d.%02.2d.%04.2d",
d & 0x1f,(d >> 5) & 0x0f, (d >> 9) + 1980);
return buf;
}