Update all new Tasks
This commit is contained in:
parent
00a190b0a6
commit
91df62d461
5697 changed files with 93386 additions and 804 deletions
65
Task/CSV-data-manipulation/PL-I/csv-data-manipulation.pli
Normal file
65
Task/CSV-data-manipulation/PL-I/csv-data-manipulation.pli
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
*process source xref attributes or(!);
|
||||
csv: Proc Options(Main);
|
||||
/*********************************************************************
|
||||
* 19.10.2013 Walter Pachl
|
||||
* 'erase d:\csv.out'
|
||||
* 'set dd:in=d:\csv.in,recsize(300)'
|
||||
* 'set dd:out=d:\csv.out,recsize(300)'
|
||||
* Say 'Input:'
|
||||
* 'type csv.in'
|
||||
* 'csv'
|
||||
* Say ' '
|
||||
* Say 'Output:'
|
||||
* 'type csv.out'
|
||||
*********************************************************************/
|
||||
Dcl in Record Input;
|
||||
Dcl out Record Output;
|
||||
On Endfile(in) Goto part2;
|
||||
Dcl (INDEX,LEFT,SUBSTR,TRIM) Builtin;
|
||||
|
||||
Dcl (i,j,p,m,n) Bin Fixed(31) Init(0);
|
||||
Dcl s Char(100) Var;
|
||||
Dcl iline(10) Char(100) Var;
|
||||
Dcl a(20,20) Char(10) Var;
|
||||
Dcl sum Dec Fixed(3);
|
||||
Dcl oline Char(100) Var;
|
||||
|
||||
Do i=1 By 1;
|
||||
Read File(in) Into(s);
|
||||
iline(i)=s;
|
||||
m=i;
|
||||
Call sep((s));
|
||||
End;
|
||||
|
||||
part2:
|
||||
Do i=1 To m;
|
||||
If i=1 Then
|
||||
oline=iline(1)!!','!!'SUM';
|
||||
Else Do;
|
||||
sum=0;
|
||||
Do j=1 To n;
|
||||
sum=sum+a(i,j);
|
||||
End;
|
||||
oline=iline(i)!!','!!trim(sum);
|
||||
End;
|
||||
Write File(out) From(oline);
|
||||
End;
|
||||
|
||||
sep: Procedure(line);
|
||||
Dcl line Char(*) Var;
|
||||
loop:
|
||||
Do j=1 By 1;
|
||||
p=index(line,',');
|
||||
If p>0 Then Do;
|
||||
a(i,j)=left(line,p-1);
|
||||
line=substr(line,p+1);
|
||||
End;
|
||||
Else Do;
|
||||
a(i,j)=line;
|
||||
Leave loop;
|
||||
End;
|
||||
End;
|
||||
n=j;
|
||||
End;
|
||||
|
||||
End;
|
||||
Loading…
Add table
Add a link
Reference in a new issue