home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 October A / Pcwk10a98.iso / Corel / Ventura8 / Ventura / Scripts / FindUnusedFiles.csc < prev    next >
Text File  |  1998-07-08  |  43KB  |  934 lines

  1. REM Finds unused files in VENTURA 8 publications [CorelSCRIPT 8]
  2. REM FindUnusedFiles.csc  March, 1998
  3. REM ⌐ 1998 Corel Corporation. All rights reserved.
  4.  
  5. REM **************************************************************************************
  6. REM This script searches the open Ventura publication for unused picture and text files.
  7. REM The user is prompted for the type of files to search for (picture, text, or both).
  8. REM The user is then promted for the scope of the search (entire pub or current chapter).
  9. REM If a publication is not open, the user is prompted to open one or exit the wizard.
  10. REM A list of unused files is displayed (picture and text files are displayed separately).
  11. REM The user has the option of saving this list to a file, or deleting all unused files, 
  12. REM or just leaving them alone.
  13. REM **************************************************************************************
  14.  
  15. ' Create a temporary folder to provide a path for the include files
  16. '  -this enables the include files to be located 
  17. #addfol "..\..\Scripts"
  18. #include "ScpConst.csi"
  19. #include "VPConst.csi"
  20.  
  21. ' Embed bitmaps if script is to be compiled into exe or csb formats
  22. ' -this will eliminate the need to include these files
  23. #ADDRESBMP IntroBMP "Bitmaps\IntroBMP.bmp"
  24. #ADDRESBMP Step2BMP "Bitmaps\Step2BMP.bmp"
  25. #ADDRESBMP LastBMP "Bitmaps\LastBMP.bmp"
  26.  
  27. 'Constants for Dialog Return Values
  28. GLOBAL CONST DIALOG_RETURN_CANCEL% = 2
  29. GLOBAL CONST DIALOG_RETURN_NEXT% = 3
  30. GLOBAL CONST DIALOG_RETURN_BACK% = 4
  31. GLOBAL CONST DIALOG_RETURN_BROWSE% = 5
  32.  
  33. 'Constants for type of files to look for
  34. GLOBAL CONST BOTH_FILES% = 0
  35. GLOBAL CONST PICTURE_FILES% = 1
  36. GLOBAL CONST TEXT_FILES% = 2
  37.  
  38. 'Constants for scope of the search
  39. GLOBAL CONST SEARCH_ENTIRE_PUB% = 0
  40. GLOBAL CONST SEARCH_CHAPTER% = 1
  41.  
  42. '/////FUNCTION & SUBROUTINE DECLARATIONS/////////////////////////////////////////////////
  43. DECLARE SUB RegQuery()
  44. DECLARE FUNCTION ShowIntro() AS INTEGER
  45. DECLARE FUNCTION GetFileType() AS INTEGER
  46. DECLARE SUB FindFiles(TypeOfFile%)
  47. DECLARE SUB CreateListOfFiles(TypeOfFile AS BOOLEAN, NameOfFile AS STRING, CurrentChapter$)
  48. DECLARE FUNCTION ShowUnusedFiles() AS INTEGER
  49. DECLARE FUNCTION ShowFinish() AS INTEGER
  50. DECLARE FUNCTION RemoveUnusedFiles() AS INTEGER
  51. DECLARE FUNCTION SaveToFile(FileListFile$) AS BOOLEAN
  52.  
  53.  
  54. '/////GLOBAL VARIABLES & CONSTANTS////////////////////////////////////////////////////////
  55. GLOBAL CONST MAXFILES% = 100                    'Maximum number of files
  56. GLOBAL UnusedPictureFiles$(MAXFILES%, 2)        'List of unused picture files, and the chapter in which they belong
  57. GLOBAL UnusedPictureFilesCount%                'Total number of unused picture files
  58. GLOBAL SelectedUnusedPictureFiles$(MAXFILES%, 2)    'List of unused picture files selected for deletion, and the chapter in which they belong
  59. GLOBAL SelectedUnusedPictureFilesCount%            'Total number of picture files selected for deletion
  60. GLOBAL UnusedTextFiles$(MAXFILES%, 2)            'List of unused text files, and the chapter in which they belong
  61. GLOBAL UnusedTextFilesCount%                    'Total number of unused text files
  62. GLOBAL SelectedUnusedTextFiles$(MAXFILES%, 2)    'List of unused text files selected for deletion, and the chapter in which they belong
  63. GLOBAL SelectedUnusedTextFilesCount%            'Total number of text files selected for deletion
  64.  
  65. GLOBAL VenturaRoot$                            'Root directory of Ventura from registry
  66. GLOBAL FileType%                            'Type of tag to search for (0-BOTH; 1-Picture; 2-Text)
  67. GLOBAL SearchType%                            'Scope of the search (0-publication; 1-current chapter only)
  68.  
  69.  
  70. '/////LOCAL DECLARATIONS//////////////////////////////////////////////////////////////////
  71. CONST MAXSTEP% = 7        'maximum number of pages in the Wizard
  72. DIM DialogReturn%        'identifies user's selection for next step in Wizard
  73. DIM NextStep%            'specifies which page appears next in the Wizard
  74.  
  75.  
  76. ' **************************************************************************************
  77. ' MAIN
  78. ' **************************************************************************************
  79. ON ERROR GOTO ErrorHandler
  80.  
  81. RegQuery            'get root directory where Ventura is installed
  82.  
  83. 'this section controls traversal through the dialog pages
  84. NextStep% = 1
  85. DO
  86.     SELECT CASE NextStep%
  87.         CASE 1: DialogReturn% = ShowIntro()        'Show Intro dialog
  88.         CASE 2: DialogReturn% = GetFileType()        'Get type of file to look for (0-BOTH; 1-Picture; 2-Text)
  89.             IF FileType%=BOTH_FILES AND UnusedPictureFilesCount% < 1 AND UnusedTextFilesCount% < 1 THEN 
  90.                 FindFiles(PICTURE_FILES)        'Get list of unused picture files        
  91.                 FindFiles(TEXT_FILES)        'Get list of unused text files
  92.             ENDIF
  93.             IF FileType%=PICTURE_FILES AND UnusedPictureFilesCount% < 1 THEN FindFiles(PICTURE_FILES)    'Get list of unused picture files
  94.             IF FileType%=TEXT_FILES AND UnusedTextFilesCount% < 1 THEN FindFiles(TEXT_FILES)        'Get list of unused text files
  95.     
  96.         CASE 3    'Display list of unused picture files
  97.             IF FileType%=PICTURE_FILES AND UnusedPictureFilesCount% > 0 THEN         
  98.                 DialogReturn% = ShowUnusedFiles()
  99.             ENDIF
  100.  
  101.         CASE 4    'Display list of unused text files
  102.             IF FileType%=TEXT_FILES AND UnusedTextFilesCount% > 0 THEN         
  103.                 DialogReturn% = ShowUnusedFiles()
  104.             ENDIF
  105.  
  106.         CASE 5    'Display list of unused picture and text files
  107.             IF FileType%=BOTH_FILES THEN        'Display list of unused files
  108.                 IF UnusedPictureFilesCount% > 0 THEN 
  109.                     FileType%=PICTURE_FILES    :    DialogReturn% = ShowUnusedFiles() 
  110.                 ENDIF
  111.                 IF UnusedTextFilesCount% > 0 THEN
  112.                     FileType%=TEXT_FILES    :    DialogReturn% = ShowUnusedFiles()
  113.                 ENDIF
  114.                 FileType% = BOTH_FILES        'Need to reset FileType to it's correct state for next function to use
  115.             ENDIF
  116.  
  117.         CASE 6: DialogReturn% = ShowFinish()        
  118.  
  119.         CASE 7: DialogReturn% = RemoveUnusedFiles()        'Remove unused picture files from pub
  120.     END SELECT
  121.     NextStep% = NextStep% + DialogReturn%
  122. LOOP UNTIL NextStep% = MAXSTEP + 1
  123.  
  124. ExitScript:
  125. STOP
  126.  
  127. ErrorHandler:
  128. SELECT CASE ErrNum
  129.     CASE 800
  130.         MESSAGE "FATAL ERROR" & CHR(13) & "Script will now exit."
  131.         RESUME AT ExitScript
  132.     CASE ELSE
  133.         MESSAGE "ERROR: " & STR(ErrNum) & CHR(13) & "Script will now exit."
  134.         RESUME AT ExitScript
  135.     END SELECT
  136.  
  137.  
  138. ' *******************************************************************************
  139. ' RegQuery
  140. ' This subroutine queries the Registry to determine the root directory where 
  141. ' Ventura is installed.
  142. ' *******************************************************************************
  143. SUB RegQuery
  144. ON ERROR GOTO ErrorHandler
  145.  
  146.     'get Ventura config directory
  147.     VentDir$ = REGISTRYQUERY(HKEY_LOCAL_MACHINE,VENTURA_REGQUERY_CONST,"ConfigDir")     
  148.     
  149.     'isolate Ventura root directory from Ventura config directory
  150.     first% = 1
  151.     pos% = 1
  152.     DO WHILE first <> 0
  153.         first = INSTR(VentDir$, "\", first )
  154.         IF first <> 0 THEN
  155.             pos = first
  156.             first = first + 1
  157.         END IF
  158.     LOOP
  159.     VenturaRoot$ = LEFT(VentDir$, pos - 1)     'root directory where Ventura is installed
  160.  
  161. EXIT SUB
  162. ErrorHandler:
  163.     MESSAGE "Error reading registry:" & CHR(13) & RegString$
  164.     ErrNum = 800
  165. END SUB
  166.  
  167.  
  168. ' *******************************************************************************
  169. ' ShowIntro
  170. ' This function displays the introduction dialog.
  171. ' PARAMS: None
  172. '
  173. ' RETURNS: ShowIntro AS INTEGER - Integer indicating dialog return value.
  174. ' *******************************************************************************
  175. FUNCTION ShowIntro%
  176. BEGIN DIALOG OBJECT IntroDialog 290, 180, "Find Unused Files Wizard", SUB IntroDialogEventHandler
  177.     PUSHBUTTON  181, 160, 46, 14, .NextButton, "&Next >"
  178.     CANCELBUTTON  234, 160, 46, 14, .CancelButton
  179.     PUSHBUTTON  135, 160, 46, 14, .BackButton, "< &Back"
  180.     TEXT  95, 10, 185, 20, .Text2, "This wizard will find all the unused picture or text files in the current publication."
  181.     TEXT  95, 40, 185, 12, .Text3, "To begin finding unused files, click Next."
  182.     IMAGE  10, 10, 75, 130, .IntroImage
  183.     GROUPBOX  10, 150, 270, 5, .LineGroupBox
  184. END DIALOG
  185.  
  186. IntroDialog.SetStyle STYLE_INVISIBLE
  187. IntroDialog.IntroImage.SetImage "#IntroBMP"
  188. IntroDialog.IntroImage.SetStyle STYLE_IMAGE_CENTERED
  189.  
  190.     IntroRet%=DIALOG(IntroDialog)
  191.     IF IntroRet% = DIALOG_RETURN_CANCEL THEN STOP    
  192.     IF IntroRet% = DIALOG_RETURN_NEXT THEN ShowIntro% = 1        
  193.  
  194. END FUNCTION
  195.  
  196. ' *******************************************************************************
  197. ' IntroDialogEventHandler
  198. ' This subroutine responds to user interface with the introduction dialog.
  199. ' PARAMS: BYVAL ControlID% - Integer indicating the dialog control that is 
  200. '                            generating a dialog event.
  201. '        BYVAL Event% - Integer indicating the dialog event that has occurred.
  202. ' *******************************************************************************
  203. SUB IntroDialogEventHandler(BYVAL ControlID%, BYVAL Event%)
  204.     IF Event% = EVENT_INITIALIZATION THEN         
  205.         IntroDialog.BackButton.Enable FALSE 
  206.         IntroDialog.SetStyle STYLE_VISIBLE
  207.     ENDIF
  208.     IF Event% = EVENT_MOUSE_CLICK THEN     
  209.         SELECT CASE ControlID%
  210.             CASE IntroDialog.NextButton.GetID()
  211.                 IntroDialog.CloseDialog DIALOG_RETURN_NEXT
  212.             CASE IntroDialog.CancelButton.GetID()
  213.                 IntroDialog.CloseDialog DIALOG_RETURN_CANCEL
  214.         END SELECT
  215.     ENDIF
  216. END FUNCTION
  217.  
  218.  
  219. ' *******************************************************************************
  220. ' GetFileType
  221. ' This function displays the tag type dialog and prompts the user for the type of
  222. ' tag to look for (paragraph, character, or both).
  223. ' PARAMS: None
  224. '
  225. ' RETURNS: GetFileType AS INTEGER - Integer indicating dialog return value.
  226. ' *******************************************************************************
  227. FUNCTION GetFileType%
  228. BEGIN DIALOG OBJECT FileTypeDialog 290, 180, "Find Unused Files Wizard", SUB FileTypeDialogEventHandler
  229.     OPTIONGROUP .FileTypeOptionGroup
  230.         OPTIONBUTTON  115, 40, 65, 12, .BothOptionButton, "&All files"
  231.         OPTIONBUTTON  115, 55, 65, 12, .PictureFilesOption, "&Picture files"
  232.         OPTIONBUTTON  115, 70, 65, 12, .TextFilesOption, "&Text files"
  233.     OPTIONGROUP .SearchOptionGroup
  234.         OPTIONBUTTON  115, 108, 74, 12, .EntirePubOptionButton, "&Entire publication"
  235.         OPTIONBUTTON  115, 122, 76, 12, .CurrentChapterOptionButton, "&Current chapter"
  236.     PUSHBUTTON  135, 160, 46, 14, .BackButton, "< &Back"
  237.     PUSHBUTTON  181, 160, 46, 14, .NextButton, "&Search"
  238.     CANCELBUTTON  234, 160, 46, 14, .CancelButton
  239.     TEXT  95, 10, 185, 12, .Text1, "What type of files would you like to search for?"
  240.     GROUPBOX  95, 30, 185, 58, .GroupBox1, "File Type:"
  241.     GROUPBOX  95, 95, 185, 45, .GroupBox2, "Search:"
  242.     IMAGE  10, 10, 75, 130, .FileTypeImage
  243.     GROUPBOX  10, 150, 270, 5, .LineGroupBox
  244. END DIALOG
  245.  
  246.     FileTypeDialog.SetStyle STYLE_INVISIBLE
  247.     FileTypeDialog.FileTypeImage.SetImage "#Step2BMP"
  248.     FileTypeDialog.FileTypeImage.SetStyle STYLE_IMAGE_CENTERED
  249.     FileTypeDialog.SetStyle STYLE_VISIBLE
  250.  
  251.     FileTypeRet%=DIALOG(FileTypeDialog)
  252.     SELECT CASE FileTypeRet%
  253.         CASE DIALOG_RETURN_CANCEL    
  254.             STOP
  255.         CASE DIALOG_RETURN_NEXT        
  256.             FileTypeDialog.SetVisible FALSE
  257.             FileType% = FileTypeDialog.FileTypeOptionGroup.GetValue()
  258.             SearchType% = FileTypeDialog.SearchOptionGroup.GetValue()
  259. REM             ClearFileList
  260.             GetFileType = 1
  261.         CASE DIALOG_RETURN_BACK        
  262.             GetFileType = -1
  263.     END SELECT
  264. END FUNCTION
  265.  
  266.  
  267. ' *******************************************************************************
  268. ' FileTypeDialogEventHandler
  269. ' This subroutine responds to user interface with the file type dialog.
  270. ' PARAMS: BYVAL ControlID% - Integer indicating the dialog control that is 
  271. '                            generating a dialog event.
  272. '        BYVAL Event% - Integer indicating the dialog event that has occurred.
  273. ' *******************************************************************************
  274. SUB FileTypeDialogEventHandler(BYVAL ControlID%, BYVAL Event%)
  275.     IF Event% = EVENT_INITIALIZATION  THEN        
  276.         FileTypeDialog.SetStyle STYLE_VISIBLE
  277.     ENDIF
  278.  
  279.     IF Event% = EVENT_MOUSE_CLICK THEN         
  280.         SELECT CASE ControlID%
  281.             CASE FileTypeDialog.NextButton.GetID()        
  282.                 BEGINWAITCURSOR
  283.                 WITHOBJECT OBJECT_VENTURA8
  284.                 ENDWAITCURSOR
  285.                     'Make sure there is an open pub
  286.                     IF .CountWindows() = 0 THEN
  287.                         PubMsg$ = "You need an open publication to run this script." & CHR(13) & "Open one now?"
  288.                         MsgVal% = MESSAGEBOX(PubMsg$, "WARNING", MB_YES_NO OR MB_STOP_ICON)
  289.                         IF MsgVal% = MSG_YES THEN         'Yes, open a pub
  290.                             SETCURRFOLDER VenturaRoot$
  291.                             PubName$ = GETFILEBOX("Publication files (*.VP*)|*.VP*", , , ,"*.vp*", VenturaRoot$ & "\Ventura\Samples" )
  292.                             IF PubName$ <> "" THEN
  293.                                 .SetVisible TRUE
  294.                                 .FileOpen PubName$, , TRUE, 1, TRUE, FALSE
  295.                                 FileTypeDialog.closedialog DIALOG_RETURN_NEXT
  296.                             ENDIF
  297.                         ELSE
  298.                             'STOP
  299.                         ENDIF
  300.                     ELSE
  301.                         PubName$=.PublicationName()
  302.                         FileTypeDialog.closedialog DIALOG_RETURN_NEXT
  303.                     ENDIF
  304.                 END WITHOBJECT
  305.  
  306.             CASE FileTypeDialog.BackButton.GetID()        
  307.                 FileTypeDialog.closedialog DIALOG_RETURN_BACK
  308.             CASE FileTypeDialog.CancelButton.GetID()        
  309.                 FileTypeDialog.closedialog DIALOG_RETURN_CANCEL    
  310.         END SELECT
  311.     ENDIF
  312. END SUB
  313.  
  314.  
  315. ' *******************************************************************************
  316. ' ShowUnusedFiles
  317. ' This function displays the results of the unused paragraph tag search.
  318. '
  319. ' PARAMS: None
  320. '
  321. ' RETURNS: ShowUnusedFiles AS INTEGER - Integer indicating dialog return value.
  322. ' *******************************************************************************
  323. FUNCTION ShowUnusedFiles%
  324. BEGIN DIALOG OBJECT UnusedFilesDialog 290, 180, "Find Unused Files Wizard", SUB UnusedFilesDialogEventHandler     '"Corel VENTURA Conversion Wizard - Done"
  325.     PUSHBUTTON  135, 160, 46, 14, .BackButton, "< &Back"
  326.     PUSHBUTTON  181, 160, 46, 14, .NextButton, "&Next >"
  327.     CANCELBUTTON  234, 160, 46, 14, .CancelButton
  328.     PUSHBUTTON  122, 40, 46, 14, .SelectButton, "Se&lect >>"
  329.     PUSHBUTTON  122, 55, 46, 14, .DeselectButton, "<< &Deselect"
  330.     PUSHBUTTON  122, 80, 46, 14, .SelectAllButton, "Select &All"
  331.     PUSHBUTTON  122, 95, 46, 14, .DeselectAllButton, "D&eselect All"
  332.     PUSHBUTTON  122, 120, 46, 14, .SaveButton, "&Save list..."
  333.     LISTBOX  10, 35, 100, 100, .UnusedFilesListBox
  334.     LISTBOX  10, 35, 100, 100, .ChapsListBox
  335.     LISTBOX  180, 35, 100, 100, .SelectedUnusedFilesListBox
  336.     LISTBOX  180, 35, 100, 100, .SelectedChapsListBox
  337.     TEXT  10, 5, 269, 12, .Text2, "Which picture files would you like to delete? "
  338.     TEXT  10, 20, 79, 12, .Text4, "Unused picture files:"
  339.     TEXT  90, 20, 20, 12, .UnusedFilesCount, ""
  340.     TEXT  180, 20, 75, 12, .Text5, "Files to be deleted:"
  341.     TEXT  258, 20, 20, 12, .SelectedUnusedFilesCount, ""
  342.     GROUPBOX  10, 150, 270, 5, .LineGroupBox
  343.     TEXT  11, 139, 264, 12, .StatusText, "No files selected"
  344. END DIALOG
  345.     
  346.     UnusedFilesDialog.SetStyle STYLE_INVISIBLE
  347.     UnusedFilesDialog.ChapsListBox.SetStyle STYLE_INVISIBLE
  348.     UnusedFilesDialog.SelectedChapsListBox.SetStyle STYLE_INVISIBLE
  349.     UnusedFilesDialog.StatusText.SetStyle STYLE_SUNKEN
  350.  
  351.     UnusedFilesDialogRet% = DIALOG(UnusedFilesDialog)
  352.     
  353.     SELECT CASE UnusedFilesDialogRet%
  354.         CASE DIALOG_RETURN_CANCEL        
  355.             STOP
  356.         CASE DIALOG_RETURN_NEXT        
  357.             ShowUnusedFiles = 1
  358.         CASE DIALOG_RETURN_BACK         
  359.             IF FileType%=PICTURE_FILES THEN 
  360.                 ShowUnusedFiles = -1
  361.             ELSE
  362.                 ShowUnusedFiles = -2
  363.             ENDIF
  364.     END SELECT
  365.     
  366. END FUNCTION
  367.  
  368. ' *******************************************************************************
  369. ' UnusedFilesDialogEventHandler
  370. ' This subroutine responds to user interface with the unused files dialog.
  371. ' PARAMS: BYVAL ControlID% - Integer indicating the dialog control that is 
  372. '                            generating a dialog event.
  373. '        BYVAL Event% - Integer indicating the dialog event that has occurred.
  374. ' *******************************************************************************
  375. SUB UnusedFilesDialogEventHandler(BYVAL ControlID%, BYVAL Event%)
  376. DIM i%
  377. DIM SaveStatus AS BOOLEAN
  378. STATIC SelectedUnusedFilesCount%
  379. STATIC UnusedFilesCount%
  380.  
  381.     IF Event% = EVENT_INITIALIZATION THEN         
  382.         UnusedFilesDialog.UnusedFilesCount.SetStyle STYLE_RIGHT_JUSTIFY
  383.         UnusedFilesDialog.SelectedUnusedFilesCount.SetStyle STYLE_RIGHT_JUSTIFY
  384.  
  385.         SELECT CASE FileType%
  386.             CASE PICTURE_FILES%
  387.                 UnusedFilesCount% = UnusedPictureFilesCount%
  388.                 SelectedUnusedFilesCount% = SelectedUnusedPictureFilesCount%
  389.                 FOR i% = 1 TO UnusedFilesCount%
  390.                     UnusedFilesDialog.UnusedFilesListBox.AddItem UnusedPictureFiles(i%, 1)
  391.                     UnusedFilesDialog.ChapsListBox.AddItem UnusedPictureFiles(i%, 2)
  392.                 NEXT i%
  393.                 FOR i% = 1 TO SelectedUnusedFilesCount%
  394.                     UnusedFilesDialog.SelectedUnusedFilesListBox.AddItem SelectedUnusedPictureFiles(i%, 1)
  395.                     UnusedFilesDialog.SelectedChapsListBox.AddItem SelectedUnusedPictureFiles(i%, 2)
  396.                 NEXT i%
  397.                 UnusedFilesDialog.Text2.SetText "Which picture files would you like to delete?"
  398.                 UnusedFilesDialog.Text4.SetText "Unused picture files:"
  399.  
  400.             CASE TEXT_FILES%
  401.                 UnusedFilesCount% = UnusedTextFilesCount%
  402.                 SelectedUnusedFilesCount% = SelectedUnusedTextFilesCount%
  403.                 FOR i% = 1 TO UnusedFilesCount%
  404.                     UnusedFilesDialog.UnusedFilesListBox.AddItem UnusedTextFiles$(i%, 1)
  405.                     UnusedFilesDialog.ChapsListBox.AddItem UnusedTextFiles$(i%, 2) 
  406.                 NEXT i%
  407.                 FOR i% = 1 TO SelectedUnusedFilesCount%
  408.                     UnusedFilesDialog.SelectedUnusedFilesListBox.AddItem SelectedUnusedTextFiles$(i%, 1)
  409.                     UnusedFilesDialog.SelectedChapsListBox.AddItem SelectedUnusedTextFiles$(i%, 2)
  410.                 NEXT i%
  411.                 UnusedFilesDialog.Text2.SetText "Which text files would you like to delete?"
  412.                 UnusedFilesDialog.Text4.SetText "Unused text files:"
  413.  
  414.         END SELECT
  415.         IF UnusedFilesCount < 1 THEN
  416.             UnusedFilesDialog.Text2.SetText "There are no unused files."
  417.             UnusedFilesDialog.SelectButton.Enable FALSE
  418.             UnusedFilesDialog.DeselectButton.Enable FALSE
  419.             UnusedFilesDialog.SelectAllButton.Enable FALSE
  420.             UnusedFilesDialog.DeselectAllButton.Enable FALSE
  421.             UnusedFilesDialog.SaveButton.Enable FALSE
  422.         ENDIF
  423.  
  424.         UnusedFilesDialog.UnusedFilesListBox.SetSelect 1
  425.         UnusedFilesDialog.UnusedFilesCount.SetText UnusedFilesDialog.UnusedFilesListBox.GetItemCount()
  426.         UnusedFilesDialog.SelectedUnusedFilesCount.SetText UnusedFilesDialog.SelectedUnusedFilesListBox.GetItemCount()
  427.         UnusedFilesDialog.StatusText.SetText  UnusedFilesDialog.UnusedFilesListBox.GetItem(1)
  428.         UnusedFilesDialog.SetStyle STYLE_VISIBLE
  429.     ENDIF
  430.  
  431.     IF Event% = EVENT_MOUSE_CLICK THEN         
  432.         SELECT CASE ControlID%
  433.             CASE UnusedFilesDialog.NextButton.GetID()        
  434.                 'build list of appropriate files
  435.                 SELECT CASE FileType%
  436.                     CASE PICTURE_FILES%
  437.                         SelectedUnusedPictureFilesCount% = UnusedFilesDialog.SelectedUnusedFilesListBox.GetItemCount()
  438.                         REDIM SelectedUnusedPictureFiles$(SelectedUnusedPictureFilesCount, 2)                    'redimension array to accomodate all selected files
  439.                         FOR i% = 1 TO SelectedUnusedPictureFilesCount%                                    'FOR all items in selected files list
  440.                             SelectedUnusedPictureFiles$(i%, 1) = UnusedFilesDialog.SelectedUnusedFilesListBox.GetItem(i%)    'add selection to FilesList
  441.                             SelectedUnusedPictureFiles$(i%, 2) = UnusedFilesDialog.SelectedChapsListBox.GetItem(i%)    'add selection to FilesList
  442.                         NEXT i%
  443.         
  444.                         UnusedPictureFilesCount% = UnusedFilesDialog.UnusedFilesListBox.GetItemCount()
  445.                         REDIM UnusedPictureFiles$(UnusedPictureFilesCount, 2)                            'redimension array to accomodate all selected files
  446.                         FOR i% = 1 TO UnusedPictureFilesCount%                                    'FOR all items in selected files list
  447.                             UnusedPictureFiles$(i%, 1) = UnusedFilesDialog.UnusedFilesListBox.GetItem(i%)    'add selection to FilesList
  448.                             UnusedPictureFiles$(i%, 2) = UnusedFilesDialog.ChapsListBox.GetItem(i%)    'add selection to FilesList
  449.                         NEXT i%
  450.  
  451.                     CASE TEXT_FILES%
  452.                         SelectedUnusedTextFilesCount% = UnusedFilesDialog.SelectedUnusedFilesListBox.GetItemCount()
  453.                         REDIM SelectedUnusedTextFiles$(SelectedUnusedTextFilesCount, 2)                    'redimension array to accomodate all selected files
  454.                         FOR i% = 1 TO SelectedUnusedTextFilesCount%                                    'FOR all items in selected files list
  455.                             SelectedUnusedTextFiles$(i%, 1) = UnusedFilesDialog.SelectedUnusedFilesListBox.GetItem(i%)    'add selection to FilesList
  456.                             SelectedUnusedTextFiles$(i%, 2) = UnusedFilesDialog.SelectedChapsListBox.GetItem(i%)    'add selection to FilesList
  457.                         NEXT i%
  458.         
  459.                         UnusedTextFilesCount% = UnusedFilesDialog.UnusedFilesListBox.GetItemCount()
  460.                         REDIM UnusedTextFiles$(UnusedTextFilesCount, 2)                            'redimension array to accomodate all selected files
  461.                         FOR i% = 1 TO UnusedTextFilesCount%                                    'FOR all items in selected files list
  462.                             UnusedTextFiles$(i%, 1) = UnusedFilesDialog.UnusedFilesListBox.GetItem(i%)    'add selection to FilesList
  463.                             UnusedTextFiles$(i%, 2) = UnusedFilesDialog.ChapsListBox.GetItem(i%)    'add selection to FilesList
  464.                         NEXT i%
  465.  
  466.                 END SELECT
  467.                 UnusedFilesDialog.CloseDialog DIALOG_RETURN_NEXT
  468.  
  469.  
  470.             CASE UnusedFilesDialog.BackButton.GetID()        
  471.                 UnusedFilesDialog.CloseDialog DIALOG_RETURN_BACK
  472.  
  473.             CASE UnusedFilesDialog.SelectButton.GetID()            
  474.                 indx% = UnusedFilesDialog.UnusedFilesListBox.GetSelect()                                    'get index of selection
  475.                 IF indx%=0 THEN    'no tags selected
  476.                     IF UnusedFilesDialog.UnusedFilesListBox.GetItemCount() = 0 THEN
  477.                         MESSAGE "There are no files available for selection."
  478.                     ELSE
  479.                         MESSAGE "Please select a file from the available files list."
  480.                     ENDIF
  481.                 ELSE
  482.                     UnusedFilesDialog.SelectedUnusedFilesListBox.AddItem UnusedFilesDialog.UnusedFilesListBox.GetItem(indx%)    'add selection to SelectedFilesList
  483.                     UnusedFilesDialog.SelectedChapsListBox.AddItem UnusedFilesDialog.ChapsListBox.GetItem(indx%)    'add selection to SelectedFilesList
  484.                     UnusedFilesDialog.UnusedFilesListBox.RemoveItem indx%                                        'remove selection from available files list
  485.                     UnusedFilesDialog.ChapsListBox.RemoveItem indx%                                        'remove selection from available files list
  486.                     IF indx% > UnusedFilesDialog.UnusedFilesListBox.GetItemCount() THEN
  487.                         UnusedFilesDialog.UnusedFilesListBox.SetSelect indx%-1
  488.                     ELSE
  489.                         UnusedFilesDialog.UnusedFilesListBox.SetSelect indx%
  490.                     ENDIF
  491.                      UnusedFilesDialog.StatusText.SetText UnusedFilesDialog.UnusedFilesListBox.GetItem(UnusedFilesDialog.UnusedFilesListBox.GetSelect())
  492.                     UnusedFilesDialog.SelectedUnusedFilesListBox.SetSelect 0
  493.                 ENDIF
  494.  
  495.             CASE UnusedFilesDialog.DeselectButton.GetID()            'selected files list
  496.                 indx% = UnusedFilesDialog.SelectedUnusedFilesListBox.GetSelect()                                'get index of selection
  497.                 IF indx%=0 THEN    'no files selected
  498.                     IF UnusedFilesDialog.SelectedUnusedFilesListBox.GetItemCount() = 0 THEN
  499.                         MESSAGE "There are no files available for deselection"
  500.                     ELSE
  501.                         MESSAGE "Please select a file from the selected files list."
  502.                     ENDIF
  503.                 ELSE
  504.                     UnusedFilesDialog.UnusedFilesListBox.AddItem UnusedFilesDialog.SelectedUnusedFilesListBox.GetItem(indx%)    'add selection to FilesList
  505.                     UnusedFilesDialog.ChapsListBox.AddItem UnusedFilesDialog.SelectedChapsListBox.GetItem(indx%)    'add selection to FilesList
  506.                     UnusedFilesDialog.SelectedUnusedFilesListBox.RemoveItem indx%                                'remove selection from selected files list
  507.                     UnusedFilesDialog.SelectedChapsListBox.RemoveItem indx%                                'remove selection from selected files list
  508.                     IF indx% > UnusedFilesDialog.SelectedUnusedFilesListBox.GetItemCount() THEN
  509.                         UnusedFilesDialog.SelectedUnusedFilesListBox.SetSelect indx%-1
  510.                     ELSE
  511.                         UnusedFilesDialog.SelectedUnusedFilesListBox.SetSelect indx%
  512.                     ENDIF
  513.                      UnusedFilesDialog.StatusText.SetText UnusedFilesDialog.SelectedUnusedFilesListBox.GetItem(UnusedFilesDialog.SelectedUnusedFilesListBox.GetSelect())
  514.                     UnusedFilesDialog.UnusedFilesListBox.SetSelect 0
  515.                 ENDIF
  516.  
  517.             CASE UnusedFilesDialog.SelectAllButton.GetID()        
  518.                 UnusedFilesDialog.StatusText.SetText "All files selected."
  519.                 UnusedFilesDialog.SelectedUnusedFilesListBox.SetSelect 0
  520.                 WHILE UnusedFilesDialog.UnusedFilesListBox.GetItemCount() > 0        'while there are available files
  521.                     UnusedFilesDialog.SelectedUnusedFilesListBox.AddItem UnusedFilesDialog.UnusedFilesListBox.GetItem(1)    'add selection to SelectedFilesList
  522.                     UnusedFilesDialog.SelectedChapsListBox.AddItem UnusedFilesDialog.ChapsListBox.GetItem(1)    'add selection to SelectedFilesList
  523.                     UnusedFilesDialog.UnusedFilesListBox.RemoveItem 1                                            'remove selection from available files list    
  524.                     UnusedFilesDialog.ChapsListBox.RemoveItem 1                                            'remove selection from available files list    
  525.                     UnusedFilesDialog.UnusedFilesCount.SetText UnusedFilesDialog.UnusedFilesListBox.GetItemCount()        'number of available files
  526.                     UnusedFilesDialog.SelectedUnusedFilesCount.SetText UnusedFilesDialog.SelectedUnusedFilesListBox.GetItemCount()    'number of selected files
  527.                 WEND
  528.  
  529.             CASE UnusedFilesDialog.DeselectAllButton.GetID()        
  530.                 UnusedFilesDialog.StatusText.SetText "No files selected."
  531.                 UnusedFilesDialog.UnusedFilesListBox.SetSelect 0
  532.                 WHILE UnusedFilesDialog.SelectedUnusedFilesListBox.GetItemCount() > 0        'while there are selected files
  533.                     UnusedFilesDialog.UnusedFilesListBox.AddItem UnusedFilesDialog.SelectedUnusedFilesListBox.GetItem(1)    'add selection to FilesList
  534.                     UnusedFilesDialog.ChapsListBox.AddItem UnusedFilesDialog.SelectedChapsListBox.GetItem(1)    'add selection to FilesList
  535.                     UnusedFilesDialog.SelectedUnusedFilesListBox.RemoveItem 1                                    'remove selection from selected files list
  536.                     UnusedFilesDialog.SelectedChapsListBox.RemoveItem 1                                    'remove selection from selected files list
  537.                     UnusedFilesDialog.UnusedFilesCount.SetText UnusedFilesDialog.UnusedFilesListBox.GetItemCount()        'number of available files
  538.                     UnusedFilesDialog.SelectedUnusedFilesCount.SetText UnusedFilesDialog.SelectedUnusedFilesListBox.GetItemCount()        'number of selected files
  539.                 WEND
  540.  
  541.             CASE UnusedFilesDialog.SaveButton.GetID()        
  542.                 SELECT CASE FileType%
  543.                     CASE PICTURE_FILES
  544.                         DialogTitle$ = "Save list of unused picture files to..."
  545.                         DefFileName$ = "PicFiles.txt"
  546.                     CASE TEXT_FILES
  547.                         DialogTitle$ = "Save list of unused text files to..."
  548.                         DefFileName$ = "TextFiles.txt"
  549.                 END SELECT
  550.  
  551.                 SaveFile$ = GETFILEBOX("Text files (*.TXT)|*.TXT", "Save unused picture files to...", 1, "PicFiles.txt", "txt", VenturaRoot$)
  552.                 IF SaveFile$ <> "" THEN
  553.                     SaveStatus = SaveToFile(SaveFile$)
  554.                     IF SaveStatus = TRUE THEN
  555.                         MESSAGE "Save successful"
  556.                     ELSE
  557.                         MESSAGE "Unable to save to " & CHR(13) & SaveFile$
  558.                     ENDIF
  559.                 ENDIF
  560.  
  561.             CASE UnusedFilesDialog.CancelButton.GetID()            
  562.                 UnusedFilesDialog.closedialog DIALOG_RETURN_CANCEL    
  563.  
  564.             CASE UnusedFilesDialog.UnusedFilesListBox.GetID()            'files list
  565.                  UnusedFilesDialog.StatusText.SetText UnusedFilesDialog.UnusedFilesListBox.GetItem(UnusedFilesDialog.UnusedFilesListBox.GetSelect())
  566.                 UnusedFilesDialog.SelectedUnusedFilesListBox.SetSelect 0
  567.  
  568.             CASE UnusedFilesDialog.SelectedUnusedFilesListBox.GetID()            'selected files list
  569.                  UnusedFilesDialog.StatusText.SetText UnusedFilesDialog.SelectedUnusedFilesListBox.GetItem(UnusedFilesDialog.SelectedUnusedFilesListBox.GetSelect())
  570.                 UnusedFilesDialog.UnusedFilesListBox.SetSelect 0
  571.         END SELECT
  572.         UnusedFilesDialog.UnusedFilesCount.SetText UnusedFilesDialog.UnusedFilesListBox.GetItemCount()                'number of available files
  573.         UnusedFilesDialog.SelectedUnusedFilesCount.SetText UnusedFilesDialog.SelectedUnusedFilesListBox.GetItemCount()    'number of selected files
  574.     ENDIF
  575.  
  576.  
  577.     IF Event% = EVENT_DBL_MOUSE_CLICK THEN         
  578.         SELECT CASE ControlID%
  579.             CASE UnusedFilesDialog.UnusedFilesListBox.GetID()            'files list
  580.                 indx% = UnusedFilesDialog.UnusedFilesListBox.GetSelect()                                    'get index of selection
  581.                 UnusedFilesDialog.SelectedUnusedFilesListBox.AddItem UnusedFilesDialog.UnusedFilesListBox.GetItem(indx%)    'add selection to SelectedFilesList
  582.                 UnusedFilesDialog.SelectedChapsListBox.AddItem UnusedFilesDialog.ChapsListBox.GetItem(indx%)    'add selection to SelectedFilesList
  583.                 UnusedFilesDialog.UnusedFilesListBox.RemoveItem indx%                                        'remove selection from available files list
  584.                 UnusedFilesDialog.ChapsListBox.RemoveItem indx%                                        'remove selection from available files list
  585.                 IF indx% > UnusedFilesDialog.UnusedFilesListBox.GetItemCount() THEN
  586.                     UnusedFilesDialog.UnusedFilesListBox.SetSelect indx%-1
  587.                 ELSE
  588.                     UnusedFilesDialog.UnusedFilesListBox.SetSelect indx%
  589.                 ENDIF
  590.  
  591.             CASE UnusedFilesDialog.SelectedUnusedFilesListBox.GetID()            'selected files list
  592.                 indx% = UnusedFilesDialog.SelectedUnusedFilesListBox.GetSelect()                                'get index of selection
  593.                 UnusedFilesDialog.UnusedFilesListBox.AddItem UnusedFilesDialog.SelectedUnusedFilesListBox.GetItem(indx%)    'add selection to FilesList
  594.                 UnusedFilesDialog.ChapsListBox.AddItem UnusedFilesDialog.SelectedChapsListBox.GetItem(indx%)    'add selection to FilesList
  595.                 UnusedFilesDialog.SelectedUnusedFilesListBox.RemoveItem indx%                                'remove selection from selected files list
  596.                 UnusedFilesDialog.SelectedChapsListBox.RemoveItem indx%                                'remove selection from selected files list
  597.                 IF indx% > UnusedFilesDialog.SelectedUnusedFilesListBox.GetItemCount() THEN
  598.                     UnusedFilesDialog.SelectedUnusedFilesListBox.SetSelect indx%-1
  599.                 ELSE
  600.                     UnusedFilesDialog.SelectedUnusedFilesListBox.SetSelect indx%
  601.                 ENDIF
  602.  
  603.         END SELECT
  604.         UnusedFilesDialog.UnusedFilesCount.SetText UnusedFilesDialog.UnusedFilesListBox.GetItemCount()                'number of available tags
  605.         UnusedFilesDialog.SelectedUnusedFilesCount.SetText UnusedFilesDialog.SelectedUnusedFilesListBox.GetItemCount()    'number of selected tags
  606.     ENDIF
  607. END SUB
  608.  
  609.  
  610.  
  611.  
  612. ' *******************************************************************************
  613. ' ShowFinish
  614. ' This function displays the finish dialog, showing the number of each type of 
  615. ' unused files found, and how many have been selected for deletion.
  616. '
  617. ' PARAMS: None
  618. '
  619. ' RETURNS: ShowFinish AS INTEGER - Integer indicating dialog return value.
  620. ' *******************************************************************************
  621. FUNCTION ShowFinish%
  622.  
  623. BEGIN DIALOG OBJECT ShowFinishDialog 290, 180, "Find Unused Files Wizard", SUB ShowFinishDialogEventHandler
  624.     PUSHBUTTON  135, 160, 46, 14, .BackButton, "< &Back"
  625.     PUSHBUTTON  181, 160, 46, 14, .FinishButton, "&Delete"
  626.     PUSHBUTTON  234, 160, 46, 14, .CancelButton, "&Exit"
  627.     TEXT  95, 10, 185, 12, .InfoText, InfoText$
  628.     TEXT  95, 130, 185, 12, .DeleteText, DeleteText$
  629.     TEXT  95, 30, 80, 10, .PictureFilesText, "Unused Picture Files:"
  630.     TEXT  185, 30, 90, 10, .PictureFilesText2, "n of n selected for deletion"
  631.     TEXT  95, 50, 80, 10, .TextFilesText, "Unused Text Files:"
  632.     TEXT  185, 50, 90, 10, .TextFilesText2, "n of n selected for deletion"
  633.     IMAGE  10, 10, 75, 130, .ShowFinishImage
  634.     GROUPBOX  10, 150, 270, 5, .LineGroupBox
  635. END DIALOG
  636.  
  637. ShowFinishDialog.SetStyle STYLE_INVISIBLE
  638. ShowFinishDialog.ShowFinishImage.SetImage "#LastBMP"
  639. ShowFinishDialog.ShowFinishImage.SetStyle STYLE_IMAGE_CENTERED
  640.  
  641.     ShowFinishRet% = Dialog(ShowFinishDialog)
  642.     SELECT CASE ShowFinishRet%
  643.         CASE DIALOG_RETURN_CANCEL     
  644.             STOP
  645.         CASE DIALOG_RETURN_NEXT      
  646.             ShowFinish = 1
  647.         CASE DIALOG_RETURN_BACK     
  648.             ShowFinish = -1
  649.     END SELECT
  650. END FUNCTION
  651.  
  652.  
  653. ' *******************************************************************************
  654. ' ShowFinishDialogEventHandler
  655. ' This subroutine responds to user interface with the finish dialog.
  656. ' PARAMS: BYVAL ControlID% - Integer indicating the dialog control that is 
  657. '                            generating a dialog event.
  658. '        BYVAL Event% - Integer indicating the dialog event that has occurred.
  659. ' *******************************************************************************
  660. SUB ShowFinishDialogEventHandler(BYVAL ControlID%, BYVAL Event%)
  661.     IF Event% = EVENT_INITIALIZATION THEN         '
  662.         TotalUnusedFilesCount = SelectedUnusedPictureFilesCount + SelectedUnusedTextFilesCount
  663.         IF TotalUnusedFilesCount = 0 THEN
  664.             InfoText$ = "No files have been selected for deletion."
  665.             DeleteText$ = ""
  666.             ShowFinishDialog.FinishButton.Enable FALSE
  667.         ELSEIF TotalUnusedFilesCount = 1 THEN
  668.             InfoText$ = TotalUnusedFilesCount & " file has been selected for deletion."
  669.             DeleteText$ = "Select Delete to permanently remove the unused file."
  670.         ELSE
  671.             InfoText$ = TotalUnusedFilesCount & " files have been selected for deletion."
  672.             DeleteText$ = "Select Delete to permanently remove the unused files."
  673.         ENDIF
  674.         ShowFinishDialog.InfoText.SetText InfoText$
  675.         ShowFinishDialog.DeleteText.SetText DeleteText$
  676.  
  677.         SELECT CASE FileType%
  678.             CASE BOTH_FILES
  679.                 ShowFinishDialog.PictureFilesText.SetText "Unused Picture Files:"
  680.                 IF UnusedPictureFilesCount% < 1 AND SelectedUnusedPictureFilesCount% < 1 THEN 
  681.                     ShowFinishDialog.PictureFilesText2.SetText "No unused picture files"
  682.                 ELSE
  683.                     ShowFinishDialog.PictureFilesText2.SetText SelectedUnusedPictureFilesCount% & " of " & UnusedPictureFilesCount%+ SelectedUnusedPictureFilesCount% & " selected for deletion"
  684.                 ENDIF
  685.                 ShowFinishDialog.TextFilesText.SetText "Unused Text Files:"
  686.                 IF UnusedTextFilesCount% < 1 AND SelectedUnusedTextFilesCount% < 1 THEN 
  687.                     ShowFinishDialog.TextFilesText2.SetText "No unused text files"
  688.                 ELSE
  689.                     ShowFinishDialog.TextFilesText2.SetText SelectedUnusedTextFilesCount% & " of " & UnusedTextFilesCount%+ SelectedUnusedTextFilesCount% & " selected for deletion"
  690.                 ENDIF
  691.  
  692.             CASE PICTURE_FILES
  693.                 ShowFinishDialog.PictureFilesText.SetText "Unused Picture Files:"
  694.                 IF UnusedPictureFilesCount% < 1 AND SelectedUnusedPictureFilesCount% < 1 THEN 
  695.                     ShowFinishDialog.PictureFilesText2.SetText "No unused picture files"
  696.                 ELSE
  697.                     ShowFinishDialog.PictureFilesText2.SetText SelectedUnusedPictureFilesCount% & " of " & UnusedPictureFilesCount%+ SelectedUnusedPictureFilesCount% & " selected for deletion"
  698.                 ENDIF
  699.                 ShowFinishDialog.TextFilesText.SetText ""
  700.                 ShowFinishDialog.TextFilesText2.SetText ""
  701.  
  702.             CASE TEXT_FILES
  703.                 ShowFinishDialog.TextFilesText.SetText "Unused Text Files:"
  704.                 IF UnusedTextFilesCount% < 1 AND SelectedUnusedTextFilesCount% < 1 THEN 
  705.                     ShowFinishDialog.TextFilesText2.SetText "No unused text files"
  706.                 ELSE
  707.                     ShowFinishDialog.TextFilesText2.SetText SelectedUnusedTextFilesCount% & " of " & UnusedTextFilesCount%+ SelectedUnusedTextFilesCount% & " selected for deletion"
  708.                 ENDIF
  709.                 ShowFinishDialog.PictureFilesText.SetText ""
  710.                 ShowFinishDialog.PictureFilesText2.SetText ""
  711.  
  712.         END SELECT
  713.         ShowFinishDialog.SetStyle STYLE_VISIBLE
  714.     ENDIF
  715.  
  716.     IF Event% = EVENT_MOUSE_CLICK THEN
  717.         SELECT CASE ControlID%
  718.             CASE ShowFinishDialog.FinishButton.GetID()
  719.                 ShowFinishDialog.CloseDialog DIALOG_RETURN_NEXT
  720.             CASE ShowFinishDialog.BackButton.GetID()
  721.                 ShowFinishDialog.CloseDialog DIALOG_RETURN_BACK
  722.             CASE ShowFinishDialog.CancelButton.GetID()
  723.                 ShowFinishDialog.CloseDialog DIALOG_RETURN_CANCEL
  724.         END SELECT
  725.     ENDIF
  726. END SUB
  727.  
  728.  
  729.  
  730. ' *******************************************************************************
  731. ' SaveToFile
  732. ' This function writes the list of unused files to the specified text file.
  733. '
  734. ' PARAMS: FileListFile$ - the name of the text file in which to write the list.
  735. '
  736. ' RETURNS: SaveToFile AS INTEGER - Integer indicating dialog return value.
  737. ' *******************************************************************************
  738. FUNCTION SaveToFile(FileListFile$) AS BOOLEAN
  739. ON ERROR GOTO ErrorHandler
  740.  
  741.     CLOSE
  742.     OPEN FileListFile$ FOR APPEND AS 1
  743.  
  744.     SELECT CASE FileType%
  745.         CASE PICTURE_FILES    
  746.             PRINT #1, "Unused Picture Files:"
  747.             FOR i%=1 TO UnusedPictureFilesCount%
  748.                 PRINT #1, UnusedPictureFiles(i%, 1)
  749.             NEXT i%
  750.  
  751.         CASE TEXT_FILES    
  752.             PRINT #1, "Unused Text Files:"
  753.             FOR i%=1 TO UnusedTextFilesCount%
  754.                 PRINT #1, UnusedTextFiles(i%, 1)
  755.             NEXT i%
  756.  
  757.         CASE BOTH_FILES    
  758.             PRINT #1, "Unused Picture Files:"
  759.             FOR i%=1 TO UnusedPictureFilesCount%
  760.                 PRINT #1, UnusedPictureFiles(i%, 1)
  761.             NEXT i%
  762.  
  763.             PRINT #1, CHR(13)
  764.             PRINT #1, "Unused Text Files:"
  765.             FOR i%=1 TO UnusedTextFilesCount%
  766.                 PRINT #1, UnusedTextFiles(i%, 1)
  767.             NEXT i%
  768.     END SELECT
  769.     CLOSE(1)
  770.     SaveToFile = TRUE
  771.  
  772. EXIT FUNCTION
  773. ErrorHandler:
  774.     CLOSE
  775.     SaveToFile = FALSE
  776.  
  777. END FUNCTION
  778.  
  779.  
  780. ' *******************************************************************************
  781. ' RemoveUnusedFiles
  782. ' This function removes all selected unused files from the publication.
  783. ' PARAMS: None
  784. '
  785. ' RETURNS: RemoveUnusedFiles AS INTEGER - Integer indicating dialog return value.
  786. ' *******************************************************************************
  787. FUNCTION RemoveUnusedFiles%
  788.     WITHOBJECT OBJECT_VENTURA8
  789.  
  790.         SELECT CASE FileType%
  791.             CASE PICTURE_FILES
  792.                 WHILE (SelectedUnusedPictureFilesCount > 0)
  793.                     .FileRemove SelectedUnusedPictureFiles(SelectedUnusedPictureFilesCount, 1), FALSE, TRUE, TRUE, SelectedUnusedPictureFiles(SelectedUnusedPictureFilesCount, 2)
  794.                     SelectedUnusedPictureFiles(SelectedUnusedPictureFilesCount, 1) = ""
  795.                     SelectedUnusedPictureFilesCount = SelectedUnusedPictureFilesCount - 1
  796.                 WEND
  797.     
  798.             CASE TEXT_FILES
  799.                 WHILE (SelectedUnusedTextFilesCount > 0)
  800.                     .FileRemove SelectedUnusedTextFiles(SelectedUnusedTextFilesCount, 1), FALSE, TRUE, FALSE, SelectedUnusedTextFiles(SelectedUnusedTextFilesCount, 2)
  801.                     SelectedUnusedTextFiles(SelectedUnusedTextFilesCount, 1) = ""
  802.                     SelectedUnusedTextFilesCount = SelectedUnusedTextFilesCount - 1
  803.                 WEND
  804.     
  805.             CASE BOTH_FILES
  806.                 WHILE (SelectedUnusedPictureFilesCount > 0)
  807.                     .FileRemove SelectedUnusedPictureFiles(SelectedUnusedPictureFilesCount, 1), FALSE, TRUE, TRUE, SelectedUnusedPictureFiles(SelectedUnusedPictureFilesCount, 2)
  808.                     SelectedUnusedPictureFiles(SelectedUnusedPictureFilesCount, 1) = ""
  809.                     SelectedUnusedPictureFilesCount = SelectedUnusedPictureFilesCount - 1
  810.                 WEND
  811.                 WHILE (SelectedUnusedTextFilesCount > 0)
  812.                     .FileRemove SelectedUnusedTextFiles(SelectedUnusedTextFilesCount, 1), FALSE, TRUE, FALSE, SelectedUnusedTextFiles(SelectedUnusedTextFilesCount, 2)
  813.                     SelectedUnusedTextFiles(SelectedUnusedTextFilesCount, 1) = ""
  814.                     SelectedUnusedTextFilesCount = SelectedUnusedTextFilesCount - 1
  815.                 WEND
  816.         END SELECT
  817.     END WITHOBJECT
  818.  
  819.     RemoveUnusedFiles = 1
  820. END FUNCTION
  821.  
  822.  
  823. ' *******************************************************************************
  824. ' FindFiles
  825. ' This subroutine locates all files of the specified type. Each file is passed 
  826. ' to the CreateListOfFiles subroutine which determines whether the file is used.
  827. ' PARAMS: TypeOfFile AS INTEGER - the type of file being sought:
  828. '                            1-Picture files
  829. '                            2-Text files                          
  830. ' *******************************************************************************
  831. SUB FindFiles(TypeOfFile%)
  832.  
  833.     BEGINWAITCURSOR
  834.     WITHOBJECT OBJECT_VENTURA8
  835.         .SetVisible TRUE    'ShowVentura
  836.         SELECT CASE TypeOfFile%
  837.             CASE PICTURE_FILES    'find picture files
  838.                 IF SearchType% = SEARCH_ENTIRE_PUB THEN 
  839.                     'FOR every chapter in publication
  840.                     NumberOfChapters& = .ChapterCount()
  841.                     FOR i% = 1 TO NumberOfChapters&
  842.                         CurChapter$ = .ChapterGetAt(i%)
  843.                         .ViewGoToPage , CurChapter$, GOTO_RELATIVE_TO_CHAPTER, GOTO_PAGE_FIRST, FALSE
  844.                         PictureFiles%= .PictureFileCount()            
  845.                         FOR j%=1 TO PictureFiles%
  846.                             PictureFileName$ = .PictureFileGetAt(j%)
  847.                             CreateListOfFiles FALSE, PictureFileName$, CurChapter$
  848.                         NEXT j%
  849.                     NEXT i%
  850.                 ELSE    'Only search current chapter
  851.                     CurChapter$= .CurrentChapter()
  852.                     PictureFiles%= .PictureFileCount()            
  853.                     FOR j%=1 TO PictureFiles%
  854.                         PictureFileName$ = .PictureFileGetAt(j%)
  855.                         CreateListOfFiles FALSE, PictureFileName$, CurChapter$
  856.                     NEXT j%
  857.                 ENDIF
  858.  
  859.             CASE TEXT_FILES    'find text files
  860.                 IF SearchType% = SEARCH_ENTIRE_PUB THEN 
  861.                     'FOR every chapter in publication
  862.                     NumberOfChapters& = .ChapterCount()
  863.                     FOR i% = 1 TO NumberOfChapters&
  864.                         CurChapter$ = .ChapterGetAt(i%)
  865.                         .ViewGoToPage , CurChapter$, GOTO_RELATIVE_TO_CHAPTER, GOTO_PAGE_FIRST, FALSE
  866.                         TextFiles% = .TextFileCount()
  867.                         FOR j%=1 TO TextFiles%
  868.                             TextFileName$ = .TextFileGetAt(j%)
  869.                             CreateListOfFiles TRUE, TextFileName$, CurChapter$
  870.                         NEXT j%
  871.                     NEXT i%
  872.                 ELSE    'Only search current chapter
  873.                     CurChapter$= .CurrentChapter()
  874.                     TextFiles% = .TextFileCount()
  875.                     FOR j%=1 TO TextFiles%
  876.                         TextFileName$ = .TextFileGetAt(j%)
  877.                         CreateListOfFiles TRUE, TextFileName$, CurChapter$
  878.                     NEXT j%
  879.                 ENDIF
  880.         END SELECT
  881.     END WITHOBJECT
  882.     ENDWAITCURSOR
  883. END SUB
  884.  
  885.  
  886. ' *******************************************************************************
  887. ' CreateListOfFiles
  888. ' This function creates a list of all unused files of the specified type.
  889. '
  890. ' PARAMS:TypeOfFile AS BOOLEAN - specifies the type of file to look for
  891. '                           FALSE = Picture files
  892. '                           TRUE = Text files
  893. '        NameOfFile AS STRING -  Specifies the name of the file to find.
  894. '        CurrentChapter AS STRING - Specifies the chapter containing the file.
  895. ' *******************************************************************************
  896. SUB CreateListOfFiles(TypeOfFile AS BOOLEAN, NameOfFile AS STRING, CurrentChapter$)
  897. DIM Found AS BOOLEAN
  898.     Found=TRUE
  899.     WITHOBJECT OBJECT_VENTURA8
  900.         IF TypeOfFile <> FALSE THEN     'it's a text file
  901.             Found = .TextFileIsUsed(NameOfFile$)
  902.             IF Found=FALSE THEN        'file is NOT in use 
  903.                 UnusedTextFilesCount = UnusedTextFilesCount + 1
  904.                 IF UnusedTextFilesCount% MOD MAXFILES = 0 THEN 
  905.                     NewCnt% = UnusedTextFilesCount% + MAXFILES
  906.                     REDIM PRESERVE UnusedTextFiles$(NewCnt, 2)
  907.                     REDIM PRESERVE SelectedUnusedTextFiles$(NewCnt, 2)                
  908.                 ENDIF
  909.                 UnusedTextFiles$(UnusedTextFilesCount, 1) = NameOfFile$    :     UnusedTextFiles$(UnusedTextFilesCount, 2) = CurrentChapter$
  910.             ENDIF
  911.         ELSE                'it's a picture file
  912.             Found = .PictureFileIsUsed(NameOfFile$)
  913.             IF Found=FALSE THEN        'file is NOT in use 
  914.                 UnusedPictureFilesCount = UnusedPictureFilesCount + 1
  915.                 IF UnusedPictureFilesCount% MOD MAXFILES = 0 THEN 
  916.                     NewCnt% = UnusedPictureFilesCount% + MAXFILES
  917.                     REDIM PRESERVE UnusedPictureFiles$(NewCnt, 2)
  918.                     REDIM PRESERVE SelectedUnusedPictureFiles$(NewCnt, 2)        
  919.                 ENDIF        
  920.                 UnusedPictureFiles$(UnusedPictureFilesCount, 1) = NameOfFile$        :    UnusedPictureFiles$(UnusedPictureFilesCount, 2) = CurrentChapter$
  921.             ENDIF
  922.         ENDIF
  923.     END WITHOBJECT
  924. END SUB
  925.  
  926.