Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/04/2020, 12:20
tuadmin
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 18 años
Puntos: 120
Respuesta: problema para mostrar ascii

Cita:
Iniciado por julslash Ver Mensaje
ESTE ES EL CÓDIGO ORIGINAL EN VISUAL FOX PRO

EL INGRESO DE VALOR ES "PROFIT1001 " 13 CARACTERES QUE INCLUYEN ESPACIOS EN BLANCO CUANDO SE GUARDAN EN LA BASE DE DATOS DEL SERVIDOR SQL, LA CLAVE SIGUE LA SIGUIENTE FORMA //E$Àá[ØÍÍØ

NECESITO PASAR LAS FUNCIONES A PHP PERO NO SÉ LO QUE SUCEDE QUE EL RESULTADO NO ME MUESTRA, ¿ALGUIEN PUEDE VER EL CÓDIGO PHP Y VER LA PARTE MAL? ¡¡¡¡¡¡POR FAVOR!!!!!!


codigo visual fox pro
Antes, el tema de traspaso de funciones, es un poco delicado, por que puedes obtener Falsos positivos, antes de empezar a trabajar con el traspaso de funciones,

tiense que hacer 2 cosas

1 meter la palabra en un archivo TXT
Código texto:
Ver original
  1. PROFIT1001
2 meter el resultado en otro TXT
Código texto:
Ver original
  1. PE$Àá[ØÍÍØ

has eso 3 veces con distintos palabras con sus respectivas claves codificadas

El tema codificaciones un tema muy culero, por que ASCII ,UTF8,UTF16
a nivel bytes van variando y tratar con ello es mas delicado un Byte mal puesto, hecharia de bajo toda tu funcion

una cosa
Código texto:
Ver original
  1. PE$Àá[ØÍÍØ
esos simbolos, de donde las sacaste, estas seguro que genera ello, no es que tu navegador lo esta interpretando y esta mostrando lo que mejor se ajusta para interpretar los bytes??

bueno primero lo primero por experiencia

VISUAL FOX PRO= supongo que se trata de un sistema antiguo del cual aun no se estandarizo el UTF8 y como todo programador avanzado en ese entocnes suele usar ASCII, por lo tanto toda la funcion debe ser tratado como ASCII o ANSI (google para aclarar tus dudas)

vamos a analizar y hacer suposiciones

Código Python:
Ver original
  1. FUNCTION encript                                     //crear funcion
  2.     Parameter pkey                                   //indica que el primer parametro de la funcionsera "pkey"
  3.     key_encript = " "                                //variable contenedora key_encript con valor de 1 espacion
  4.     For i = 1 To Len(pkey)                           //un bucle, por la susposicion de que un String empieza en 1 y no (0 como php)
  5.         key_encript = key_encript+fun(Substr(pkey, i, 1)) //llena la variable contenedora caracter por caracter
  6.         Next                                              // Indica que continua al siguiente bucle
  7.    Return (Substr(key_encript, 2, Len(key_encript)-1))    // Retorna el resultado, un fragmento de la variable contenedora
  8. Endfunc
  9.  
  10.  
  11.  
  12. FUNCTION fun
  13.     Parameter car                                   //indica que el primer parametro de la funcionsera "car"
  14.     Return (Chr((((Asc(car)+17)*11)%255)))          //donde la magia ocurre, ay simbolos de suma,multiplicacion y MODULO
  15. ENDFUNC
  16.  
  17. clear

por lo que segun las suposiciones y tu codigo, puedo ver que el problema esta en que las funciones trabajan de forma distinta
ej foxpro un string empieza en 1; mientras que en PHP en 0; y eso afecta a todas las funciones de cadenas|strings

en foxpro la funcion ASC
https://www.visualfoxpro.com/asc.html
vendria hacer lo mismo en PHP con la funcion ORD
https://www.php.net/ord

la funcion en foxpro "Chr" es la misma que en PHP chr

el simbolo de "+" en foxpro puede significar SUMA o CONCATENACION
en php el Simbolo "+" solo sirve para SUMAR, y para concatenar es el simbolo "." punto, ten en cuenta ello y revisa tu codigo

y solo para alumbrarte en tu camino te doy una mano aca
Código foxpro:
Ver original
  1. Substr(key_encript, 2, Len(key_encript)-1)
es igual a
Código PHP:
Ver original
  1. Substr($key_encript, 1, Strlen($key_encript)-1)


como deducimos que foxpro trabaja entamente con ASCII , ANSI

esta funcion o cualquier cosa fuera de ASCII,ANSI
Código PHP:
Ver original
  1. return mb_convert_encoding('&#'.intval($u).';','UTF-8','HTML-ENTITIES');
no valen. ni bien al cazo por el momento claro

reucerda googlear en las paginas oficiales de cada lenguaje , y saber que hace cada cosa exactamente
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9

Última edición por tuadmin; 06/04/2020 a las 12:40 Razón: mejoramos la suposiciones y comentamos