arrays - I 系列 RPGLE 在多个数组中搜索公共值
问题描述
我试图弄清楚如何使用 RPGLE 在数组的多次出现中搜索常见值,但到目前为止一直没有成功。我想要做的是找出有多少数组共享相同的共同值。每个数组长度为 1,数组长度最大为 100。例如:
Array 1 = 'a' 'b' 'c' 'd' 'e' 'f' ' ' ' '.....
Array 2 = 'a' 'b' 'c' 'd' 'e' 'g' ' ' ' '.....
Array 3 = 'd' 'c' 'a' 'b' 'h' 'e' ' ' ' '.....
Array 4 = 'k' 'b' 'e' 'd' 'a' 'g' ' ' ' '.....
我试图找到一种简单的方法来确定字母 a、b、d 和 e 在数组之间都是通用的,或者这些字母中的每一个都是在数组之间共享的。
有谁知道如何轻松地进行此搜索,所以我不必最终陷入嵌套的do's和if's hell?当一个数组的所有 100 个元素都被填满时,它会变得非常棘手。不过,好消息是只有 10 个数组可以填写。
提前致谢!
解决方案
好消息是,如果您使用的是 7.3 或 7.4,IBM 刚刚发布了一些RPG 增强功能,包括FOR-EACH
操作码和%LIST()
bif
坏消息,我不认为那会是一根魔杖……
您是否只查找所有 10 个数组共有的值?
RPG 没有INTERSECTION
运算符……但 SQL 有。
我会考虑构建 10 个逗号分隔的字符串
'a,b,c,d,e,f,...' 以传递给 Db。然后使用SPLIT()
SQL 函数(也在 7.3 和 7.4 中)将每个字符串拆分为一组您可以请求 INTERSECTION 的记录。
如果以后有更多时间,我会尝试发布一些代码。
一个 RPG 唯一的解决方案是一个有趣的挑战......
推荐阅读
- arrays - 从数组值中删除引号
- sql-server - 当我在 SQL Server 中进行分组时,如何跳过只有一个条目的 max 函数
- html - 如何在减少 text_field 宽度的同时将表单列中的 text_field 中心与同一行中的按钮对齐?
- c# - Linq 查询以限制分组
- java - 检查 LogCat 是否已经在运行
- django - 重置密码功能
- php - 将 CURL 命令转换为 CURL php
- reactjs - React 路由器 - 如何摆脱 url 中的 #
- javascript - 在 JavaScript 前端应用程序中共享通用库
- javascript - 为什么当用户将鼠标悬停在图像上时图像不会改变?