[racket] actions with a proc

From: Vincent St-Amour (stamourv at ccs.neu.edu)
Date: Tue Jul 3 17:35:26 EDT 2012

For future reference, we figured out a solution.

Deleting the executable file as it's running achieves the same goal.

Vincent


At Tue, 03 Jul 2012 21:06:19 +0200,
Maleval Sebastien wrote:
> 
> Le 03/07/2012 18:53, Vincent St-Amour a écrit :
> > At Tue, 03 Jul 2012 14:55:00 +0200,
> > Maleval Sebastien wrote:
> >> Hi, I'm trying to use file functions, and I asked myself if it was
> >> possible to execute, and in the same time, write in a ".exe" file.
> >> Someone know what function I must use for this ?
> > As far as I know, Windows does not let you write in a running
> > executable.
> >
> > Taking a step back, what are you tring to do?
> >
> > Vincent
> >
> 
> I try to file a corrupted file (or make it unusable - not readable) 
> during its execution. But I've always the same probleme.  Windows does 
> not let me write.
> Would there another solution?
> 
> See my code :
> 
> #lang racket
> 
> (define f "file.exe")
> (define listOfByte '())
> 
> (define (readByteOnFile fileName)
>    (call-with-input-file fileName
>      (lambda (p-in)
>        (define (iter)
>          (let ((x (read-byte p-in)))
>            (if (eof-object? x)
>                (void (set! listOfByte (reverse listOfByte)))
>                (begin
>                  (set! listOfByte (cons x listOfByte))
>                  (iter)))))
>        (iter))))
> 
> (define (writeByteOnFile fileName L)
>    (port-try-file-lock? (open-output-file f #:exists 'replace) 'shared)
>    (call-with-output-file fileName
>      (lambda (p-out)
>        (define (iter L)
>          (if (empty? L)
>              (printf "Fini")
>              (begin
>                (write-byte (car L) p-out)
>                (iter (rest L)))))
>        (iter L))
>      #:exists 'append))
> 
> (define (executeFile fileName)
>    (shell-execute "open" f "" (current-directory) 'sw_shownormal))
> 
> In the order I read Bytes, Execute file and error when writting random 
> Bytes (not in my code), I must find an other solution.
> (writeByteOnFile fileName L) is function to re-create my file.
> 
> 


Posted on the users mailing list.