C sharp - Adaptar este script a consola

 
Vista:
sin imagen de perfil
Val: 121
Bronce
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Adaptar este script a consola

Publicado por Meta (67 intervenciones) el 04/07/2020 14:53:04
Hola:

Como este código de abajo en Python 2.7.x no puedo ejecutarlo directamente porque no es un exe, ni un cmd, ni ps1, pues, quiero adaptar el código de Python a la consola C# o C/C++, el lenguaje que quieran.

¿Alguna ayuda?

Lo se, es muy complicado.

Código Python:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import os, sys, tkFileDialog,Tkinter
 
root = Tkinter.Tk()
root.withdraw()
 
formats = [ ('Roms Super Nintendo SMC','.smc'),('Roms Super Nintendo SFC','.sfc'),('Fichier Bin','.bin'),('Roms Super Nintendo','.smc .sfc .bin') ]
 
input = tkFileDialog.askopenfile(parent=root,mode='rb',filetypes=formats,
                                 title='Seleccione el archivo para intercambiar bin HI a LO como A16->A15, A17->A16...A21->A20 y A15->21')
if not input:
    print "Error: no se puede abrir el archivo."
    sys.exit()
 
output = tkFileDialog.asksaveasfile(parent=root,mode='wb',filetypes=formats,title='Crear nombre de archivo de salida.')
if not output:
    print "Error: no se puede crear el archivo de salida."
    sys.exit()
 
 
    # Leer el archivo de entrada a una matriz de bytes.
    data = bytearray(input.read())
 
    # Calculando el tamaño de la habitación en 2 exponentes.
    expsize = 0
    bytesize = len(data)
    while bytesize > 1:
            expsize += 1
            bytesize = bytesize // 2
 
    # Iniciar una matriz de bytes vacía de tamaño adecuado.
    buffer = bytearray()
    for i in range(2**expsize): buffer.append(0)
 
    # Hagamos el intercambio.
    count = 0
    for i in range(len(data)):
            addr = (i & 0x7fff) + ((i & 0x008000) << (expsize - 16)) + ((i & 0x010000) >> 1) + ((i & 0x020000) >> 1) + ((i & 0x040000) >> 1)
            + ((i & 0x080000) >> 1) +	((i & 0x100000) >> 1) + ((i & 0x200000) >> 1)
            if addr != i: count += 1
            buffer[addr] = data[i]
    print "Intercambiadas %s (%s) direcciones" % (count, hex(count))
 
    # Escribir archivo de salida.
    output.write(buffer)
 
    # Cerrar archivos maneja.
    input.close()
    output.close()

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Adaptar este script a consola

Publicado por Nacho (94 intervenciones) el 04/07/2020 15:39:02
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 121
Bronce
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Adaptar este script a consola

Publicado por Meta (67 intervenciones) el 04/07/2020 16:11:32
Por lo que se ve, hay que tener instalado Python para hacerlo funcionar. La idea es transportar la misma función de python adaptado a otro lenguaje, es decir, que haga lo mismo.

Así envío el ejecutable a la gente que no tiene que tener instalado ni Visual studio ni Python ni nada.
Salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar