Как подсчитать общее количество строк и создать новый / Выбрать лист в одном файле CSV, используя прогресс 4GL? - PullRequest
1 голос
/ 29 апреля 2020

Я новичок в прогрессе 4GL. У меня есть файл CSV, в котором есть данные для первых 2 строк. Данные 1-го ряда предназначены для списка пользователей, а данные 2-го ряда - для пользователей, которые должны быть деактивированы.

В моей программе, если я выбрал флаг yes, тогда программа должна проверить вторую строку в CSV-файле и сохранить ее во временной таблице. Пожалуйста, взгляните на то, что я попробовал со своей стороны, так как это не помогает мне сосредоточиться только на втором ряду в CSV, вместо этого я беру все данные, включая данные 1-го ряда.

Я действительно Буду признателен, если вы скажете мне, как я могу создать новый / переместить на лист (se c) в CSV-файл и проанализировать данные, используя прогресс 4GL

DEFINE TEMP-TABLE  tt_sec7Role
   FIELD  ttsec_role AS CHARACTER.

DEFINE VARIABLE  v_dataline AS CHARACTER NO-UNDO.
DEFINE VARIABLE v_count  AS INTEGER NO-UNDO.

EMPTY TEMP-TABLE  tt_sec7Role.

input from "C:\Users\ast\Desktop\New folder\cit.csv".
  repeat:
     import unformatted v_dataline. 
     if v_dataline <> '' then
     do:
        do v_count = 1 to NUM-ENTRIES(v_dataline,','): 
           create tt_sec7Role.
           ttsec_role = entry(v_count,v_dataline,',').
        end.
     end. /* if v_dataline <> '' then */
  end. /*repeat*/
  input close.
  v_count = 0.
  FOR EACH  tt_sec7Role:
      v_count = v_count + 1.
  END.
  MESSAGE v_count.

enter image description here

Ответы [ 2 ]

1 голос
/ 29 апреля 2020

Если вам просто нужно подсчитать строки, просто добавьте целое число и увеличивайте его после каждого оператора импорта:

define variable counter as integer no-undo. 
input from "C:\Users\ast\Desktop\New folder\cit.csv".
repeat:
    import unformatted v_dataline. 
    counter = counter + 1.
    if v_dataline <> '' then
    do:
        //If you only want to do this on line 2
        if counter = 2 then do v_count = 1 to NUM-ENTRIES(v_dataline,','): 
           create tt_sec7Role.
           ttsec_role = entry(v_count,v_dataline,',').
        end.
    end. /* if v_dataline <> '' then */
end. /*repeat*/
input close.
0 голосов
/ 29 апреля 2020

Как только вы определите, следует ли читать эту вторую строку, создайте запись в вашей временной таблице, а затем выполните другой импорт. Затем скопируйте эту часть данных в ваш tt, и в конце просто пролистайте ваш tt и экспортируйте поля с запятой в качестве разделителя.

...