【问题标题】:Progress ABL - strip and add to temp tableProgress ABL - 剥离并添加到临时表
【发布时间】:2017-11-08 05:37:52
【问题描述】:

我来自 Java/.NET 背景并尝试学习 ABL,但结构上的差异和 Internet 上的有限信息使其变得困难。我想要做的是从以下格式的文本文件中导入数据:

john     smith     52     ceo
...

一行一行,根据人物的位置取不同的部分。例如,位置 1-10 是名字,10-20 是第二个名字,依此类推... 我必须为此使用条目吗?如果是这样,有经验的人可以举个例子这样做是因为我很困惑。然后我需要将每一行的记录添加到我创建的名为 tt-employee 的临时表中。 我该怎么做?

如果我的问题有点含糊,我深表歉意,但正如我所说,我对此并不陌生,所以我仍在解决问题。

【问题讨论】:

    标签: openedge progress-4gl


    【解决方案1】:

    如果空格是分隔符,您可以使用 IMPORT 语句。

    DEFINE TEMP-TABLE tt-employee NO-UNDO
        FIELD firstname AS CHARACTER
        FIELD lastname  AS CHARACTER
        FIELD age       AS INTEGER
        FIELD empTitle  AS CHARACTER.
    
    INPUT FROM c:\temp\indata.dat.
    REPEAT:
        CREATE tt-employee.
        IMPORT DELIMITER " " tt-employee.
    END.
    INPUT CLOSE.
    

    但是,如果没有分隔符,而是使用固定记录(正如您提到的那样),您可以执行类似的操作(需要应用错误检查和正确的记录长度)。

    /* Skipping temp-table definition - copy-paste from above */
    DEFINE VARIABLE cRow AS CHARACTER   NO-UNDO.
    
    INPUT FROM c:\temp\indata.dat.
    REPEAT:
    
        IMPORT UNFORMATTED cRow.
        /* You could replace 0 with a higher number that qualifies a record so 
           SUBSTRING doesn't return an error if reading past end of line */
        IF LENGTH(cRow) > 0 THEN DO:
            CREATE tt-employee.
            ASSIGN 
                tt-employee.firstname = SUBSTRING(cRow, 1, 10)
                tt-employee.lastname  = SUBSTRING(cRow, 11, 10)
                tt-employee.age       = INTEGER(SUBSTRING(cRow, 21, 2))
                tt-employee.empTitle  = SUBSTRING(cRow, 23, 10) NO-ERROR.
        END.
    END.
    INPUT CLOSE.
    

    网络上有几个地方可以查找 OpenEdge 信息:

    官方知识库-http://knowledgebase.progress.com/

    官方社区 - https://community.progress.com/?Redirected=true

    更多社区 - http://www.progresstalk.com/http://oehive.org/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-19
      • 1970-01-01
      • 2014-03-19
      • 1970-01-01
      • 2020-02-08
      • 1970-01-01
      • 2013-10-08
      • 2013-12-17
      相关资源
      最近更新 更多