Progress Openedge:将定界符定义为变量?

问题描述 投票:0回答:1

我一直在试图弄清楚如何使用定界符作为变量。然而不行。有人有什么建议吗?

这是我尝试过的方法,但是它不起作用:

    iLine = getLastHeaderLine().
    cDelimiter = getDelimiter().
    REPEAT:
        IF iLine <= 1
        THEN DO:
            IMPORT UNFORMATTED csvRaLine.
        END.
        ELSE DO:
            IMPORT UNFORMATTED csvLine.
            
            IMPORT DELIMITER cDelimiter. 
            CREATE ttImportReport.
            ttImportReport.Amount = ParseAmount(csvLine).
            ttImportReport.Category = ParseCategory(csvLine).
                ttImportReport.dDate = ParseDate(csvLine).
            ttImportReport.cDescription = ParseDescription(csvLine).
            ttImportReport.cState = ParseState(csvLine).


        END.
        iLine = iLine + 1.

    END.
progress openedge progress-4gl
1个回答
1
投票

不幸的是,分隔符必须是文字。

你能做的最好的事情就是创建一个 IF ... THEN ... ELSE 或 CASE 语句来支持多个可能的分隔符。像这样的东西:

CASE myDelimiter:

  WHEN ',' THEN
    IMPORT DELIMITER "," inputData.

  WHEN '.' THEN
    IMPORT DELIMITER "." inputData.

  WHEN '|' THEN
    IMPORT DELIMITER "|" inputData.

END.
© www.soinside.com 2019 - 2024. All rights reserved.