主题:showopen 可同时打开多个文件 但是79个图片报错,咋办
Y4587
[专家分:100] 发布于 2008-06-11 17:07:00
少点还行,都能打开并复制,但是我打开79个jpg图片就不行了。报错了。怎么办。
回复列表 (共10个回复)
沙发
Y4587 [专家分:100] 发布于 2008-06-11 17:14:00
越学越觉得自己太菜。过去做过几个程序,都是数据处理为主的,觉得自己还行。呵呵,现在都是处理文件的自己什么都不会了。哎。自卑了。。。。。。。
谢谢
板凳
cbl518 [专家分:57140] 发布于 2008-06-11 18:28:00
showopen 这是什么语句啊???
附件是什么啊?
3 楼
0901chang [专家分:10660] 发布于 2008-06-11 18:49:00
系统好像是提示:OLE的文件名缓冲不足,这个缓冲是OLE的,不是VFP的。
你就想办法少同时打开一些文件就结了。否则你就想办法增加OLE的缓冲空间。
4 楼
Y4587 [专家分:100] 发布于 2008-06-11 20:33:00
WITH this.Parent.OleCD1
.ShowOpen()
IF AT(CHR(0),.FileName)>0
文件列表=STRTRAN(.FileName,CHR(0),CHR(13)+CHR(10))
ELSE
文件列表=STRTRAN(.FileName," ",CHR(13)+CHR(10))
ENDIF
路径=MLINE(文件列表,1)
文件列表=STRTRAN(文件列表,路径+CHR(13)+CHR(10),"")
ENDWITH
CD d:\
IF ! DIRECTORY("pic")
MD pic
ENDIF
FOR i=1 TO MEMLINES(文件列表)
文件=路径+"\"+MLINE(文件列表,i)
COPY FILE (文件) TO pic\*.*
ENDFOR
WAIT WINDOW "已复制完毕!!!" NOWAIT
上面是源代码 是cbl518老师给弄的。呵呵。以前都好用,但是没弄太多文件,在实际应用中最多可能需要1000个文件 ,实际工作中300-500经常有的。所以不可以少弄。不行就换语句 。我实验了 Liqifeng同志的,foxer.dll可以复制这么多没问题,所以要是没有好办法,就换foxer的
foxer代码如下
local lcFileNames, lcStrFilter
local lcPath, lcFileName
*--lcStrFilter 应以 "||" 结尾。
lcStrFilter = "form (*.jpg)|*.jpg|class lib (*.bmp)|*.bmp|All files(*.*)|*.*||"
lcFileNames = QFGetFile2(lcStrFilter, "", 1)
if( empty(lcFileNames) )
return
endif
if( file(lcFileNames) ) && 只打开了一个文件.
?lcFileName
else
PSSetStringLine(lcFileNames)
lcPath = addbs(PSGetItem()) && 第一个字符串是路径名.
do while ( not PSIsEnd() )
lcFileName = PSGetItem()
?(lcPath + lcFileName)
**此处拷贝文件到指定文件夹内
**拷贝完成
enddo
endif
5 楼
Y4587 [专家分:100] 发布于 2008-06-11 20:34:00
对了 cbl518老师问我附件。我发了个图 就显示附件了。没有什么附件。
6 楼
cbl518 [专家分:57140] 发布于 2008-06-11 21:01:00
将:
COPY FILE (文件) TO pic\*.*
改为:
RENAME (文件) TO pic\*.*
7 楼
Y4587 [专家分:100] 发布于 2008-06-12 11:52:00
不是复制问题 是如果打开很多文件 .showopen()直接提示错误 错误提示后 选择挂起 箭头指向.showopen()
8 楼
Y4587 [专家分:100] 发布于 2008-06-12 18:55:00
放弃.showopen()了,改用foxer.dll了。
9 楼
0901chang [专家分:10660] 发布于 2008-06-13 06:35:00
我不想用第三方控件,用最笨办法:VFP的 list file 语句
list file 盘符\路径\*.* to _文件名文本.TXT
再对《_文件名文本.TXT》分析之后进行向应的处理,不知道这种方法能不能处理上万个文件。
10 楼
Y4587 [专家分:100] 发布于 2008-06-15 00:16:00
谢谢大家了,用foxer解决了。。。谢谢
我来回复