View previous topic :: View next topic
|
Author |
Message |
Jonai
New User
Joined: 03 Jun 2008 Posts: 11 Location: Hyderabad
|
|
|
|
Hi all,
Iam getting the following status while trying to copy from Vb file.
ONCODE'=8094 PROTECTION EXCEPTION
Sample code is like this.
FILES: PROCEDURE OPTIONS(MAIN);
DCL PTR1 POINTER;
DCL INFILE FILE RECORD INPUT;
DCL OUTFILE FILE RECORD OUTPUT;
DCL 1 INSTRING BASED (PTR1),
2 CERTNO CHAR(9),
2 COUNT FIXED DECIMAL (1,1),
2 VARPART(1:7 REFER (COUNT)) CHAR(10);
DCL EOF BIT(1) INITIAL('0'B);
PUT SKIP LIST('OPENING FILES');
OPEN FILE(INFILE) INPUT TITLE('TESTIN');
OPEN FILE(OUTFILE) OUTPUT TITLE('TESTOUT');
READ FILE(INFILE) INTO(INSTRING);
ON ENDFILE(INFILE) EOF='1'B;
PUT SKIP LIST('COUNT', COUNT);
DO WHILE(¬EOF='1'B);
CALL LOOP;
END;
CLOSE FILE(INFILE);
CLOSE FILE(OUTFILE);
RETURN;
LOOP:PROCEDURE;
WRITE FILE(OUTFILE) FROM(INSTRING);
READ FILE(INFILE) INTO(INSTRING);
END LOOP;
END FILES;
Variable count is occupying 1 byte in inputfile.....so i kept dec(1,1) to allocate 1 byte( assumed p(1/2)+1/2 bytes....correct me if iam wrong)
Can you plz help me out in resolving this.
Thanks,
Jonai. |
|
Back to top |
|
|
senthilnathanj
New User
Joined: 31 Jul 2007 Posts: 47 Location: chennai
|
|
|
|
Hi,
Code: |
FILES: PROCEDURE OPTIONS(MAIN);
DCL PTR1 POINTER;
DCL INFILE FILE RECORD INPUT ENV(VB);
DCL OUTFILE FILE RECORD OUTPUT ENV(VB);
DCL 1 INSTRING BASED (PTR1),
2 CERTNO CHAR(9),
2 COUNT FIXED DECIMAL (1,1),
2 VARPART(1:7 REFER (COUNT)) CHAR(10);
DCL EOF BIT(1) INITIAL('0'B);
ALLOCATE PTR1;
PUT SKIP LIST('OPENING FILES');
OPEN FILE(INFILE) INPUT TITLE('TESTIN');
OPEN FILE(OUTFILE) OUTPUT TITLE('TESTOUT');
READ FILE(INFILE) SET (PTR1);
ON ENDFILE(INFILE) EOF='1'B;
PUT SKIP LIST('COUNT', COUNT);
DO WHILE(¬EOF);
CALL LOOP;
END;
CLOSE FILE(INFILE);
CLOSE FILE(OUTFILE);
RETURN;
LOOP:PROCEDURE;
WRITE FILE(OUTFILE) FROM(INSTRING);
READ FILE(INFILE) SET (INSTRING);
END LOOP;
END FILES;
|
above code is working fine...
i'm using the input and output file both as VB format.
let me know if i you have any concerns... |
|
Back to top |
|
|
Jonai
New User
Joined: 03 Jun 2008 Posts: 11 Location: Hyderabad
|
|
|
|
Thanks for the reply senthilnathanj,
Eventhough i am using both VB files, iam getting the problem mentioned.May be files or records problem...I'll look into it.
Regards,
Jonai. |
|
Back to top |
|
|
Garry Carroll
Senior Member
Joined: 08 May 2006 Posts: 1193 Location: Dublin, Ireland
|
|
|
|
Have you considered the difference between your code
Code: |
DO WHILE(¬EOF='1'B);
|
and that quoted by senthilnathanj
The meaning of ¬EOF is '0'B, so your code effectively is
Code: |
Do while('0'B = '1'B); |
That would suggest you never CALL LOOP; ??
Garry. |
|
Back to top |
|
|
|