View previous topic :: View next topic
|
Author |
Message |
surya anem
New User
Joined: 20 Dec 2007 Posts: 54 Location: Hyderabad
|
|
|
|
I have a file that is transferred from a non-mainframe system to a mainframe system. When the characters in ASCII are transitioned to EBCDIC format, spaces (HEX '40') are getting converted to junk values (HEX '05') which is not readable by COBOL.
Is there any way to handle this in cobol.
Please let me know if you need more info. |
|
Back to top |
|
|
Craq Giegerich
Senior Member
Joined: 19 May 2007 Posts: 1512 Location: Virginia, USA
|
|
|
|
surya anem wrote: |
I have a file that is transferred from a non-mainframe system to a mainframe system. When the characters in ASCII are transitioned to EBCDIC format, spaces (HEX '40') are getting converted to junk values (HEX '05') which is not readable by COBOL.
Is there any way to handle this in cobol.
Please let me know if you need more info. |
X'05' is a TAB character and can be read by COBOL with no trouble (as can any of the other 255 possible EBCDIC characters), I would suggest you look somewhere else for your problem. X'40' would not be an ASCII space that would be a x'20'! |
|
Back to top |
|
|
surya anem
New User
Joined: 20 Dec 2007 Posts: 54 Location: Hyderabad
|
|
|
|
Please see below the field that is being said as invalid when it is viewed through file-aid. If you can detect any, it would be of great help.
Code: |
Novello Dan N. Current Account
D9A89990C894D44CA9989A4C889A9A44444444444444444444444444444444444444444444444444
5655336541505B034995530133645300000000000000000000000000000000000000000000000000
-------------------------------------------------------------------------------
Novello Dan N. Current Account
D9A89990C894D44CA9989A4C889A9A44444444444444444444444444444444444444444444444444
5655336541505B034995530133645300000000000000000000000000000000000000000000000000
|
|
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
surya anem,
since we have no idea of the field definitions, what you posted above is useless. |
|
Back to top |
|
|
surya anem
New User
Joined: 20 Dec 2007 Posts: 54 Location: Hyderabad
|
|
|
|
This is just one field
WS-NAME PIC X(108)
I just posted the beginning portion of the field that has data. rest of them were spaces (HEX '40') |
|
Back to top |
|
|
Craq Giegerich
Senior Member
Joined: 19 May 2007 Posts: 1512 Location: Virginia, USA
|
|
|
|
I don't see a x'05' anywhere in that data, all I see are EBCDIC characters, mostly spaces x'40'. What is the definition of the field, which field is INVALID? |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
well, a pic x can not contain invalid characters.
you need to explain your problem.
saying you have junk characters only tells us that you have no idea what is going on.
the must be a file definition.
what about the file does not follow the definition? |
|
Back to top |
|
|
surya anem
New User
Joined: 20 Dec 2007 Posts: 54 Location: Hyderabad
|
|
|
|
The data i posted is value of field WS-NAME PIC X(108) in 2 records (1 above line and 1 below line) when viewed in file-aid with HEX ON.
Please see the hex value for the space between Novello and Dan.
I hope i am clear now. if still not, plz let me know. |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
use inspect replacing in your cobol program,
or pre-process the file with a sort
to change the 05 to 40, a space.
what is the problem?
if there is an FTP problem, you need to check with your support people.
and it is possible, that there was an ASCII tab character in the original file prior to the transfer?
sorta depends on how the ASCII file was generated. |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
Quote: |
I hope i am clear now. if still not, plz let me know. |
You are about as clear as mud.
What are the symptoms of your problem? Do you get an error message? Do you get an abend? If no error message or abend, how do you know you have a problem at all? Are you trying to read this data in a file? Are you getting a file status code? and if so, which file status code? What do you want done with the TAB (X'05') characters? Are there any other characters causing you problems? What do you want done with these characters? How does the data get to the mainframe?
You've pretty much provided no data to us so far -- you need to answer every one of these questions to get realistic, accurate answers from us! |
|
Back to top |
|
|
surya anem
New User
Joined: 20 Dec 2007 Posts: 54 Location: Hyderabad
|
|
|
|
We recieve this file from non-mainframe through FTP.
the problem is when i view this file through file aid (with hex off) only this field is being displayed as invalid rest all look fine.
As you pointed, i am not exactly sure why this is happening. I just want to know if there is any specific reason for this and any ways i can handle this to prevent this invalid values (which i guess are non-ebcdic characters that got into file during FTP) from being passed on to next step.
So i just want to filter this out and populate only valid values.
I suspected this HEX '05' because rest of the spaces are coming as HEX '40' |
|
Back to top |
|
|
Craq Giegerich
Senior Member
Joined: 19 May 2007 Posts: 1512 Location: Virginia, USA
|
|
|
|
I am sorry there is a x'05' character in there but cobol can handle that with no trouble. What program is saying that the field is invalid, what is causing it to say it is invalid? Please tell us something other then you don't know what you are doing. |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
The easiest answer: DO NOT USE FILE AID TO VIEW THE FILE.
You have not indicated any problem with any program actually using this data -- just viewing it via File Aid. So don't view it and end of issue.
Quote: |
So i just want to filter this out and populate only valid values. |
This is a WRONG statement. A computer cannot have invalid values in a data byte -- every possible character of the collating sequence (256 in EBCDIC) is valid. You are thinking there is a problem when there is not one -- it is merely the way File Aid attempts to handle the data; don't use File Aid and you won't see the problem any more. |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
I doubt that file-aid would call the contents of an pic x field invalid,
unless there is a way to tell file-aid to only consider 'printable char'.
do the records of this file only contain 1 field?
what other fields make up the record.
Besides, it appears that the x'05' would be a handy delimiter to separate the last name from the first in an UNSTRING operation. |
|
Back to top |
|
|
surya anem
New User
Joined: 20 Dec 2007 Posts: 54 Location: Hyderabad
|
|
|
|
Thats a good solution. But i was just trying to understand why and what values does file-aid considers invalid in an ALPHANUMERIC field for viewing. |
|
Back to top |
|
|
CICS Guy
Senior Member
Joined: 18 Jul 2007 Posts: 2146 Location: At my coffee table
|
|
|
|
surya anem wrote: |
Thats a good solution. But i was just trying to understand why and what values does file-aid considers invalid in an ALPHANUMERIC field for viewing. |
Could you please copy&paste the entire FileAid screen that is posting the 'invalid' message? |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
surya anem wrote: |
Thats a good solution. But i was just trying to understand why and what values does file-aid considers invalid in an ALPHANUMERIC field for viewing.
|
now I understand, you want us to teach you file-aid... |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
In my experience, File Aid only identifies invalid data when you have a NUMERIC (not alphanumeric) variable in a copy book where the data does not match the specification. Of course, if the TAB character is supposed to represent a given number (4? 5? 8?) of spaces, that could cause the rest of the record to not match the copy book. |
|
Back to top |
|
|
Bill O'Boyle
CICS Moderator
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
|
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
If you are trying to view the data in file-aid using a file layout (copybook), suggest you look at the file without this.
The process that created the file placed a tab delimiter between the "lastname" the the first part of the name. I suspect you may need to handle this rather than simply changing the tab to a space - depending on the "rules". |
|
Back to top |
|
|
Kjeld
Active User
Joined: 15 Dec 2009 Posts: 365 Location: Denmark
|
|
|
|
surya anem wrote: |
Thats a good solution. But i was just trying to understand why and what values does file-aid considers invalid in an ALPHANUMERIC field for viewing. |
FileAid informs you that it has found characters that will not display on the screen, because no printable character exists in the screen character set. So will ISPF Browse and other file viewer appplications to warn you that what you see on screen is not what you have in your file. |
|
Back to top |
|
|
haiardhan
New User
Joined: 26 Jul 2008 Posts: 7 Location: india
|
|
|
|
Hi guys i understood the problem what question is :
x'05' can not shown any value ... not even spaces(x'40')
x'05' is happend to be appear becuase of typo mistake of user.... when he enter the data ... by accidently he might have entered alt+'some key'
hense the data is showing like as he posted.
SWL.I.S..TRFT.SRM.15
EED0C4E40EDCE0EDD0FF
26359B2B539635294515[/b] |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
haiardhan, nice of you to join the discussion two years and nine months late ....
Quote: |
x'05' is happend to be appear becuase of typo mistake of user |
And, actually, this statement is wrong. If you find the 037 code page for EBCDIC, you will find that X'05' is described as HT (also known as horizontal tab). It is possible, for example, to take data from a PC to a mainframe and have X'05' characters show up without being keyed -- for example, an iTunes export file uses X'05' to separate fields and to align data vertically. |
|
Back to top |
|
|
haiardhan
New User
Joined: 26 Jul 2008 Posts: 7 Location: india
|
|
|
|
Robert....
I hope surya was giving you a data which is having problem...with x'05' in between the two words of a record.
The data is something like below
OWEN.SLIDE SANDAL
DECD0EDCCC4ECDCCD4
665552394502154130
The junk here is the dot between owen and slide 'OWEN.SLIDE'
which is a junk value of equivalent of hex '05'
please check the below attached for the exact problem to understand.
[/img][/url] |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
haiardhan: a few points you need to consider:
1. surya's last post was July 2011. While surya may still be lurking, it is also entirely possible you are providing advice to someone who stopped reading posts 21 months before you posted.
2. there is no such thing as a "junk value" -- period. Each and every character in the collating sequence has a purpose, if nothing else than to complete the collating sequence. Talking about "junk values" indicates that you have ABSOLUTELY no knowledge of computers, OR that your thinking is so sloppy that anything you post is suspect, automatically.
3. as I posted before, the X'05' character represents a tab character. It can be used in TSO/ISPF edit sessions as well as come to a mainframe from a PC in a text file.
4. do not post attachments -- many on this forum cannot download them due to company restrictions, so you are significantly reducing your audience when you post an attachment.
5. what are you trying to say, anyway? If you want to say that X'05' is not a valid character on a 3270 screen, so what? It can still be placed on a screen and it is still not a "junk value". |
|
Back to top |
|
|
|