如何解决我如何为整个项目手动生成文本文件以在Visual FoxPro中进行比较例如.sca,.vca等
| 面临的挑战是,我正在将我的FoxPro代码检入源代码控制(使用Mercurial,但这不是此问题的重点),并且想要一种快速的方法来使FoxPro SCCTEXT输出与二进制输出一起使用而不使用Tools > Options > Projects > Active source control provider
功能。
作为我要生成的输出类型的示例,VFPX源包含许多此类文本.sca,.vca等文件。有什么方法可以按需生成这些文件吗?
解决方法
这是我用于为Project文件中的每个文件生成SCCText文件的代码。只需打开您的项目(以确保它是活动项目,然后运行此prg文件)。
(2011年6月10日更新:添加了一项新功能,如果原始源文件的日期时间比现有的SCC文件新,则该功能仅会生成新的SCC文本文件。本质上,如果VFP会仅生成一个新的SCC文件,自上次运行以来,源文件已更改。)
lnResponse = MessageBox(\'Run SSCText to generate ascii code files?\',3,\'Generate SCC files?\')
If lnResponse <> 6
Return
EndIf
*Clear All
*Release All
Set ClassLib to && Must clear them out,cause we\'re about to generate ascii files of them
lnCount = DoSCCTextOnProject()
? Chr(10)+Chr(13)
? \'Done. \' + Str(lnCount) + \' files processed.\'
*----------------------------------------------------------------------
Procedure DoSCCTextOnProject
Local loFile,loProject,lnCount
lcSCCText = Home(1) + \'SCCText.prg\'
lnCount = 0
If !File(lcSCCText)
Messagebox(\'Unable to find file \' + lcSCCText,16,\'Error\')
Return 0
Endif
Try
loProject = _vfp.ActiveProject
Catch To loEx
Endtry
If Type(\'loEx\') = \'O\'
Messagebox(\'There are no active projects\',64,\'Error\')
Return 0
Endif
lcSkipFiles = \'LIST-FILES-TO-SKIP-HERE\'
For Each loFile In loProject.Files
If Inlist(loFile.Type,\'V\',\'K\',\'R\') and ;
!InList(Upper(JustFname(loFile.name)),Upper(lcSkipFiles)) ;
and Fdate(loFile.name,1) > SCCFileDateTime(loFile.name)
? \'Generating: \' + loFile.Name
Do (lcSCCText) With loFile.Name
lnCount = lnCount + 1
Endif
Endfor
Return lnCount
*------------------------------------------------------------------
Procedure SCCFileDateTime(tcFile)
lcSCCFilename = Upper(Strtran(Upper(tcFile),\'.SCX\',\'.SCA\'))
lcSCCFilename = Strtran(lcSCCFilename,\'.VCX\',\'.VCA\')
lcSCCFilename = Strtran(lcSCCFilename,\'.FRX\',\'.FRA\')
If File(lcSCCFilename)
Return Fdate(lcSCCFilename,1)
Else
Return {^1900-01-01 00:00:00}
EndIf
EndProc
,您可以设置scctext.prg(随VFP一起提供)并使用项目挂钩来生成文件,而不是设置源代码控制提供程序,有关使用Subversion的示例实现,请参见http://paulmcnett.com/scX.php。
编辑:您是否看过Codeplex上的备用SCCText
另请参见http://www.foxpert.com/docs/cvs.en.htm。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。