Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/12/2008, 03:02
bloodyogos
 
Fecha de Ingreso: junio-2008
Mensajes: 25
Antigüedad: 16 años, 4 meses
Puntos: 0
Pregunta Respuesta: problema con las expresiones regulares

vale pero hay un problema, necesito que los evalue de 2 en 2, de forma que un caracter diferente de 00 pueda ser 02 o 0f o5d, pero no 00 y ese es mi problema, a esta marcha lo unico que se me ocurre es hacer un bucle que vaya comparando 5 puntos consecutivos del texto evaluando cada uno si es igual a 00 o no, y poner dos estructuras en if una para el principio y otra para el final, y que si coincide la estructura guarde el punto del texto en la lista.
seria asi:
Código PHP:
def guardar(textoarchivo):    
    
x=open(archivo"w")
    
x.write(texto)
    
x.close()
    return 
0

def leer
():
    
open("GameStringTable.data""r")
    
texto x.read()
    
x.close()
    return 
texto
def cerono
(carac):
       if 
carac == "00":
                
resultado True
       
else:
                
resultado False
       
return resultado

texto 
leer()
hexa texto.encode("hex")
seguir True
comienzo 
= [ ]
final = [ ]
limite len(hexa)
punta 0
com 
True
fustificador 
= [TrueTrueTrue]
while 
seguir:
           
puntb punta +2
           puntc 
puntb +2
           puntd 
puntc +2
           caraca 
hexa[punta:puntb]
           
caracb hexa[puntb:puntc]
           
caracc hexa[puntc:puntd]
           
fustificador[0] = cerono(caraca)
           
fustificador[1] = cerono(caracb)
           
fustificador[2] = cerono(caracc)

        if 
fustificador == [ True FalseFalse] and com == True:
                           
#Esto seria el comienzo de un texto
                           
comienzo comienzo + [puntb]
            
com False
        
if fustificador == [ FalseFalseTrue] and com == False:
                           
#Esto sera el finalde un texto
                           
final = final + [puntc]
                           
com True
        punta 
punta 2
           
if punta limite :
                           
seguir False
seguir2 
True
nu 
0
limite2 
len(comienzo)
while 
seguir2:
    
frase hexacomienzo[nu] : final [nu] ]
    print 
frase
    
print frase.decode("hex")
    
nu nu 1
    
if nu limite2:
        
seguir2 False 

Edito:
este codigo funciona correctamente... lo unico que tarda unos segundos en escanear todo el archivo

Última edición por bloodyogos; 04/12/2008 a las 05:42