| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4818 人关注过本帖, 1 人收藏
标题:题外话:准考证是 PDF 格式,一张纸中有 8 人,如何打印其中一个人准考证?
只看楼主 加入收藏
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1528
专家分:180
注 册:2006-6-3
收藏
得分:0 
sdta班主:
请你指点一下,循环体的代码含义,整体思路如何,对于数组还是较为模糊?
(1)i=i+1,你说表示各段数,
考证中i=i+1-->i=0+1-->1好理介,
姓名i=i+1-->2,这个2哪里来?它与上面的准考证中i=1有关吗,如果有关依次累计历史--5,地理--6
(2)表示数组中行数吗?但
为什么下面一段代码中 要出现lni=lni+1?,前面内容(如准考证,姓名,性别,报名点等)为什么不要lni=lni+1?
Case "历史"$Ab[lnI]                        第一次循环         第二次循环,三次,四次。
            I=I+1      ---------->   ?i=i+1--->5 (第5段)      5 (。。)    5     5
            Kskm1="历史"
            =Alines(A5,Ab[lnI],Kskm1)
            Kdmc1=Chrtran(A5[2],"0123456789","")
            Kc1=Strtran(A5[2],Kdmc1,"")
            Kdmc2=Chrtran(A5[3],"0123456789","")
            Kc2=Strtran(A5[3],Kdmc2,"")
            Zw1=Left(Ab[lnI+1],6)
            Zw2=Right(Ab[lnI+1],6)
            lnI=lnI+1--------->?lni=lni+1---------->9(这个9哪来?)  32        52    72
       Case "地理"$Ab[lnI]
            I=I+1
            Kskm2="地理"
            =Alines(A6,Ab[lnI],Kskm2)
            Kdmc11=Chrtran(A6[2],"0123456789","")
            Kc11=Strtran(A6[2],Kdmc11,"")
            Kdmc21=Chrtran(A6[3],"0123456789","")
            Kc21=Strtran(A6[3],Kdmc21,"")
            Zw11=Left(Ab[lnI+1],6)
            Zw21=Right(Ab[lnI+1],6)
            lnI=lnI+1

2。还有 =Alines(A2,Ab[lnI],"姓     名","性别")中要显示内容
?ab(2)显示考生姓名
?ab(3)显示性别
?ab(4)显示姓名
?ab(1)为什么无显示?



[ 本帖最后由 sylknb 于 2014-7-9 10:14 编辑 ]
2014-07-09 09:31
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9799
专家分:26886
注 册:2012-2-5
收藏
得分:0 
第一段 I=I+1  => I=1
准考证号130603080008准考证号130603080009
第二段 I=I+1  => I=2
     名陈芳颖性别女姓     名陈楠性别男
第三段 I=I+1  => I=3
报名点外国语学校报名点外国语学校
第四段 I=I+1  => I=4
     级高一(1)班班     级高一(1)班
对于变量I下面这行可以忽略,但对于变量lnI下面这行不能忽略
考试科目考点名称考 场座 位考试科目考点名称考 场座 位
第五段 下面两行做为一段截取字符 I=I+1  => I=5
历史外国语学校17历史外国语学校02 lnI
515505515500    lnI=lnI+1
第六段 下面两行做为一段截取字符 I=I+1  => I=6
地理外国语学校14地理外国语学校04 lnI
615488615499    lnI=lnI+1

2。还有 =Alines(A2,Ab[lnI],"姓     名","性别")中要显示内容
?ab(2)显示考生姓名
?ab(3)显示性别
?ab(4)显示姓名
?ab(1)为什么无显示?
这个问题自己看帮助文件Alines()的用法
01.
02.
03.
04.
05. 准考证号130603080008准考证号130603080009
06. 姓     名陈芳颖性别女姓     名陈楠性别男
07. 报名点外国语学校报名点外国语学校
08. 班     级高一(1)班班     级高一(1)班
09.
10. 考试科目考点名称考 场座 位考试科目考点名称考 场座 位
11.
12. 历史外国语学校17历史外国语学校02
13. 515505515500
14.
15. 地理外国语学校14地理外国语学校04
16. 615488615499
这是1.Txt文件中第一个记录中的原始内容,共有16行

lnI=lnI+1--------->?lni=lni+1---------->9(这个9哪来?)  32        52    72
如果你将1.Txt文件中前4行空白行删除,上面的结果是正确的,否则此处的lnI应该为13。
lnI就是前面标示的行数。
代码中用到的For  EndFor、Do Case  EndCase 命令应该很熟悉了吧,经常用SQL-SELECT命令,把VFP中的基础命令都忘的差不多了吧。
VFP编程的基础就是VFP帮助文件中的命令、函数等等的组合,离开了这些基础知识,寸步难行。VFP帮助文件不知道楼主看过几遍。

[ 本帖最后由 sdta 于 2014-7-9 11:49 编辑 ]

坚守VFP最后的阵地
2014-07-09 11:03
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1528
专家分:180
注 册:2006-6-3
收藏
得分:0 
谢谢,很详细,我也慢慢摸出了一些,加上你的指教现清楚了不少。
下面还是个老问题:
=Alines(A2,Ab[lnI],"姓     名","性别")它表示行数
?ab(2)显示考生姓名
?ab(3)显示性别
?ab(4)显示姓名
?ab(1)为什么无显示?为什么数组第一行不显示同容?
关于?a(1)不显示内容,帮助文件Alines()的用法中没有讲到,或自已没有弄懂

而如下能显示?b(1)---1
a='1,2,3,4,5'
=Alines(b,a,",")
?b(1)--1   而它能显示数组中第一行的内容?
?b(2)--2
...

[ 本帖最后由 sylknb 于 2014-7-9 12:32 编辑 ]
2014-07-09 12:09
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9799
专家分:26886
注 册:2012-2-5
收藏
得分:0 
在命令窗口中输入
cStr="姓     名陈芳颖性别女姓     名陈楠性别男"
=Alines(A2,cStr,"姓     名","性别")
List Memory like A2

看结果就明白了
要学会看代码的执行结果
字符串cStr中共有四个分隔符,分别是"姓     名"与"性别"各两个
第一个分隔符"姓     名,产生的数组元素是A2[1],只包含"姓     名"前的内容(不包含后面的内容),而这个内容为空,所以 A2[1]=""

第二个分隔符是"性别",产生的数组元素是A2[2],只包含"性别"前的内容(不包含后面的内容),而这个内容为"陈芳颖",所以 A2[2]="陈芳颖"

第三个分隔符也是"姓     名",产生的数组元素是A2[3],只包含"姓     名"前的内容(不包含后面的内容),而这个内容为"女",所以 A2[3]="女"

第四个分隔符是"性别",产生的数组元素是A2[4]与A2[5],包含"性别"前后(只有最后一个分隔符包含前后的内容,如果最后一个分隔符后面没有内容,只包含最后一个分隔符前面的内容,此时数组元素只有一个)的内容,而这个内容分别为"陈楠"与"男",所以 A2[4]="陈楠" A2[5]="男"

[ 本帖最后由 sdta 于 2014-7-9 13:34 编辑 ]

坚守VFP最后的阵地
2014-07-09 12:36
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1528
专家分:180
注 册:2006-6-3
收藏
得分:0 
以下是引用sdta在2014-7-9 12:36:48的发言:

在命令窗口中输入
 
看结果就明白了
要学会看代码的执行结果
字符串cStr中共有四个分隔符,分别是"姓     名"与"性别"各两个
第一个分隔符"姓     名,产生的数组元素是A2[1],只包含"姓     名"前的内容(不包含后面的内容),而这个内容为空,所以 A2[1]=""
 
第二个分隔符是"性别",产生的数组元素是A2[2],只包含"性别"前的内容(不包含后面的内容),而这个内容为"陈芳颖",所以 A2[2]="陈芳颖"
 
第三个分隔符也是"姓     名",产生的数组元素是A2[3],只包含"姓     名"前的内容(不包含后面的内容),而这个内容为"女",所以 A2[3]="女"
 
第四个分隔符是"性别",产生的数组元素是A2[4]与A2[5],包含"性别"前后(只有最后一个分隔符包含前后的内容,如果最后一个分隔符后面没有内容,只包含最后一个分隔符前面的内容,此时数组元素只有一个)的内容,而这个内容分别为"陈楠"与"男",所以 A2[4]="陈楠" A2[5]="男"
你的解释一目了然。但帮助文件:指定一个或多个在cExpression中的分隔元素的字符。当指定了 cParseChar ,每当找到 cParseChar 时,一行结束,下一行从 cParseChar 之后的字符开始。这句话里到底在讲什么,看不出与你的解释相同的含义。我曾记得好象什么函数(不同这个函数)也谈到分隔符,它里面的解释与你的解释很相似。

[ 本帖最后由 sylknb 于 2014-7-9 14:40 编辑 ]
2014-07-09 14:19
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9799
专家分:26886
注 册:2012-2-5
收藏
得分:0 
下一行是指从下一个分隔符开始

坚守VFP最后的阵地
2014-07-09 14:56
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9799
专家分:26886
注 册:2012-2-5
收藏
得分:0 
我记得VFP9中与分隔符相关的函数有下面几个
Alines()
Strextract()
GetWordNum()
GetWordCount()
这些函数是截取字符串的常用函数

Occurs()
At()
Atline()
......
这些是字符串位置查找函数

坚守VFP最后的阵地
2014-07-09 15:05
sylknb
Rank: 4
等 级:贵宾
威 望:14
帖 子:1528
专家分:180
注 册:2006-6-3
收藏
得分:0 
谢谢sdta班主:
 不厌其烦地指教。
2014-07-09 18:32
快速回复:题外话:准考证是 PDF 格式,一张纸中有 8 人,如何打印其中一个人准考 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019562 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved