[racket] actions with a proc
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.
>
>