home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung 2 / Power-Programmierung CD 2 (Tewi)(1994).iso / c / library / dos / menu / kiwi / demoprg / filelist.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-03-29  |  3.3 KB  |  186 lines

  1. #include<ctype.h>
  2. #include<string.h>
  3. #include<stdlib.h>
  4. #include<kiwi_inc.h>
  5. #include<kiwi_vs.h>
  6. #include<kiwipro.h>
  7. #include<demopro.h>
  8. #include<kiwi_mem.h>
  9. #include<dos.h>
  10.  
  11.  
  12.  
  13. static char pfadl[DATEI_PFAD_NAME_LEN];
  14. static char pfadr[DATEI_PFAD_NAME_LEN];
  15. static char pfadl1[DATEI_PFAD_NAME_LEN];
  16. static char pfadr1[DATEI_PFAD_NAME_LEN];
  17. static char datei1[DATEI_NAME_LEN],datei2[DATEI_NAME_LEN];
  18. static PICK_LIST list1,list2;
  19.  
  20.  
  21. display_file_content()
  22. {
  23. int i,c;
  24. char *ptr;
  25. WINDOW win=0;
  26.  
  27. init_string(pfadl,sizeof(pfadl));
  28. init_string(pfadr,sizeof(pfadr));
  29. init_string(pfadl1,sizeof(pfadl1));
  30. init_string(pfadr1,sizeof(pfadr1));
  31.  
  32. list1.data=(char *)malloc(100*DATEI_NAME_LEN);
  33. if(list1.data==NULL)abort();
  34. list2.data=(char *)malloc(100*DATEI_NAME_LEN);
  35. if(list2.data==NULL)abort();
  36.  
  37. init_string(list1.data,100*DATEI_NAME_LEN);
  38. init_string(list2.data,100*DATEI_NAME_LEN);
  39.  
  40. strcpy(pfadl,"*.c");
  41. strcpy(pfadr,"*.c");
  42.  
  43. for(i=0;i<DATEI_PFAD_NAME_LEN;i++)pfadl1[i]=pfadl[i];
  44. for(i=0;i<DATEI_PFAD_NAME_LEN;i++)pfadr1[i]=pfadr[i];
  45.  
  46. list1.anzahl=get_file_list(pfadl,&ptr);
  47. list1.breite=12;
  48. list1.hoehe=9;
  49. c=MIN(100,list1.anzahl);
  50. for(i=0;i<c*DATEI_NAME_LEN;i++)list1.data[i]=(*(ptr+i));        
  51. reset_get_file_list();
  52.  
  53. list2.anzahl=get_file_list(pfadr,&ptr);
  54. list2.breite=12;
  55. list2.hoehe=9;
  56.  
  57. c=MIN(100,list2.anzahl);
  58. for(i=0;i<c*DATEI_NAME_LEN;i++)list2.data[i]=(*(ptr+i));        
  59. reset_get_file_list();
  60.  
  61.  
  62. do
  63. {
  64.  
  65.     win=load_window("dspfile.wnd");
  66.     c=scanf_mask(win,0,"x",    pfadl,
  67.                 &list1,
  68.                 datei1,
  69.                 pfadr,
  70.                 &list2,
  71.                 datei2
  72.                 /* Button Lade Links */
  73.                 /* Button Lade Rechts */
  74.                 /* Button Hilfe    */
  75.                 /* Button Abbruch    */);
  76.  
  77.     close_window(win);
  78.  
  79. }while(c!=27);
  80.  
  81. free(list1.data);
  82. free(list2.data);
  83.  
  84.  
  85. return(0);
  86. }
  87.  
  88.  
  89.  
  90. int pre_list1(struct inter_func_com *ipc)
  91. {
  92. int i,c;
  93. char *ptr;
  94.  
  95. if(strncmp(pfadl,pfadl1,DATEI_PFAD_NAME_LEN))
  96. {
  97.     list1.anzahl=get_file_list(pfadl,&ptr);
  98.  
  99.     c=MIN(100,list1.anzahl);
  100.     init_string(list1.data,100*DATEI_NAME_LEN);
  101.     for(i=0;i<c*DATEI_NAME_LEN;i++)
  102.         list1.data[i]=(*(ptr+i));        
  103.  
  104.     for(i=0;i<DATEI_PFAD_NAME_LEN;i++)
  105.         pfadl1[i]=pfadl[i];
  106.  
  107.     reset_get_file_list();
  108.  
  109.     return(1);
  110. }
  111.  
  112. return(0);
  113. }
  114.  
  115. int pre_list2(struct inter_func_com *ipc)
  116. {
  117. int i,c;
  118. char *ptr;
  119.  
  120. if(strncmp(pfadr,pfadr1,DATEI_PFAD_NAME_LEN))
  121. {
  122.     list2.anzahl=get_file_list(pfadr,&ptr);
  123.     init_string(list2.data,100*DATEI_NAME_LEN);
  124.     c=MIN(100,list2.anzahl);
  125.  
  126.     for(i=0;i<c*DATEI_NAME_LEN;i++)
  127.         list2.data[i]=(*(ptr+i));        
  128.     for(i=0;i<DATEI_PFAD_NAME_LEN;i++)
  129.  
  130.         pfadr1[i]=pfadr[i];
  131.     reset_get_file_list();
  132.  
  133.     return(1);
  134. }
  135.  
  136. return(0);
  137. }
  138.  
  139.  
  140.  
  141. int post_list1(struct inter_func_com *ipc)
  142. {
  143. int i,c;
  144.  
  145. if(list1.auswahl>=0)
  146. {
  147.     c=list1.auswahl*list1.breite;
  148.     for(i=0;i<DATEI_NAME_LEN-1;i++)
  149.         datei1[i]=(*(list1.data+c+i));
  150. }
  151. return(0);
  152. }
  153.  
  154.  
  155. int post_list2(struct inter_func_com *ipc)
  156. {
  157. int i,c;
  158.  
  159. if(list2.auswahl>=0)
  160. {
  161.     c=list2.auswahl*list2.breite;
  162.     for(i=0;i<DATEI_NAME_LEN-1;i++)
  163.         datei2[i]=(*(list2.data+c+i));
  164. }
  165. return(0);
  166. }
  167.  
  168.  
  169.  
  170.  
  171. int display_file(struct inter_func_com *ipc)
  172. {
  173. char datei_name[DATEI_PFAD_NAME_LEN];
  174.  
  175. init_string(datei_name,sizeof(datei_name));
  176.  
  177. if(ipc->count==3)create_file_path(datei_name,pfadl,datei1);
  178. else             create_file_path(datei_name,pfadr,datei2);
  179.  
  180. browse_file(datei_name,132);
  181.  
  182.  
  183. return(0);
  184. }
  185.  
  186.