openedge - 如何为每个循环导出一个文本文件?
问题描述
我已经编写了一个将文件导出到特定目录的程序,我觉得我写了一些不需要的逻辑。所以我想知道导出文件的简短和最佳方法。让我分享我尝试过的
DEFINE VARIABLE cData AS CHARACTER NO-UNDO.
DEFINE VARIABLE i AS INTEGER NO-UNDO.
DEFINE VARIABLE icount AS INTEGER NO-UNDO.
DEFINE VARIABLE cName AS CHARACTER NO-UNDO.
DEFINE VARIABLE cPath AS CHARACTER NO-UNDO.
DEFINE TEMP-TABLE ttdata
FIELD GetName AS CHARACTER
FIELD iValue AS INTEGER.
ASSIGN
icount = 2
cPath = "*******".
DO I = 1 TO icount:
IF I = 1 THEN cName = "David".
IF I = 2 THEN cName = "Macavo".
CREATE ttdata.
ASSIGN
ttdata.GetName = cName
ttdata.iValue = 100.
END.
/** ttdata has two records now*/
FOR EACH ttdata.
RUN CallProc.p (INPUT ttdata.GetName,
INPUT ttdata.iValue).
END.
PROCEDURE CallProc:
DEFINE INPUT PARAMETER getName AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER iValue AS INTEGER NO-UNDO.
OUTPUT TO cPath.
PUT UNFORMATTED ttdata.GetName ttdata.GetName.
OUTPUT CLOSE.
END PROCEDURE.
从我的逻辑来看,它运行良好并按我的预期导出了 2 个文件,但调用另一个程序是个坏主意。请帮助这个案例。
解决方案
如果您需要两个(或更多)单独的导出文件,则需要为它们指定唯一名称。我在这里通过重用您的“I”变量并每次重新分配 cPath 来做到这一点。尽管我不同意调用单独的过程来编写文件是一个坏主意,但我已将其合并到单个 FOR-EACH 循环中。我还修正了 idspispopd 提出的一些观点。
DEFINE VARIABLE i AS INTEGER NO-UNDO.
DEFINE VARIABLE icount AS INTEGER NO-UNDO.
DEFINE VARIABLE cName AS CHARACTER NO-UNDO.
DEFINE VARIABLE cPath AS CHARACTER NO-UNDO.
DEFINE TEMP-TABLE ttdata NO-UNDO
FIELD GetName AS CHARACTER
FIELD iValue AS INTEGER.
ASSIGN
icount = 2.
DO I = 1 TO icount:
/* Using a CASE statement makes it easier to add in other values in the future */
CASE I:
WHEN 1 THEN cName = "David".
WHEN 2 THEN cName = "Macavo".
END CASE.
CREATE ttdata.
ASSIGN
ttdata.GetName = cName
ttdata.iValue = 100.
END.
/** ttdata has two records now*/
I = 1.
FOR EACH ttdata NO-LOCK:
cPath = ".\" + STRING(I) + ".txt".
OUTPUT TO VALUE(cPath).
PUT UNFORMATTED ttdata.GetName ttdata.iValue SKIP.
OUTPUT CLOSE.
I = I + 1.
END.
推荐阅读
- c# - 正则表达式仅获取最后 32 个随机数字和数字
- plugins - MS Dynamics 365 Online Plugin External Rest API 访问给出错误
- python - 在 Jenkins 上使用 Alembic 时连续 SQL 语句之间的延迟
- mysql - 对不同列执行 SELECT WHERE 的表的最佳索引技术
- batch-file - 在使用 FFMPEG 将 MKV 转换为 MP3 时添加元数据
- python - 基本数学计算
- json - 如何使用 Apex 从嵌套 JSON 中读取值?
- mysql - NodeJS中的MySQL AES_DECRYPT,加密密钥的占位符?
- mysql-workbench - 通过 My SQL Workbench for Database (AWS RDS) 创建用户。收到“错误保存帐户” - 用户访问被拒绝(使用密码:是)
- python - 使用python从Cheat Engine获取地址处的数据