At 18:14 18/12/2004 -0500, Troy Rollins wrote:


On Dec 18, 2004, at 2:35 PM, [EMAIL PROTECTED] wrote:

Can anyone out there who is familiar with Python please translate the
script below to Transcript? This script is supposed to be able to create a
Hard-Drive image that works with the PearPC Macintosh Emulator. I want a
native Rev script that can create this multi-gigabyte file.

But... that script is importing and using a separate object (script instantiation) called "sys" which is actually doing all the work.

Well, not really "all the work". The "sys" import is only used to extract the command line arguments.


Even with access to that, I don't have any idea if Transcript can actually achieve *all* the same things Python can... Python is tied into OSX at the system level.

Python uses standard system libraries - not all of which Rev lets you access; but in this case, there shouldn't be any problem.


Let's get the arguments from an input field, instead of a command line argument ...

#!/usr/bin/python
# Copyright (c) 2004 Marco Lange.


import sys


GRANULARITY = 516096


imagename = sys.argv[1] imagesize = int(sys.argv[2]) if imagesize % GRANULARITY != 0: imagesize = ((imagesize / GRANULARITY) + 1) * GRANULARITY


print "Using image size:", imagesize

Simply gets a file name and a value; takes the value, and rounds (up) to a multiple of granularity.


local GRANULARITY = 516096
put field "inputField" into myVar
if myVar mod GRANULARITY <> 0 then
  put GRANULARITY * (trunc(myVar/Granularity)+1) into myVar
end if

imagefile = open(imagename, "wb+")
imagefile.seek(imagesize-1)
imagefile.write("\x00")
imagefile.close

Open the file named earlier for binary write (overwriting any existing content), seeks to the byte position (from the value above), writes one null byte and closes the file. (i.e. creates a large, empty file)


ask file "File to write" .....
put it into myFileName
open file myFileName for binary write
seek to myVar in file myFileName
write numtochar(0) to file myFileName
close file myFileName


NB - not tested, but allowing for any typos, that should do it.
There's perhaps an "off by one" error - because Python numbers bytes from zero, and Rev from 1 - so the seek should maybe be to "myVar-1".


-- Alex.
_______________________________________________
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to