Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Portar rutina Javascript a Delphi (https://www.clubdelphi.com/foros/showthread.php?t=76751)

Geta 24-11-2011 23:51:57

Portar rutina Javascript a Delphi
 
Hola. Debido a que trabajo con las consolas Wii reparandolas, hay en la red una rutina en javascript para poder desactivar el control parental de estas consolas y en el SAt donde estoy nos vendria bien una aplicacion que nos generase ese codigo. Lo malo es que los fuentes estan en javascript y no tengo conocimientos de este lenguaje. Lo poteo por si alguien pudiera ayudarme a portarlo a Delphi. Gracias.

Código:

  ctime = time.time()
 
          def opt_date(delta):
  t = time.gmtime(ctime + delta * 3600 * 24)
                if delta == 0:
  selected = ' selected="selected"'
                else:
                        selected = ""
                return '<option value="%02d%02d" %s>%s</option>'%(t.tm_mon,t.tm_mday,selected,time.strftime("%a, %d %b %Y",t))
 
          class CRC32:
                def __init__(self):
                        self.gentable()
 
 
                def crc32(self, input, crc=0xffffffffl):
                        count = len(input)
                        i = 0
                        while count != 0:
                                count -= 1
                                temp1 = (crc >> 8) & 0xFFFFFF
                                temp2 = self.table[(crc ^ ord(input[i])) & 0xFF]
                                crc = temp1 ^ temp2
                                i += 1
                        return crc
 
                def gentable(self):
                        self.table = []
                        for i in range(256):
                                crc = i
                                for j in range(8):
                                        if crc & 1:
                                                crc = (crc >> 1) ^ 0xEDB88320l
                                        else:
                                                crc >>= 1
                                self.table.append(crc)
 
          def error(s):
                return '<div class="error">%s</div>'%s
 
          def process():
                try:
                        int(form["number"][0]) #validate
                        if len(form["number"][0]) != 8 or not all([x in "0123456789" for x in form["number"][0]]):
                                raise ValueError()
                except:
                        return error("Please provide a valid 8-digit confirmation number")
 
                try:
                        int(form["date"][0]) #validate
                        if len(form["date"][0]) != 4 or not all([x in "0123456789" for x in form["date"][0]]):
                                raise ValueError()
                except:
                        return error("Invalid date")
 
                fullnum = form["date"][0] + form["number"][0][4:8]
 
                crc = CRC32().crc32(fullnum)
                code = ((crc ^ 0xaaaa) + 0x14c1) % 100000
 
                return '<div class="response">Your unlock code:<span class="code">%05d</span></div>'%code
 


roman 25-11-2011 00:21:32

No es que ayude, pero el código que pones tiene más pinta de ser python que javascript.

// Saludos

Geta 25-11-2011 22:42:53

Pues podria ser porque no tengo apenas conocimientos de ninguno de los 2. De podria portar aun asi?

Ñuño Martínez 27-11-2011 19:09:20

Pues sí, tiene más pinta de Python. Creo que hay gente del Club que conoce ese lenguaje, pero creo que se cuentan con los dedos de una mano. Espero que alguno de ellos lo lea, a ver si así pueden ayudarte.


La franja horaria es GMT +2. Ahora son las 11:07:59.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi