Local lcExtension, lcType, lcFileSet1,lcFileSet2 lcExtension = InputBox('File type','Select','SCX',10000,'SCX') lcDir1 = GetDir() lcDir2 = GetDir() lcSub = InputBox('Subfolder','Select','forms',10000,'forms') DO case Case Upper(lcExtension) = 'SCX' lcType = 'K' Case Upper(lcExtension) = 'VCX' lcType = 'V' Case Upper(lcExtension) = 'LBX' lcType = 'B' Case Upper(lcExtension) = 'MNX' lcType = 'M' Case Upper(lcExtension) = 'FRX' lcType = 'R' Case Upper(lcExtension) = 'DBC' lcType = 'd' EndCase lcSkeleton = '*.'+lcExtension lcExt = 'SCC' lcTarg1 = 'c:\Check1' lcTarg2 = 'c:\Check2' Erase (Addbs(lcTarg1)+'*.*') Erase (Addbs(lcTarg2)+'*.*') CreateDirectories(lcDir1,lcSub) CreateDirectories(lcDir2,lcSub) CreateDirectories(lcTarg1,lcSub) CreateDirectories(lcTarg2,lcSub) GetText(lcDir1, lcTarg1, lcSub, lcSkeleton, lcExt, lcType) GetText(lcDir2, lcTarg2, lcSub, lcSkeleton, lcExt, lcType) FUNCTION CreateDirectories LPARAMETERS tcSource, tcSub tcSource = ADDBS(tcSource) If !Directory(tcSource) Md (tcSource) MD (tcSource+tcSub) ELSE IF !DIRECTORY(tcSource+tcSub) MD (tcSource+tcSub) endif Endif Function GetText Lparameters tcSource, tcTarget, tcSub, tcSkeleton, tcExt, tcType LOCAL ix, lnFiles, lcInFile, lcOutFile LOCAL ARRAY arrFiles[1] tcSource = ADDBS(tcSource)+ADDBS(tcSub) tcTarget = ADDBS(tcTarget)+ADDBS(tcSub) lnFiles = Adir(arrFiles, tcSource + tcSkeleton) For ix=1 To lnFiles lcInFile = tcSource+arrFiles[ix,1] lcOutFile = Forceext(tcTarget+arrFiles[ix,1], tcExt) Do (Home()+'scctext.prg') With lcInFile, tcType, lcOutFile, .T. EndforFor example to compare vcx'es in 2 projects I enter VCX as extension and Classes as subfolder and it creates text versions in (all projects have same base directory skeleton. ie: c:\myProj1\classes c:\myProj2\classes exist in both):