Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re: Unpack for VMS binary files

by pfaut (Priest)
on Feb 19, 2003 at 02:41 UTC ( [id://236503]=note: print w/replies, xml ) Need Help??


in reply to Unpack for VMS binary files

I'm not sure if perl on VMS supports the 'q' format to pack/unpack 64-bit values. If it does, you should be able to use this template: 'q s12'. That means one quadword (64 bits) followed by 12 shorts (16 bits each). The time will be in $field[0] and the rest of the values in successive elements.

If VMS perl doesn't support the 'q' format, you'll have to read it out as two longs (32 bits each). That template would be 'i2 s12'. The time field from your record will occupy $field[0] and $field[1] with the rest of the fields following in order.

See Pack/Unpack Tutorial (aka How the System Stores Data) for more information on how pack and unpack work.

--- print map { my ($m)=1<<hex($_)&11?' ':''; $m.=substr('AHJPacehklnorstu',hex($_),1) } split //,'2fde0abe76c36c914586c';

Replies are listed 'Best First'.
Re: Re: Unpack for VMS binary files
by maderman (Beadle) on Feb 19, 2003 at 02:55 UTC
    Thanks for the tips. I should not that I'm running perl on a unix machine (Solaris)... So the length of things are: <code> int: 4 long: 4 float: 4 double: 8 <code> Stacy.

      In that case, there are probably endian differences. VMS is little endian and I think Solaris is big endian. Use 'V2 v12' (first V is capitalized, second is not) instead. That says two longs in VAX (little endian) order followed by 12 shorts in VAX order.

      --- print map { my ($m)=1<<hex($_)&11?' ':''; $m.=substr('AHJPacehklnorstu',hex($_),1) } split //,'2fde0abe76c36c914586c';
        You are god! The differences between little endian (VMS) and big endian (Solaris) and the format you provided made the difference. Many thanks... Now to try and convert VMS time to something readable (urrgg). Regards, Stacy.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://236503]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others perusing the Monastery: (5)
As of 2024-04-16 07:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found