Hi Harold,

if I were doing this on UV I would do the following (inelegant error handling but its just an example :):

If 1234.jpg is in a UV type 19 file:
   OPEN "SOURCEFILE" TO SFT ELSE STOP
ASSIGN 1 TO SYSTEM(1017) ;* UV Specific - disables conversion of CRLF to @AM on reading which damages your binary data
   READ JPG FROM SFT, "1234.jpg" ELSE STOP

   OPEN "TARGETFILE" TO TFT ELSE STOP

   * Choose one of the following options to encode your data before storing
   * 1: Hex Conversion - exactly doubles the size of the file
   TDAT = OCONV(JPG, "MX0C")

   * 2: Base64 conversion - slower but more space (33% size increase).
   ERRCDE = ENCODE("Base64", 1, JPG, 1, TDAT, 1)

   WRITE TDAT ON TFT ELSE STOP


hth,


Craig

Oaks, Harold wrote:
Dave-

Of course, unidata may be different than universe in its file structure.
However, I would like to try what you do.
How do you do that hex conversion?  What is the next step?  For example,
I have 1234.jpg at unix level.  What specifically do you do to get that
into your unidata file?

Harold

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Dave Davis
Sent: Tuesday, August 21, 2007 10:59 AM
To: [email protected]
Subject: RE: [U2] Binary data corruption on copy

That "$" trick is probably specific to pi/open.

I normally convert this kind of file to hex before storing in unidata.

If there's a better way, I would like to know about it.
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Oaks, Harold
Sent: Tuesday, August 21, 2007 1:10 PM
To: [email protected]
Subject: [U2] Binary data corruption on copy

A question for the group:

I have JPG format records which I wish to copy from unix level into a
Universe file but am having trouble with it getting 'corrupted' during
the copy.  We are converting from pi/open to universe.

I can do this business in pi/open by changing the name of the source
file, prepending it with a $, then copying at TCL level into the pi/open
file.  For example, if the record at unix level is named 1234.jpg and is
in the directory SOURCE I run this command at unix level:
mv 1234.jpg \$1234.jpg
which changes the name.  Now at TCL level in pi/open I can issue the
command COPY FROM SOURCE TO IMAGE_FILE $1234.jpg After that, I can
change the name back within the pi/open file:
CNAME IMAGE_FILE $1234.jpg 1234.jpg
and the copy is complete.

Pi/open knows that if the record name starts with a dollar sign that it
is binary and should not be changed.  Once the copy from a unix
directory into the pi/open dynamic file is done I can use it
successfully.

In Universe I attempt to do the same thing.  The 1234.jpg name is
changed to $1234.jpg and then copied into the Universe file
UNIV_IMAGE_FILE, a dynamic (type 30) file.
But it doesn't work very well - the image is corrupted, the binary file
was messed with during the copy.

I know the jpg record is intact before I start the copying.  I wouldn't
need to bother with a copy to a Universe file, in fact, except that we
have over 130,000 images now and I can't believe a unix directory could
successfully handle that many records.

Any suggestions on copying so that the binary remains intact?

Thanks-
Harold


Harold D. Oaks
Sr. Analyst/Programmer
Office of the Budget and Information Systems Clark County, Washington
ph: (360) 397-6121 x4132
fax: (360) 397-2342
-------
u2-users mailing list
[email protected]
To unsubscribe please visit http://listserver.u2ug.org/
-------
u2-users mailing list
[email protected]
To unsubscribe please visit http://listserver.u2ug.org/
-------
u2-users mailing list
[email protected]
To unsubscribe please visit http://listserver.u2ug.org/



--
Craig Bennett

Director
Amajuba Pty Ltd

Phone: 02 9987 0161
Mobile: 0412448781
Fax: 02 8456 5943
-------
u2-users mailing list
[email protected]
To unsubscribe please visit http://listserver.u2ug.org/

Reply via email to