FAXMANIP.C
上传用户:wesley
上传日期:2007-01-07
资源大小:266k
文件大小:3k
源码类别:

通讯/手机编程

开发平台:

C/C++

  1. /* Copyright (C) 1992 Peter Edward Cann */
  2. #include<stdio.h>
  3. #include<dos.h>
  4. #include<process.h>
  5. #include<graph.h>
  6. #include<time.h>
  7. #define MAXTIMES 1024
  8. long times[MAXTIMES];
  9. int ntimes;
  10. main(argc, argv)
  11. int argc;
  12. char **argv;
  13. {
  14. int i, j, topind, curind, flag;
  15. char str[16], c;
  16. long tmptime;
  17. struct tm *tptr;
  18. struct find_t buf;
  19. printf("FAXMANIP Copyright (C) 1992 Peter Edward Cannn");
  20. if(_dos_findfirst("*.rfx", _A_NORMAL, &buf))
  21. {
  22. printf("No .rfx files found in current directory.n");
  23. exit(1);
  24. }
  25. ntimes=0;
  26. if(sscanf(buf.name, "%lx", &times[ntimes++])!=1)
  27. ntimes--;
  28. while(!_dos_findnext(&buf))
  29. {
  30. if(sscanf(buf.name, "%lx", &times[ntimes++])!=1)
  31. ntimes--;
  32. if(ntimes>=MAXTIMES)
  33. break;
  34. }
  35. for(i=0;i<ntimes;++i)
  36. for(j=i+1;j<ntimes;++j)
  37. if(times[i]<times[j])
  38. {
  39. tmptime=times[i];
  40. times[i]=times[j];
  41. times[j]=tmptime;
  42. }
  43. topind=curind=0;
  44. while(1)
  45. {
  46. _settextwindow(1,1,1,80);
  47. _settextcolor(0);
  48. _setbkcolor((long)7);
  49. _clearscreen(_GWINDOW);
  50. printf("              n=next   p=previous   c=convert   d=delete   q=quit");
  51. _settextwindow(2,1,25,80);
  52. _settextcolor(7);
  53. _setbkcolor((long)0);
  54. _clearscreen(_GWINDOW);
  55. for(i=0;(i<24)&&(i<(ntimes-topind));++i)
  56. {
  57. tptr=localtime(&times[topind+i]);
  58. _settextposition(i+1, 1);
  59. printf("%02d.%02d.%02d @ %02d:%02d:%02d",
  60. tptr->tm_year,
  61. (tptr->tm_mon)+1,
  62. tptr->tm_mday,
  63. tptr->tm_hour,
  64. tptr->tm_min,
  65. tptr->tm_sec
  66. );
  67. }
  68. flag=1;
  69. while((curind-topind<24)&&(curind>=topind)&&flag)
  70. {
  71. _settextposition(curind-topind+1, 21);
  72. switch(getch())
  73. {
  74. case 'n':
  75. case 'N':
  76. if(curind>=(ntimes-1))
  77. putch(0x07);
  78. else
  79. curind++;
  80. break;
  81. case 'p':
  82. case 'P':
  83. if(curind==0)
  84. putch(0x07);
  85. else
  86. curind--;
  87. break;
  88. case 'q':
  89. case 'Q':
  90. _settextposition(24, 1);
  91. exit(0);
  92. break;
  93. case 'd':
  94. case 'D':
  95. printf("Really delete? (Y/N) --> ");
  96. c=getch();
  97. if((c!='Y')&&(c!='y'))
  98. {
  99. _settextposition(curind-topind+1, 21);
  100. printf("tttt");
  101. break;
  102. }
  103. sprintf(str, "%08lx.rfx", times[curind]);
  104. unlink(str);
  105. --ntimes;
  106. if(!ntimes)
  107. {
  108. _settextposition(24,1);
  109. printf("nNo more faxes.n");
  110. exit(0);
  111. }
  112. for(i=curind;i<ntimes;++i)
  113. times[i]=times[i+1];
  114. if(curind==ntimes)
  115. curind--;
  116. flag=0;
  117. break;
  118. case 'c':
  119. case 'C':
  120. _settextposition(24,1);
  121. printf("nSpawning RFXTOPCX...n");
  122. sprintf(str, "%08lx.rfx", times[curind]);
  123. if(argc==2)
  124. spawnlp(P_WAIT, "rfxtopcx", "rfxtopcx", str, "/debug", NULL);
  125. else
  126. spawnlp(P_WAIT, "rfxtopcx", "rfxtopcx", str, NULL);
  127. printf("nPress any key to resume faxmanip: --> ");
  128. getch();
  129. flag=0;
  130. break;
  131. case 'e':
  132. case 'E':
  133. if(argc!=2)
  134. {
  135. putch(0x07);
  136. break;
  137. }
  138. _settextposition(24,1);
  139. printf("nCalling editor...n");
  140. sprintf(str, "%s %08lx.rfx", argv[1], times[curind]);
  141. system(str);
  142. printf("nPress any key to resume faxmanip: --> ");
  143. getch();
  144. flag=0;
  145. break;
  146. default:
  147. putch(0x07);
  148. break;
  149. }
  150. }
  151. if(curind>12)
  152. topind=curind-12;
  153. else
  154. topind=0;
  155. }
  156. }