查看上一个主题 :: 查看下一个主题
|
作者 |
信息 |
Vishwaroopa
新的用户
已加入:2007年3月8日 帖子:8 所在地:美国
|
|
|
|
任何人都可以帮助获取将输入名字* MI *姓氏转换为姓氏名中间名的cobolcode。输入为30个字节长(F * M * L),以向L F M输出30个字节长。
输入:Van * Dame * start
输出:启动Van Dame
输入:John ** doe
输出:Doe John |
|
回到顶部 |
|
 |
迪克·谢勒
主持人荣誉

已加入:2006年11月23日 帖子:19245 位置:矩阵内部
|
|
|
|
你好,
名称字段“ *”是否定界?
是否会始终填充所有3个组件(即没有中间名/首字母的人呢?)?请描述贵组织中有关名称的任何“规则”。
您是否担心将名字和姓氏的首字母大写转换为其余的小写字母?我只是因为你的例子而问。 |
|
回到顶部 |
|
 |
Vishwaroopa
新的用户
已加入:2007年3月8日 帖子:8 所在地:美国
|
|
|
|
不,三个组件将不会总是被填充。如果看下面的第二个例子。有时未填充中间名。
输入:John ** doe
输出:Doe John
我不担心大写
谢谢你的帮助 |
|
回到顶部 |
|
 |
Vishwaroopa
新的用户
已加入:2007年3月8日 帖子:8 所在地:美国
|
|
|
|
是的,分隔符为“ *”。
谢谢 |
|
回到顶部 |
|
 |
阿克希尔萨加尔
活跃成员

已加入:2007年2月27日 帖子:691 地点:地球
|
|
|
|
Vishwaroopa,
请参见下面的代码。
我假设名字的最大长度为15个字符。
码: |
工作存储部分。
01 WS-NAME PIC X(30).
01 NAME.
05 L PIC X(15).
05 F PIC X(15).
05 M PIC X(15).
*您的格式为L F M
01 FINAL-NAME PIC X(30).
程序部门。
主PARA。
接受WS-NAME。
联合国WS-NAME以'*'分隔
F,M,L
串
L,'@'
F,'@'
M,'@'由空格分隔
进入最终名称。
检查最终名称替换所有的'@'BY''。
DISPLAY FINAL-NAME
|
只要存在分隔符“ *”,它将起作用。根据您的要求优化/更改代码。 |
|
回到顶部 |
|
 |
科博伦尼
活跃用户

加入时间:2006年8月7日 职位:127 位置:印度喀拉拉邦
|
|
|
|
是的,您可以使用第一个unstring中的count-in和pointer子句来优化代码 |
|
回到顶部 |
|
 |
rajesh_mbt
新的用户

已加入:2006年3月27日 帖子:97 地点:印度
|
|
|
|
上面的代码可以正常工作。 |
|
回到顶部 |
|
 |
Vishwaroopa
新的用户
已加入:2007年3月8日 帖子:8 所在地:美国
|
|
|
|
感谢每个人的信息。我没有想到“计数”和“指针”子句的想法。任何人都可以给出语法/解释 |
|
回到顶部 |
|
 |
迪克·谢勒
主持人荣誉

已加入:2006年11月23日 帖子:19245 位置:矩阵内部
|
|
|
|
你好,
该信息可以在您可以从该论坛链接到的精细手册中轻松找到(在页面顶部,单击“手册”链接。 |
|
回到顶部 |
|
 |
Vishwaroopa
新的用户
已加入:2007年3月8日 帖子:8 所在地:美国
|
|
|
|
谢谢(你的)信息。
我在这里面临两个问题
1.如果我将L,F,M的大小增加到30,则会在最后显示一些其他字符。如下面
输入:BRETT * M * COX *
输出:COX BRETT M EGLINDE ZA
2.如果姓氏中有一个空格,如下所示,它不会在空格之后提取数据。
e.g 1
输入:VALERIE * J * WENDEL FILKINS *
输出:WENDEL VALERIE J E NZA
e.g 2
输入:DON * L * ROBERTS SR *
输出:ROBERTS DON L
谁能让我知道为什么会这样以及需要什么解决方法? |
|
回到顶部 |
|
 |
迪克·谢勒
主持人荣誉

已加入:2006年11月23日 帖子:19245 位置:矩阵内部
|
|
|
|
你好,
在处理每个新名称之前,您需要将接收区域初始化为空格。
如果您发布代码,我们可以告诉您嵌入式空间未正确处理。 |
|
回到顶部 |
|
 |
科博伦尼
活跃用户

加入时间:2006年8月7日 职位:127 位置:印度喀拉拉邦
|
|
|
|
正如迪克所说,您必须初始化标识符以避免这种情况
对于agkshirsagar提供的代码中的第二个问题,最后一个字符串语句使用空格来分隔标识符FM和L中的数据,以避免您需要在所有FM和L中放置一些数据,例如VALUE ALL'#'并替换希望将STRING语句中的行作为DELIMITED BY'#'来解决您的问题 |
|
回到顶部 |
|
 |
迪克·谢勒
主持人荣誉

已加入:2006年11月23日 帖子:19245 位置:矩阵内部
|
|
|
|
你好,
您也可以将COUNT与“ unstring”一起使用,并将引用修改与“ string”一起使用。
正如我前面提到的,发布您正在使用的实际代码将为您提供更好的答案。 |
|
回到顶部 |
|
 |
科博伦尼
活跃用户

加入时间:2006年8月7日 职位:127 位置:印度喀拉拉邦
|
|
|
|
迪克,我想他是在回忆上面agkshirsagar给出的代码 |
|
回到顶部 |
|
 |
迪克·谢勒
主持人荣誉

已加入:2006年11月23日 帖子:19245 位置:矩阵内部
|
|
|
|
你好,
是的,我相信他以此为榜样。
我不确定那是 精确 正在编译的代码。而不是假设,我的偏好是查看实际代码。 |
|
回到顶部 |
|
 |
科博伦尼
活跃用户

加入时间:2006年8月7日 职位:127 位置:印度喀拉拉邦
|
|
|
|
好的,我只是让您指出这一点,我认为您没有看到代码  |
|
回到顶部 |
|
 |
迪克·谢勒
主持人荣誉

已加入:2006年11月23日 帖子:19245 位置:矩阵内部
|
|
|
|
我看到了发布的代码。
通常,正在编译的程序中出现的是发布代码的修改版本。
有时这种修改不是故意的  |
|
回到顶部 |
|
 |
Vishwaroopa
新的用户
已加入:2007年3月8日 帖子:8 所在地:美国
|
|
|
|
我摆脱了第一个问题。其次仍在尝试。
这是带有输出的实际代码。
01名。
05 L图X(30)VALUE ALL'#'。
05 F PIC X(30)VALUE ALL'#'。
05 M PIC X(30)VALUE ALL'#'。
*您的格式为L F M
01 FINAL-NAME PIC X(30)。
程序部门。
主PARA。
将“ 约翰 * ED * 凯西·萨特伯格 *”移动到WS-NAME。
联合国WS-NAME以'*'分隔
F,M,L
显示'F:' F.
显示'M:' M.
显示'L:' L.
L,'@'
F,'@'
M,'@'由'#'分隔
进入最终名称。
检查最终名称替换所有的'@'BY''。
显示最终名称。
O / p:
女:约翰
M:ED
L:卡西·萨特伯格
凯西·萨特伯格 |
|
回到顶部 |
|
 |
科博伦尼
活跃用户

加入时间:2006年8月7日 职位:127 位置:印度喀拉拉邦
|
|
|
|
很好,因此我们得到了一个实用的模型  |
|
回到顶部 |
|
 |
Vishwaroopa
新的用户
已加入:2007年3月8日 帖子:8 所在地:美国
|
|
|
|
我认为,这不能通过“字符串和检查”动词来实现。 bcoz的姓氏长度是动态的,并且soem乘以时间间隔-这可以通过编写例程来实现。 |
|
回到顶部 |
|
 |
威廉·汤普森
全球主持人
已加入:2006年11月18日 帖子:3156 所在地:亚利桑那州图森
|
|
|
|
FM指出:“一个UNSTRING语句可以代替一系列MOVE语句”
移动字母数字基本项目的规则与MOVE语句的规则相同。”
您可能会发现此方法更好。
码: |
01 NAME.
05 L PIC X(30).
05 F PIC X(30).
05 M PIC X(30).
*您的格式为L F M
01 FINAL-NAME PIC X(30).
程序部门。
主PARA。
移动名称空间。
将“ 约翰 * ED * 凯西·萨特伯格 *”移动到WS-NAME。
联合国WS-NAME以'*'分隔
F,M,L
DISPLAY 'F:' F.
DISPLAY 'M:' M.
DISPLAY 'L:' L.
串
L 由X'4040'分隔
', ' DELIMITED BY SIZE
F 由X'4040'分隔
SPACE 由大小定界
M 由X'4040'分隔
进入最终名称。
显示最终名称。
O / p :
F:JOHN
M:ED
L:CAUSEY SATTELBERG
凯西·萨特伯格,约翰·埃德 |
这么多
科博伦尼写道: |
很好,因此我们得到了一个实用的模型  |
 |
|
回到顶部 |
|
 |
迪克·谢勒
主持人荣誉

已加入:2006年11月23日 帖子:19245 位置:矩阵内部
|
|
|
|
乔夫,我想他知道了! |
|
回到顶部 |
|
 |
Vishwaroopa
新的用户
已加入:2007年3月8日 帖子:8 所在地:美国
|
|
|
|
多亏每个人的宝贵意见,这项工作才能奏效。 |
|
回到顶部 |
|
 |
迪克·谢勒
主持人荣誉

已加入:2006年11月23日 帖子:19245 位置:矩阵内部
|
|
|
|
凉  |
|
回到顶部 |
|
 |
阿克希尔萨加尔
活跃成员

已加入:2007年2月27日 帖子:691 地点:地球
|
|
|
|
科博伦尼写道: |
对于agkshirsagar提供的代码中的第二个问题,最后一个字符串语句使用空格来分隔标识符FM和L中的数据,以避免您需要在所有FM和L中放置一些数据,例如VALUE ALL'#'并替换希望将STRING语句中的行作为DELIMITED BY'#'来解决您的问题 |
这不会工作。
因为在解串之后,您将在F,M,L中得到尾随空格。
我建议一种改变。
码: |
ACCEPT WS-NAME.
检查WS-NAME用'@'替换所有空格
联合国WS-NAME以'*'分隔
F,M,L. |
即在您获取变量中的值后立即用@替换空格。 (我确定您没有使用ACCEPT)
完全获得所需的代码后,优化代码  |
|
回到顶部 |
|
 |
|