主题:都来帮忙吧 我快不行了
Y4587
[专家分:100] 发布于 2008-12-21 22:16:00
aa="\image\"
cPath=mulu+aa &&存放JPG的文件夹
cText="d:\4587数码收件系统\File.Txt" &&生成的TXT文件
StrtoFile('',cText,.f.) &&TXT文件清空
Select 7
zap
* Creat Table Test(HDR M,JOB M) &&建一个含HDR、JOB两个备注字段的表TEST
Append Blank &&向表中添加一个空记录。
Append Memo HDR From d:\4587数码收件系统\HDR.txt &&从hdr.txt提取数据追加到hdr字段中
Append Memo JOB From d:\4587数码收件系统\JOB.txt &&从job.txt提取数据追加到job字段中
Piclist=Adir(ASD,cPath+"*.JPG") &&将照片数量,及文件信息保存到asd数组
StrtoFile(HDR,cText,.t.) &&将HDR字段(“第一段”)内容写到TXT文件中
For I=1 To Alen(ASD,1) &&根据ASD数组中的信息逐条修改JOB字段内容并追加到TXT文件
*Replace JOB With Strtran(JOB,Mline(JOB,Atline("PRT PID = ",JOB)),Left(Mline(JOB,Atline("PRT PID = ",JOB)),10)+Padl(Alltrim(Str(I)),3,"0")) &&替换文件编号
*Replace JOB With Strtran(JOB,Mline(JOB,Atline("<IMG SRC = ",JOB)),Left(Mline(JOB,Atline("<IMG SRC = ",JOB)),11)+'"'+Alltrim(cPath+ASD(I,1))+'">') &&替换文件名
hang=Mline(JOB,Atline("<IMG SRC = ",JOB))
*_display memory like asd
ww=asd(I,1)
*?ww
gai=''
gai1='<IMG SRC = '
gai2='"'
gai3=ALLTRIM(cPath+ASD(I,1))
gai4='">'
gai=gai1+gai2+gai3+gai4
?gai
wait''
Replace JOB With Strtran(JOB,Mline(JOB,Atline("PRT PID = ",JOB)),Left(Mline(JOB,Atline("PRT PID = ",JOB)),10)+Padl(Alltrim(Str(I)),3,"0")) &&替换文件编号
Replace JOB With Strtran(JOB,hang,'210602197212254018') &&替换文件名
Replace JOB With Strtran(JOB,'210602197212254018',gai)
* ......&&需要修改的参数均可在此修改
StrtoFile(JOB,cText,.t.) &&将修改后的JOB字段内容并追加到TXT文件
Endfor
**************************
thisform.refresh
*Replace JOB With Strtran(JOB,Mline(JOB,Atline("PRT PID = ",JOB)),Left(Mline(JOB,Atline("PRT PID = ",JOB)),10)+Padl(Alltrim(Str(I)),3,"0")) &&替换文件编号
*Replace JOB With Strtran(JOB,Mline(JOB,Atline("<IMG SRC = ",JOB)),Left(Mline(JOB,Atline("<IMG SRC = ",JOB)),11)+'"'+Alltrim(cPath+ASD(I,1))+'">') &&替换文件名
这是原来 的两句第一句话好用 可以正确替换文件编号,第二句话可以正确替换第一个job字段的文件名,后来的都是累加的文件名 就是第三个文件名后面是第二个文件名第四个后面是第三个和第二个文件名 第五个后面是第四个+第三个+第二个文件名,我又给改写了一下,还是一样的结果可是呢有时候到第三个都是好的都是一个文件名 后面的又开始累加了,最好的时候就是出来前三个是好的,如果我直接替换为'2106027212254018'就好了 可以全部替换 我试验了16个都好的,再把这个字符串替换就又不行了。
Replace JOB With Strtran(JOB,'210602197212254018',gai)
差哪啊,,,,,救命啊 弄了三个晚上了。要死了
回复列表 (共9个回复)
沙发
cbl518 [专家分:57140] 发布于 2008-12-22 00:11:00
d:\4587数码收件系统\HDR.txt
d:\4587数码收件系统\JOB.txt
是什么啊!
你把文件发到我的信箱!
板凳
cbl518 [专家分:57140] 发布于 2008-12-22 00:16:00
你把追加后的字段内容写出来!
再把改后,你需要的字段内容写出来!
出错后的内容也写出来!
3 楼
Y4587 [专家分:100] 发布于 2008-12-22 21:56:00
都不大我就发这里吧
****jop.txt不包含这行******
[JOB]
PRT PID = 001
PRT TYP = STD
PRT QTY = 001
IMG FMT = EXIF2 -J
<IMG SRC = "../image/DCIM/100NIKON/DSCN2896.JPG">
VUQ RGN = BGN
VUQ VNM = "NORITSU KOKI" -ATR "QSSPrint"
VUQ VER = 01.00
PRT CVP1 = 1 -STR "CT-2-1 0584 <DSCN2896.JPG> \x0e\xc1\x0f AUX"
PRT CVP2 = 0
VUQ RGN = END
*上面是job.txt,包含空白行
******hdr.txt不包含这一行
[HDR]
GEN REV = 01.00
GEN CRT = "NORITSU KOKI" -01.00
GEN DTM = 2008:12:09:13:18:24
VUQ RGN = BGN
VUQ VNM = "NORITSU KOKI" -ATR "QSSPrint"
VUQ VER = 01.00
PRT PSL = NML -PSIZE "6''"
PRT PCH = 005
GEN INP = "Other-M"
VUQ RGN = END
*上面是hdr.txt包含空白行
*********执行文件,有点乱,没办法试验了各种办法
aa="\image\"
cPath=mulu+aa &&存放JPG的文件夹
cText="d:\4587数码收件系统\File.Txt" &&生成的TXT文件
StrtoFile('',cText,.f.) &&将修改后的JOB字段内容并追加到TXT文件
Select 7
zap
* Creat Table Test(HDR M,JOB M) &&建一个含HDR、JOB两个备注字段的表TEST
Append Blank &&向表中添加一个空记录。
Append Memo HDR From d:\4587数码收件系统\HDR.txt &&从hdr.txt提取数据追加到hdr字段中
Append Memo JOB From d:\4587数码收件系统\JOB.txt &&从job.txt提取数据追加到job字段中
Piclist=Adir(ASD,cPath+"*.JPG") &&将照片数量,及文件信息保存到asd数组
StrtoFile(HDR,cText,.t.) &&将HDR字段(“第一段”)内容写到TXT文件中
For I=1 To Alen(ASD,1) &&根据ASD数组中的信息逐条修改JOB字段内容并追加到TXT文件
*Replace JOB With Strtran(JOB,Mline(JOB,Atline("PRT PID = ",JOB)),Left(Mline(JOB,Atline("PRT PID = ",JOB)),10)+Padl(Alltrim(Str(I)),3,"0")) &&替换文件编号
*Replace JOB With Strtran(JOB,Mline(JOB,Atline("<IMG SRC = ",JOB)),Left(Mline(JOB,Atline("<IMG SRC = ",JOB)),11)+'"'+Alltrim(cPath+ASD(I,1))+'">') &&替换文件名
hang=Mline(JOB,Atline("<IMG SRC = ",JOB))
*_display memory like asd
ww=asd(I,1)
*?ww
gai=''
gai1='<IMG SRC = '
gai2='"'
gai3=ALLTRIM(cPath+ASD(I,1))
gai4='">'
gai=gai1+gai2+gai3+gai4
?gai
wait''
Replace JOB With Strtran(JOB,Mline(JOB,Atline("PRT PID = ",JOB)),Left(Mline(JOB,Atline("PRT PID = ",JOB)),10)+Padl(Alltrim(Str(I)),3,"0")) &&替换文件编号
Replace JOB With Strtran(JOB,hang,'210602197212254018') &&替换文件名
Replace JOB With Strtran(JOB,'210602197212254018',gai)
* ......&&需要修改的参数均可在此修改
StrtoFile(JOB,cText,.t.) &&将修改后的JOB字段内容并追加到TXT文件
Endfor
**************************
thisform.refresh
****************************************执行文件完毕
生成的txt文件
[HDR]
GEN REV = 01.00
GEN CRT = "NORITSU KOKI" -01.00
GEN DTM = 2008:12:09:13:18:24
VUQ RGN = BGN
VUQ VNM = "NORITSU KOKI" -ATR "QSSPrint"
VUQ VER = 01.00
PRT PSL = NML -PSIZE "6''"
PRT PCH = 005
GEN INP = "Other-M"
VUQ RGN = END
[JOB]
PRT PID = 001
PRT TYP = STD
PRT QTY = 001
IMG FMT = EXIF2 -J
<IMG SRC = "d:\2008\o0000001\pic\image\IMG_0615.JPG">
VUQ RGN = BGN
VUQ VNM = "NORITSU KOKI" -ATR "QSSPrint"
VUQ VER = 01.00
PRT CVP1 = 1 -STR "CT-2-1 0584 <DSCN2896.JPG> \x0e\xc1\x0f AUX"
PRT CVP2 = 0
VUQ RGN = END
[JOB]
PRT PID = 002
PRT TYP = STD
PRT QTY = 001
IMG FMT = EXIF2 -J
<IMG SRC = "d:\2008\o0000001\pic\image\1.JPG">"d:\2008\o0000001\pic\image\IMG_0615.JPG">
VUQ RGN = BGN
VUQ VNM = "NORITSU KOKI" -ATR "QSSPrint"
VUQ VER = 01.00
PRT CVP1 = 1 -STR "CT-2-1 0584 <DSCN2896.JPG> \x0e\xc1\x0f AUX"
PRT CVP2 = 0
VUQ RGN = END
[JOB]
PRT PID = 003
PRT TYP = STD
PRT QTY = 001
IMG FMT = EXIF2 -J
<IMG SRC = "d:\2008\o0000001\pic\image\IMG_0585.JPG">"d:\2008\o0000001\pic\image\1.JPG">"d:\2008\o0000001\pic\image\IMG_0615.JPG">
VUQ RGN = BGN
VUQ VNM = "NORITSU KOKI" -ATR "QSSPrint"
VUQ VER = 01.00
PRT CVP1 = 1 -STR "CT-2-1 0584 <DSCN2896.JPG> \x0e\xc1\x0f AUX"
PRT CVP2 = 0
VUQ RGN = END
[JOB]
PRT PID = 004
PRT TYP = STD
PRT QTY = 001
IMG FMT = EXIF2 -J
<IMG SRC = "d:\2008\o0000001\pic\image\IMG_0586.JPG">"d:\2008\o0000001\pic\image\IMG_0585.JPG">"d:\2008\o0000001\pic\image\1.JPG">"d:\2008\o0000001\pic\image\IMG_0615.JPG">
VUQ RGN = BGN
VUQ VNM = "NORITSU KOKI" -ATR "QSSPrint"
VUQ VER = 01.00
PRT CVP1 = 1 -STR "CT-2-1 0584 <DSCN2896.JPG> \x0e\xc1\x0f AUX"
PRT CVP2 = 0
VUQ RGN = END
[JOB]
PRT PID = 005
PRT TYP = STD
PRT QTY = 001
IMG FMT = EXIF2 -J
<IMG SRC = "d:\2008\o0000001\pic\image\IMG_0588.JPG">"d:\2008\o0000001\pic\image\IMG_0586.JPG">"d:\2008\o0000001\pic\image\IMG_0585.JPG">"d:\2008\o0000001\pic\image\1.JPG">"d:\2008\o0000001\pic\image\IMG_0615.JPG">
VUQ RGN = BGN
VUQ VNM = "NORITSU KOKI" -ATR "QSSPrint"
VUQ VER = 01.00
PRT CVP1 = 1 -STR "CT-2-1 0584 <DSCN2896.JPG> \x0e\xc1\x0f AUX"
PRT CVP2 = 0
VUQ RGN = END
[JOB]
PRT PID = 006
PRT TYP = STD
PRT QTY = 001
IMG FMT = EXIF2 -J
<IMG SRC = "d:\2008\o0000001\pic\image\IMG_0594.JPG">"d:\2008\o0000001\pic\image\IMG_0588.JPG">"d:\2008\o0000001\pic\image\IMG_0586.JPG">"d:\2008\o0000001\pic\image\IMG_0585.JPG">"d:\2008\o0000001\pic\image\1.JPG">"d:\2008\o0000001\pic\image\IMG_0615.JPG">
VUQ RGN = BGN
VUQ VNM = "NORITSU KOKI" -ATR "QSSPrint"
VUQ VER = 01.00
PRT CVP1 = 1 -STR "CT-2-1 0584 <DSCN2896.JPG> \x0e\xc1\x0f AUX"
PRT CVP2 = 0
VUQ RGN = END
4 楼
Y4587 [专家分:100] 发布于 2008-12-22 21:59:00
我就是想要生成一个这样的txt文件
[HDR]
GEN REV = 01.00
GEN CRT = "NORITSU KOKI" -01.00
GEN DTM = 2008:12:09:13:18:24
VUQ RGN = BGN
VUQ VNM = "NORITSU KOKI" -ATR "QSSPrint"
VUQ VER = 01.00
PRT PSL = NML -PSIZE "6''"
PRT PCH = 005
GEN INP = "Other-M"
VUQ RGN = END
[JOB]
PRT PID = 001
PRT TYP = STD
PRT QTY = 001
IMG FMT = EXIF2 -J
<IMG SRC = "d:\2008\o0000001\pic\image\IMG_0615.JPG">
VUQ RGN = BGN
VUQ VNM = "NORITSU KOKI" -ATR "QSSPrint"
VUQ VER = 01.00
PRT CVP1 = 1 -STR "CT-2-1 0584 <DSCN2896.JPG> \x0e\xc1\x0f AUX"
PRT CVP2 = 0
VUQ RGN = END
&&<IMG SRC = "d:\2008\o0000001\pic\image\IMG_0615.JPG">现在这句话老是不能改写,老是在后面添加。。
5 楼
cbl518 [专家分:57140] 发布于 2008-12-23 05:19:00
告诉你怎么不听?????????
1 获取修改行的内容:
cmem=MLINE(备注字段,n你要修改的行序号)
2 修改行的新内容
修改后内容的变量= ……
你把要修改内容的表达式,修改正确后,
最后再用,relb 替换表中原来的句子。
6 楼
cbl518 [专家分:57140] 发布于 2008-12-23 06:41:00
Creat Table Test(HDR M,JOB M) &&建一个含HDR、JOB两个备注字段的表TEST
INSERT into Test(HDR,OB) Test valu(FILETOSTR("d:\4587数码收件系统\HDR.txt"),FILETOSTR("d:\4587数码收件系统\JOB.txt"))
StrtoFile(HDR,cText,.t.) &&将HDR字段(“第一段”)内容写到TXT文件中
hang=Mline(JOB,Atline("<IMG SRC = ",JOB))
gai="<IMG SRC = "
For I=1 To Adir(ASD,cPath+"*.JPG") &&根据ASD数组中的信息逐条修改JOB字段内容并追加到TXT文件
gai=gai+'"'+ALLTRIM(cPath+ASD(I,1))+'">'
ENDFOR
gai=Strtran(JOB,hang,gai)
gai=Strtran(gai,Mline(gai,Atline("PRT PID = ",gai)),"PRT PID = "+Padl(I,3,"0")) &&替换文件编号
IF MESSAGEBOX(gai,36)=6
*最后替换
Replace JOB With Strtran(JOB,'hang',gai)
ENDIF
7 楼
cbl518 [专家分:57140] 发布于 2008-12-23 06:43:00
如若 gai 不对,你再修改
修改对后再替换源字段
8 楼
Y4587 [专家分:100] 发布于 2008-12-23 22:46:00
太谢谢老师了 您的代码改成这样终于行了,您给的源代码有点问题,不能替换和生成的txt把<img src 都替换成了所有job项了。
aa="\image\"
cPath=mulu+aa &&存放JPG的文件夹
cText="d:\4587数码收件系统\File.Txt" &&生成的TXT文件
StrtoFile('',cText,.f.) &&将修改后的JOB字段内容并追加到TXT文件
Select 7
zap
Append Memo HDR From d:\4587数码收件系统\HDR.txt &&从hdr.txt提取数据追加到hdr字段中
Append Memo JOB From d:\4587数码收件系统\JOB.txt &&从job.txt提取数据追加到job字段中
Piclist=Adir(ASD,cPath+"*.JPG") &&将照片数量,及文件信息保存到asd数组
StrtoFile(HDR,cText,.t.) &&将HDR字段(“第一段”)内容写到TXT文件中
hang=Mline(JOB,Atline("<IMG SRC = ",JOB))
For I=1 To Adir(ASD,cPath+"*.JPG") &&根据ASD数组中的信息逐条修改JOB字段内容并追加到TXT文件
gai="<IMG SRC = "
gai=gai+'"'+ALLTRIM(cPath+ASD(I,1))+'">'
gai=Strtran(JOB,hang,gai)
gai=Strtran(gai,Mline(gai,Atline("PRT PID = ",gai)),"PRT PID = "+Padl(I,3,"0")) &&替换文件编号
*IF MESSAGEBOX(gai,36)=6
*最后替换
*Replace JOB With Strtran(JOB,hang,gai)
StrtoFile(gai,cText,.t.)
*ENDIF
ENDFOR
* ......&&需要修改的参数均可在此修改
* StrtoFile(JOB,cText,.t.) &&将修改后的JOB字段内容并追加到TXT文件
*Endfor
**************************
thisform.refresh
[JOB]
PRT PID = 008
PRT TYP = STD
PRT QTY = 001
IMG FMT = EXIF2 -J
<IMG SRC = "d:\2008\o0000001\pic\image\ZUOJIANTOU.JPG">
VUQ RGN = BGN
VUQ VNM = "NORITSU KOKI" -ATR "QSSPrint"
VUQ VER = 01.00
PRT CVP1 = 1 -STR "CT-2-1 0584 <DSCN2896.JPG> \x0e\xc1\x0f AUX"
PRT CVP2 = 0
VUQ RGN = END
[JOB]
PRT PID = 009
PRT TYP = STD
PRT QTY = 001
IMG FMT = EXIF2 -J
<IMG SRC = "d:\2008\o0000001\pic\image\刻录关盘副本.JPG">
VUQ RGN = BGN
VUQ VNM = "NORITSU KOKI" -ATR "QSSPrint"
VUQ VER = 01.00
PRT CVP1 = 1 -STR "CT-2-1 0584 <DSCN2896.JPG> \x0e\xc1\x0f AUX"
PRT CVP2 = 0
VUQ RGN = END
[JOB]
PRT PID = 010
PRT TYP = STD
PRT QTY = 001
IMG FMT = EXIF2 -J
<IMG SRC = "d:\2008\o0000001\pic\image\洗像.JPG">
VUQ RGN = BGN
VUQ VNM = "NORITSU KOKI" -ATR "QSSPrint"
VUQ VER = 01.00
PRT CVP1 = 1 -STR "CT-2-1 0584 <DSCN2896.JPG> \x0e\xc1\x0f AUX"
PRT CVP2 = 0
VUQ RGN = END
这是生成的后面的三个前面的都是好的。谢谢 再次感谢 没分了要不都给三十分
9 楼
cbl518 [专家分:57140] 发布于 2008-12-23 22:55:00
不明白你说的哪里不对?
我来回复