每日导入文件

时间:2013-05-16 16:40:43

标签: foxpro visual-foxpro

我有一个进程需要每天运行将从FTP站点下拉的文件导入到同一文件夹中。除了抓取文件之外,我已经完成了整个项目。

有没有办法让FoxPro以这样的格式抓取文件:appointmentlist_METER_05152013.txt appointmentlist_RADIO_05132013.txt

这些文件每天早上6点都在这个文件夹中,但我需要确保我为其中一个FoxPro程序获取METER,另一个应该获取RADIO。每天更改的唯一内容是文件名中的日期。

如果需要,我可以确保在FTP检索过程中将每个文件拉入另一个文件夹,并且每个文件夹中只包含当天的文件。

非常感谢任何帮助。

如果您需要更多信息,请随时提出。

2 个答案:

答案 0 :(得分:2)

您可以使用ADIR()函数在特定驱动器和目录上创建文件数组。

 SET DEFAULT TO c:\Mydirectory
 MyFilesCount = ADIR(MyArray, '*.TXT')   &&Get all TXT files at this location

然后,您可以通过上面的数组循环,并使用ATC()函数搜索包含某个字符串的文件。

 FOR n = 1 TO MyFilesCount
      IF ATC("METER", MyArray[n,1] ) > 0    &&First column contains file name
         ***Run METER process
      ENDIF
      IF ATC("RADIO", MyArray[n,1] ) > 0   &&First column contains file name
         ***Run RADIO process
      ENDIF
 ENDFOR

答案 1 :(得分:0)

m.CDATE = Transform(Day(Date()), '@L 99') + Transform(Month(Date()), '@L 99') + Transform(Year(Date()), '@L 9999')

m.CFILE = 'C:\SOMEFOLDER\appointmentlist_RADIO_' + M.CDATE + '.txt'

If File(M.CFILE) Then
    Do RADIOPROCESS With m.CFILE
Endif

m.CFILE = 'C:\SOMEFOLDER\appointmentlist_METER_' + M.CDATE + '.txt'

If File(M.CFILE) Then
    Do METERPROCESS With m.CFILE
Endif