回 帖 发 新 帖 刷新版面

主题:memo 怎样改写一行

Select 7 *打开dbf文件,清空
zap        
   * 这是一个含HDR、JOB两个备注字段的表TEST
Append Blank       &&向表中添加一个空记录。
Append Memo HDR From d:\HDR.txt   &&从hdr.txt提取数据追加到hdr字段中
Append Memo JOB From d:\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))+'">')  &&替换文件名
    上面这句是原来的,第一个文件是好的,目录加 文件名,后面的都不行,都是,新的文件名加上上面的文件名最后一个是所有的文件名,第一个在最后出现。
  
  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,"<IMG SRC = ","<IMG SRC = "+'"'+Alltrim(cPath+ASD(I,1))+'">')  &&替换文件名
    这句是我改写的,也不行,第一个就是,新文件名加 job字段里的不想要的文件名,后面也都是所有的文件名都在。就像插入的,不是改写的。怎样能改写这一行呢。



    StrtoFile(JOB,cText,.t.)    &&将修改后的JOB字段内容并追加到TXT文件
Endfor



job  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]
PRT PID = 004
PRT TYP = STD
PRT QTY = 001
IMG FMT = EXIF2 -J
<IMG SRC = "d:\2008\o0000001\pic\image\洗像.JPG">"d:\2008\o0000001\pic\image\刻录关盘副本.JPG">"d:\2008\o0000001\pic\image\ZUOJIANTOU.JPG">"d:\2008\o0000001\pic\image\YOUJIANTOU.JPG">"../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

Replace JOB With Strtran(JOB,Mline(JOB,Atline("<IMG SRC = ",JOB)),Left(Mline(JOB,Atline("<IMG SRC = ",JOB)),11)+'"'+Alltrim(cPath+ASD(I,1))+'">') 
这句是fyyylyl大侠给我弄地,我经过一番研究已经明白其中道理,可是现在就是不是改写是插入了,怎样能把他改成改写状态。把这一行找到,然后改写内容,而不是添加内容。

谢谢大家。

回复列表 (共10个回复)

沙发

1   获取修改行的内容:
cmem=MLINE(备注字段,n你要修改的行序号)

2  修改行的新内容

修改后内容的变量= ……

板凳

替换修改行:

REPLACE 备注字段 WITH STRTRAN(备注字段,cmem,修改后内容的变量)

3 楼

删除修改行:
REPLACE 备注字段 WITH STRTRAN(备注字段+CHR(13)+CHR(10),cmem+CHR(13)+CHR(10))

4 楼

呵呵,我咋就没想到呢,还是这几个命令,得到不同的结果,我以为还有别的我不知道的命令呢。谢谢,cbl518老师,谢谢,

5 楼

还是不行,愁死了差哪里呢,strtran( ) 函数

在第一个字符表达式或备注字段中,搜索第二个字符表达式或备注字段,并用第三个字符表达式或备注字段替换每次出现的第二个字符表达式或备注字段。
 原来的语句也还是这个意思,cbl518老师也是这个意思,可是就是不行,为啥呢。
     hang=Mline(JOB,Atline("<IMG SRC = ",JOB))
    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,"<IMG SRC = "+'"'+Alltrim(cPath+ASD(I,1))+'">')  &&替换文件名

出来成了这个样子

[JOB]
PRT PID = 004
PRT TYP = STD
PRT QTY = 001
IMG FMT = EXIF2 -J
<IMG SRC = "d:\2008\o0000001\pic\image\IMG_0615.JPG">"d:\2008\o0000001\pic\image\IMG_0614.JPG">"d:\2008\o0000001\pic\image\IMG_0613.JPG">"d:\2008\o0000001\pic\image\IMG_0612.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

6 楼

你在编的是什么啊~!
你怎么不看我给你的思路啊!

7 楼

[quote]1   获取修改行的内容:
cmem=MLINE(备注字段,n你要修改的行序号)

2  修改行的新内容

修改后内容的变量= ……[/quote]


你把要修改内容的表达式,修改正确后,最后再替换表中原来的句子。

8 楼

你再好好看看我提示给你的每一步部署,和运用的变量。

9 楼

hang=Mline(JOB,Atline("<IMG SRC = ",JOB))
     gai="<IMG SRC = "+'"'+Alltrim(cPath+ASD(I,1))+'">'
    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,gai)  &&替换文件名

改成这样了还是不行,这是老师你的意思不,是不是asd(I,1)这句有毛病,,,,,

出来这样的
[JOB]
PRT PID = 002
PRT TYP = STD
PRT QTY = 001
IMG FMT = EXIF2 -J
<IMG SRC = "d:\2008\o0000001\pic\image\洗像.JPG">"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

10 楼

有个问题 忘说了 第一个JOB是好的,第二个以后都是坏的。

我来回复

您尚未登录,请登录后再回复。点此登录或注册