Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[Cramel] Consola.cml | 25 de Junio del 2017

  • 11 Respuestas
  • 4229 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado BlackBlex

  • *
  • Underc0der
  • Mensajes: 49
  • Actividad:
    0%
  • Reputación 4
    • Ver Perfil
  • Skype: blackblex
  • Twitter: blackblex
« en: Marzo 01, 2017, 05:49:38 am »
Les traigo este código el cual te genera una consola, en la que puedes escribir y leer.


Información
  • Compatible con Cramel: 2.0.0.362
  • Librerías requeridas: MSVBVM60.cml


Tiene los siguientes métodos:
  • establecerTitulo(titulo:Cadena) - Si queremos cambiar de titulo de la consola
  • escribir(texto:Cadena) - Escribimos en la misma linea
  • escribirLinea(texto:Cadena) - Escribimos agregando al final LF (Salto de linea)
  • establecerColor(atributos:Entero) - Establecemos algunos colores para la fuente y fondo (CONSTANTES)
  • leer(Referencia texto:Cadena) - Leemos el teclado sin agregar el enter
  • pausarConsola() - Terminamos la ejecución de la consola
  • limpiarConsola() - Limpia la consola

Para usarla solo es de Importar la librería Cramel, Consola y su archivo de constantes propia; después declaramos una variable del tipo Console y creamos el objecto

Y es todo por el momento.

Aquí el código:

Archivo Consola.cml
Código: Text
  1. '/**
  2. ' * Consola
  3. ' *
  4. ' * @author  Jovani Pérez Damián (@BlackBlex)
  5. ' *
  6. ' * ==============Information==============
  7. ' *      Filename: Consola.cml
  8. ' * ---------------------------------------
  9. '*/
  10.  
  11. Clase Consola,_
  12.     hEntrada,_
  13.     hSalida,_
  14.     hError,_
  15.     textoEscritura,_
  16.     contador:Entero,_
  17.     caracter,_
  18.     letra,_
  19.     texto:Cadena,_
  20.     modo:WORD,_
  21.     tecla:Byte
  22.  
  23.     Constructor:Inicializar
  24.     Destructor:Finalizar
  25.  
  26.     Proc Inicializar
  27.         AllocConsole()
  28.         hEntrada = GetStdHandle(STD_INPUT_HANDLE)
  29.         hSalida = GetStdHandle(STD_OUTPUT_HANDLE)
  30.         hError = GetStdHandle(STD_ERROR_HANDLE)
  31.  
  32.         Si hEntrada = INVALID_HANDLE Entonces
  33.             Mensaje("Error al obtener STDIN")
  34.         FinSi
  35.  
  36.         Si hSalida = INVALID_HANDLE Entonces
  37.             Mensaje("Error al obtener STDOUT")
  38.         FinSi
  39.  
  40.         Si hError = INVALID_HANDLE Entonces
  41.             Mensaje("Error al obtener STDERR")
  42.         FinSi
  43.  
  44.     FinProc
  45.  
  46.     Proc Finalizar
  47.         CloseHandle(hEntrada)
  48.         CloseHandle(hSalida)
  49.         CloseHandle(hError)
  50.         FreeConsole()
  51.     FinProc
  52.  
  53.     Sección Privada
  54.         Proc getChar():Byte
  55.             caracter = Espacio(1)
  56.             GetConsoleMode(hEntrada, modo)
  57.             SetConsoleMode(hEntrada, modo and (-1*ENABLE_ECHO_INPUT) and (-1*ENABLE_PROCESSED_INPUT))
  58.             ReadConsole(hEntrada, StrPtr(caracter), 1, 1, 0)
  59.             SetConsoleMode(hEntrada, modo)
  60.             Resultado = ASCII(caracter)
  61.         FinProc
  62.  
  63.     Sección Pública
  64.         Proc escribir(Referencia txt:Cadena)
  65.             WriteConsole(hSalida, StrPtr(txt), CadLong(txt), textoEscritura, nulo)
  66.         FinProc
  67.  
  68.         Proc escribirLinea(Referencia txt:Cadena)
  69.             escribir(txt + LF)
  70.         FinProc
  71.  
  72.         Proc establecerColor(atributos:Entero)
  73.             SetConsoleTextAttribute(hSalida, atributos)
  74.         FinProc
  75.  
  76.         Proc establecerTitulo(Referencia titulo:Cadena)
  77.             SetConsoleTitle(titulo)
  78.         FinProc
  79.  
  80.         Proc leer():Cadena
  81.             contador = 0
  82.             texto = ""
  83.             Repetir
  84.                 tecla = getChar()
  85.                 letra = Carácter(tecla)
  86.                 Si (tecla = 8) Entonces
  87.                     Si (contador > 0) Entonces
  88.                         escribir("\x08 \x08")
  89.                         texto = Izquierda(texto, CadLong(texto)-1)
  90.                         contador = contador - 1
  91.                     FinSi
  92.                 SiNo
  93.                     Si (tecla <> 13) Entonces
  94.                         escribir(letra)
  95.                         texto = texto + letra
  96.                         contador = contador + 1
  97.                     FinSi
  98.                 FinSi
  99.             HastaQue (tecla = 13) or (contador = MAX_PATH)
  100.             escribirLinea("")
  101.             Resultado = texto
  102.         FinProc
  103.  
  104.         Proc pausarConsola
  105.             escribirLinea("Presione una tecla para continuar . . . ")
  106.             tecla = getChar()
  107.         FinProc
  108.  
  109.         Proc limpiarConsola
  110.             Var Temp:Entero
  111.             Temp = CreateConsoleScreenBuffer(GENERIC_READ Or GENERIC_WRITE,FILE_SHARE_READ Or FILE_SHARE_WRITE,Nulo,1,0)
  112.             Si (Temp = 0) Entonces Salir
  113.             SetConsoleActiveScreenBuffer(Temp)
  114.             CloseHandle(hSalida)
  115.             hSalida = Temp
  116.         FinProc
  117.        
  118. FinClase

Archivo Constantes.cml <- Se recomienda que tengan un archivo propio de constantes (y que sea global), donde puedan poner todas las constantes que no contenta Cramel por defecto.
Código: Text
  1. '/**
  2. ' * Constantes para la consola
  3. ' *
  4. ' * @author  Jovani Pérez Damián (@BlackBlex)
  5. ' *
  6. ' * ==============Information==============
  7. ' *      Filename: Constantes.cml
  8. ' * ---------------------------------------
  9. '*/
  10.  
  11. ' Consola '
  12. Const STD_OUTPUT_HANDLE = -11
  13. Const STD_INPUT_HANDLE = -10
  14. Const STD_ERROR_HANDLE = -12
  15.  
  16. ' Colores '
  17. Const FOREGROUND_BLUE = &1
  18. Const FOREGROUND_GREEN = &2
  19. Const FOREGROUND_RED = &4
  20. Const FOREGROUND_INTENSITY = &8
  21. Const FOREGROUND_SEARCH = (&10)
  22. Const BACKGROUND_BLUE = &10
  23. Const BACKGROUND_GREEN = &20
  24. Const BACKGROUND_RED = &40
  25. Const BACKGROUND_INTENSITY = &80
  26. Const BACKGROUND_SEARCH = &20
  27.  
  28. ' Console mode flag'
  29. Const ENABLE_ECHO_INPUT = &4
  30. Const ENABLE_PROCESSED_INPUT = &1
  31. Const ENABLE_LINE_INPUT = &2
  32. Const ENABLE_MOUSE_INPUT = &10
  33. Const ENABLE_WINDOW_INPUT = &8
  34. Const ENABLE_PROCESSED_OUTPUT = &1
  35. Const ENABLE_WRAP_AT_EOL_OUTPUT = &2
  36. Const ENABLE_INSERT_MODE = &20
  37. Const ENABLE_QUICK_EDIT_MODE = &40
  38. Const ENABLE_EXTENDED_FLAGS = &80
  39. Const ENABLE_AUTO_POSITION = &100
  40.  

Y aquí un ejemplo usando Consola.cml

Código: Text
  1. Importar "Cramel.cml"
  2. Importar "MSVBVM60\MSVBVM60.cml"
  3. Importar "Constantes.cml"
  4. Importar "Consola.cml"
  5.  
  6. Var texto:Cadena
  7. Var cmd:Consola
  8.  
  9. Crear cmd
  10.  
  11. cmd.establecerTitulo("cmd [Cramel]")
  12. cmd.escribirLinea("Hola, como estas?")
  13. texto = cmd.leer()
  14.  
  15. Si texto = "bien" Entonces
  16.     cmd.escribirLinea("Me alegra")
  17. SiNo
  18.     cmd.escribirLinea("Suena mal, que paso?")
  19. FinSi
  20.  
  21. cmd.escribirLinea("Como te llamas??")
  22. texto = cmd.leer()
  23.  
  24. cmd.limpiarConsola()
  25.  
  26. cmd.escribirLinea("Hola " + texto)
  27.  
  28. cmd.pausarConsola()
  29.  
  30. Destruir cmd



4 de marzo del 2017
  • Gracias a @Yuki - Por la explicación del Prototipo.
  • Aplicada la observación de @79137913
  • Actualizada para la versión 1.5.0.83 - No funciona en anteriores
25 de junio del 2017
  • Gracias a @Yuki - Por su función de limpiarConsola. :#
  • Se paso a crear una clase para la Consola
  • Corregido error al borrar texto.
  • Actualizada para la versión 2.0.362 - No funciona en anteriores

Cualquier sugerencia, o error, comenten.
« Última modificación: Junio 26, 2017, 12:50:46 am por BlackBlex »

Desconectado Riojas

  • *
  • Underc0der
  • Mensajes: 59
  • Actividad:
    0%
  • Reputación 4
  • -RIOJAS
    • Ver Perfil
    • Arduino Center
    • Email
« Respuesta #1 en: Marzo 01, 2017, 11:26:36 am »
Les traigo este código el cual te genera una consola, en la que puedes escribir y leer.



Tiene los siguientes métodos:
  • iniciar() - Siempre que ocupemos la consola debemos iniciarla
  • establecerTitulo() - Si queremos cambiar de titulo de la consola
  • escribir() - Escribimos en la misma linea
  • escribirLinea() - Escribimos agregando al final LF (Salto de linea)
  • establecerColor() - Establecemos algunos colores para la fuente y fondo (CONSTANTES)
  • leer() - Leemos el teclado sin agregar el enter
  • pausar() - Terminamos la ejecución de la consola

Tiene los siguientes campos:
  • txt:Cadena - Antes de escribir en la consola, debemos de llenar este campo con lo que queremos escribir
  • txtresultado:Cadena - Aquí se almacena la cadena leida

Y es todo por el momento.

Aquí el código:
Código: Text
  1. 'APIS para el funcionamiento de la consola'
  2. API GetStdHandle(nStdHandle:Entero):Entero, "Kernel32"
  3. API AllocConsole():Booleano, "Kernel32"
  4. API WriteConsoleA(hConsoleOutput:Entero, Referencia lpBuffer:Cadena, nNumberOfCharsToWrite:Entero, Referencia lpNumberOfCharsWritten:WORD, Referencia lpReserved:Entero):Entero, "Kernel32"
  5. API ReadConsoleA(hConsoleInput:Entero, Referencia lpBuffer:Cadena, nNumberOfCharsToRead:Entero, Referencia lpNumberOfCharsRead:WORD, Referencia lpReserved:Entero):Entero, "Kernel32"
  6. API FreeConsole():Booleano, "Kernel32"
  7. API SetConsoleTitleA(lpConsoleTitle:Cadena):Entero, "Kernel32"
  8. API SetConsoleTextAttribute(hConsoleOutput, wAttributes:Entero):Entero, "Kernel32"
  9. API GetConsoleMode(hConsoleHandle:Entero, Referencia lpMode:WORD):Booleano, "Kernel32"
  10. API SetConsoleMode(hConsoleHandle, dwMode:WORD):Booleano, "Kernel32"
  11.  
  12. ' Consola '
  13. const STD_OUTPUT_HANDLE = -11
  14. const STD_INPUT_HANDLE = -10
  15. const STD_ERROR_HANDLE = -12
  16.  
  17. ' Colores '
  18. Const FOREGROUND_BLUE = &1
  19. Const FOREGROUND_GREEN = &2
  20. Const FOREGROUND_RED = &4
  21. Const FOREGROUND_INTENSITY = &8
  22. Const FOREGROUND_SEARCH = (&10)
  23. Const BACKGROUND_BLUE = &10
  24. Const BACKGROUND_GREEN = &20
  25. Const BACKGROUND_RED = &40
  26. Const BACKGROUND_INTENSITY = &80
  27. Const BACKGROUND_SEARCH = &20
  28.  
  29. ' Console mode flag'
  30. Const ENABLE_ECHO_INPUT = &4
  31. Const ENABLE_PROCESSED_INPUT = &1
  32.  
  33. 'Callback'
  34. Prototipo procsimple():Entero
  35. Prototipo settitle(titulo:Cadena):Entero
  36. Prototipo setattibute(atributos:Entero):Entero
  37.  
  38. ' Nuestro gestor de consola '
  39. Estruct ConsolaEstructura,_
  40.     hEntrada,_
  41.     hSalida:Entero,_
  42.     txt,_
  43.     txtresultado:Cadena,_
  44.     establecerTitulo:settitle,_
  45.     escribir:procsimple,_
  46.     escribirLinea:procsimple,_
  47.     establecerColor:setattibute,_
  48.     leer:procsimple,_
  49.     iniciar:procsimple,_
  50.     pausar:procsimple
  51.  
  52. ' Variables de control '
  53. Var Error:Booleano
  54. Var Consola:ConsolaEstructura
  55. Var consoleVar:WORD
  56.  
  57. ' Iniciamos algunos metodos de nuestra consola '
  58. Error = Falso
  59. Consola.hEntrada = INVALID_HANDLE
  60. Consola.hSalida  = INVALID_HANDLE
  61. Consola.iniciar@ = initConsole@
  62. Consola.establecerTitulo@ = setCTitle@
  63. Consola.escribir@ = writeConsole@
  64. Consola.escribirLinea@ = writeConsoleLine@
  65. Consola.leer@ = readConsole@
  66. Consola.establecerColor@ = establecerAtb@
  67. Consola.pausar@ = pauseConsole@
  68.  
  69. Proc initConsole():Entero
  70.     AllocConsole()
  71.     Consola.hEntrada = GetStdHandle(STD_INPUT_HANDLE)
  72.     Consola.hSalida = GetStdHandle(STD_OUTPUT_HANDLE)
  73.     Consola.txt = ""
  74.     Consola.txtresultado = ""
  75. FinProc
  76.  
  77. Proc establecerAtb(atributos:Entero):Entero
  78.     Si check() Entonces
  79.         Resultado = SetConsoleTextAttribute(Consola.hSalida, atributos)
  80.     FinSi
  81. FinProc
  82.  
  83. Proc setCTitle(titulo:Cadena):Entero
  84.     Si check() Entonces
  85.         Resultado = SetConsoleTitleA(titulo)
  86.     FinSi
  87. FinProc
  88.  
  89. Proc writeConsole():Entero
  90.     Si check() Entonces
  91.         Var result:Entero
  92.         result = WriteConsoleA(Consola.hSalida, Consola.txt, CadLong(Consola.txt), consoleVar, 0)
  93.         Resultado result
  94.     FinSi
  95. FinProc
  96.  
  97. Proc writeConsoleLine():Entero
  98.     Si check() Entonces
  99.         Consola.txt = Consola.txt + LF
  100.         Resultado writeConsole()
  101.     FinSi
  102. FinProc
  103.  
  104. Proc readConsole():Entero NoResultado
  105.     readConsoleLimited(MAX_PATH)
  106. FinProc
  107.  
  108. Proc readConsoleLimited(limite:Entero):Entero NoResultado
  109.     Si check() Entonces
  110.         Var i:Entero
  111.         Var tecla:Byte
  112.         Var letra:Cadena
  113.         i = 0
  114.         Consola.txtresultado = ""
  115.         Repetir
  116.             tecla = getChar()
  117.             letra = Caracter(tecla)
  118.             Si (i > 0) And (tecla = 8) Entonces
  119.                 Consola.txt = "\x08 \x08"
  120.                 Consola.escribir()
  121.                 Consola.txtresultado = Izquierda(Consola.txtresultado, CadLong(Consola.txtresultado)-1)
  122.             SiNo
  123.                 Si tecla <> 13 Entonces
  124.                     Consola.txt = letra
  125.                     Consola.escribir()
  126.                     Consola.txtresultado = Consola.txtresultado + letra
  127.                     i = i + 1
  128.                 FinSi
  129.             FinSi
  130.         HastaQue (tecla = 13) or (i = limite)
  131.         Consola.txt = ""
  132.         Consola.escribirLinea()
  133.     FinSi
  134. FinProc
  135.  
  136. Proc pauseConsole()
  137.     Si check() Entonces
  138.         Var tecla:Byte
  139.         Consola.txt = "Presione una tecla para continuar . . . "
  140.         Consola.escribirLinea()
  141.         tecla = getChar()
  142.         closeConsole()
  143.     FinSi
  144. FinProc
  145.  
  146. Proc getChar():Byte
  147.     Var char:Cadena
  148.     Var mode:WORD
  149.     GetConsoleMode(Consola.hEntrada, mode)
  150.     SetConsoleMode(Consola.hEntrada, mode and (-1*ENABLE_ECHO_INPUT) and (-1*ENABLE_PROCESSED_INPUT))
  151.     ReadConsoleA(Consola.hEntrada, char, 1, consoleVar, 0)
  152.     SetConsoleMode(Consola.hEntrada, mode)
  153.     Resultado = ASCII(char)
  154. FinProc
  155.  
  156. Proc closeConsole():Entero
  157.     Si check() Entonces
  158.         CloseHandle(Consola.hEntrada)
  159.         CloseHandle(Consola.hSalida)
  160.         FreeConsole()
  161.     FinSi
  162. FinProc
  163.  
  164. Proc check():Booleano
  165.     Si (Consola.hEntrada = INVALID_HANDLE) or (Consola.hSalida = INVALID_HANDLE) Entonces
  166.         Si Error = Falso Entonces
  167.             Mensaje("Primero debes iniciar la consola antes de usarla")
  168.         FinSi
  169.         Error = Verdad
  170.         Resultado = Falso
  171.     SiNo
  172.         Resultado = Verdad
  173.     FinSi
  174. FinProc

Y aquí un ejemplo usando Consola.cml

Código: Text
  1. Importar "Cramel.cml"
  2. Importar "Consola.cml"
  3.  
  4. Consola.iniciar()
  5. Consola.establecerTitulo("Consola [Cramel]")
  6. Consola.txt = "Hola, como estas?"
  7. Consola.escribirLinea()
  8. Consola.leer()
  9.  
  10. Si Consola.txtresultado = "bien" Entonces
  11.     Consola.txt = "Me alegra"
  12. SiNo
  13.     Consola.txt = "Suena mal, que paso?"
  14. FinSi
  15.  
  16. Consola.escribirLinea()
  17. Consola.txt = "Como te llamas??"
  18. Consola.escribirLinea()
  19. Consola.leer()
  20.  
  21. Consola.txt = "Hola " + Consola.txtresultado
  22. Consola.escribirLinea()
  23.  
  24. Var d,suma:Entero
  25.  
  26. d = 0
  27. Repetir
  28.     suma = suma + d
  29.     Consola.txt = EntCad(suma)
  30.     Consola.escribirLinea()
  31.     d = d+1
  32. HastaQue d = 10
  33.  
  34. Consola.pausar()

Cualquier sugerencia, o error, comenten.
Excelente!!
En cuanto este frente a un PC lo pruebo y te paso detalles!!

-RIOJAS


Desconectado Yuki

  • *
  • Underc0der
  • Mensajes: 67
  • Actividad:
    0%
  • Reputación 5
    • Ver Perfil
« Respuesta #2 en: Marzo 01, 2017, 12:48:39 pm »
Muy interesante tu código y me parece increíble que le hayas agarrado la mano tan rápido, hasta estas usando prototipos :o

Te recomiendo inicializar los prototipos dentro de un procedimiento, al declarar una dll no se puede tener código no encapsulado (fuera de un procedimiento), por lo que tu código no se podría utilizar y seria una lastima.

También me gustó como emulaste la POO  ;D ;D

Muy buen aporte!

Desconectado BlackBlex

  • *
  • Underc0der
  • Mensajes: 49
  • Actividad:
    0%
  • Reputación 4
    • Ver Perfil
  • Skype: blackblex
  • Twitter: blackblex
« Respuesta #3 en: Marzo 01, 2017, 01:49:23 pm »
Muy interesante tu código y me parece increíble que le hayas agarrado la mano tan rápido, hasta estas usando prototipos :o

Te recomiendo inicializar los prototipos dentro de un procedimiento, al declarar una dll no se puede tener código no encapsulado (fuera de un procedimiento), por lo que tu código no se podría utilizar y seria una lastima.

También me gustó como emulaste la POO  ;D ;D

Muy buen aporte!

Gracias por la explicación de los prototipos, por eso andaba confundido, porque no los hacia funcionar, una vez la explicación le agarre de volada.

Lo de exportarlo como dll, no lo había pensado; simplemente se me hizo más practico dejarlo como .cml e importarlo al usar.
Lo de inicializar los protopitos los tenia antes en la función initConsole, el problema llegaba cuando el usuario no ejecutaba dicho metodo, y salia "Error al acceder a la memoria" aunque es valido; quería que antes saliera un mensaje de lo que paso; y la única forma que vi fue haciendo la inicialización fuera.  ;D

Lo cambiaré para que pueda ser exportado como dll, aunque viendo un poco más afondo, no sabría como mantener lo de "Consola." + metodos, puesto que en la dll, creo que solo se podrían usar los metodos y nada mas
« Última modificación: Marzo 01, 2017, 01:51:31 pm por BlackBlex »

Desconectado Yuki

  • *
  • Underc0der
  • Mensajes: 67
  • Actividad:
    0%
  • Reputación 5
    • Ver Perfil
« Respuesta #4 en: Marzo 01, 2017, 02:22:25 pm »
Podes crear un "InitConsola" que retorne la estructura de prototipos, va a funcionar, el usuario solo tendria que declarar una variable del mismo tipo que la estructura y asignarla con el procedimiento.

Desconectado Leo_Al

  • *
  • Underc0der
  • Mensajes: 14
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
  • Skype: wayercreew
« Respuesta #5 en: Marzo 01, 2017, 08:19:50 pm »
Gracias por el aporte!! Me voy a poner a entender el código para agarrarle la mano

Conectado fudmario

  • *
  • Cramel
  • *
  • Mensajes: 197
  • Actividad:
    0%
  • Reputación 13
    • Ver Perfil
    • fudmario - GitHub
  • Skype: fudmario
« Respuesta #6 en: Marzo 01, 2017, 11:33:11 pm »
Muy bueno @BlackBlex, queria hacer algo similar, para agregar a el Editor de Cramel.

Saludos.


Desconectado 79137913

  • *
  • Co Admin
  • Mensajes: 650
  • Actividad:
    15%
  • Reputación 12
  • 4 Esquinas
    • Ver Perfil
    • Doors.Party
    • Email
  • Skype: fg_mdq@hotmail.com
« Respuesta #7 en: Marzo 02, 2017, 02:07:28 pm »
HOLA!!!

Veo que en el intento de emular POO perdes la capacidad para pasar parametros, no seria mejor, hacer una funcion que sea Consola_Escribir(txt) y otro que sea Consola_EscribirLinea(txt) para no tener que llenar las variables por fuera.

Me parece una mala practica la utilizacion de variables publicas para alimentar procedimientos.

GRACIAS POR LEER!!!
"Algunos creen que soy un bot, puede que tengan razon"
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

*Shadow Scout Team*                                                   DOORS.PARTY

Desconectado BlackBlex

  • *
  • Underc0der
  • Mensajes: 49
  • Actividad:
    0%
  • Reputación 4
    • Ver Perfil
  • Skype: blackblex
  • Twitter: blackblex
« Respuesta #8 en: Marzo 02, 2017, 02:18:12 pm »
HOLA!!!

Veo que en el intento de emular POO perdes la capacidad para pasar parametros, no seria mejor, hacer una funcion que sea Consola_Escribir(txt) y otro que sea Consola_EscribirLinea(txt) para no tener que llenar las variables por fuera.

Me parece una mala practica la utilizacion de variables publicas para alimentar procedimientos.

GRACIAS POR LEER!!!

Lo hice así sólo para hacer algo simple y sencillo.
 
Si se le puede pasar parámetros, ahora que tenga un tiempo rehago el archivo.

Estoy conciente de que es mala práctica lo de tener que poner el texto en una variable y luego imprimir, por finés de prácticas fue echo así.


Enviado desde mi MotoG3 mediante Tapatalk
« Última modificación: Marzo 02, 2017, 02:31:54 pm por BlackBlex »

Desconectado rollth

  • *
  • Underc0der
  • Mensajes: 876
  • Actividad:
    0%
  • Reputación 16
  • El conocimiento es libre.
    • Ver Perfil
    • Whateversec
    • Email
  • Twitter: @RoloMijan
« Respuesta #9 en: Abril 17, 2017, 12:18:00 am »
Buenas, no me funciona en la última versión de cramel, me da error con la función Caracter().
Es fallo mío o por la versión del compilador.

Saludos.

Desconectado BlackBlex

  • *
  • Underc0der
  • Mensajes: 49
  • Actividad:
    0%
  • Reputación 4
    • Ver Perfil
  • Skype: blackblex
  • Twitter: blackblex
« Respuesta #10 en: Abril 17, 2017, 12:24:02 pm »
Buenas, no me funciona en la última versión de cramel, me da error con la función Caracter().
Es fallo mío o por la versión del compilador.

Saludos.
Checa que guardes el archivo con una codificación que no rompa los acentos y caracteres especiales, ya que es ahí donde se me ocurre que este el error; ya que la función Carácter es de Cramel.

Yo suelo guardar los .cml con codificación Windows 1252 (CP-1252), ya que igual he tenido problemas gordos con este asunto >.<

Cualquier cosa avisa, para que haga pruebas.

Enviado desde mi MotoG3 mediante Tapatalk

Desconectado Yuki

  • *
  • Underc0der
  • Mensajes: 67
  • Actividad:
    0%
  • Reputación 5
    • Ver Perfil
« Respuesta #11 en: Abril 17, 2017, 04:54:03 pm »
Buenas, no me funciona en la última versión de cramel, me da error con la función Caracter().
Es fallo mío o por la versión del compilador.

Saludos.

Tengo la manía de cambiar el nombre de las funciones, intentaste con  "Carácter"? ¿con la tilde?

 

¿Te gustó el post? COMPARTILO!



[Cramel] Brute Force Dictionary Creator by 79137913 [Aplicación + Source]

Iniciado por BlackBlex

Respuestas: 0
Vistas: 2636
Último mensaje Julio 01, 2017, 07:04:10 pm
por BlackBlex
[Cramel] Regedit.cml ~ Crea, Edita y Elimina claves del Registro

Iniciado por BlackBlex

Respuestas: 0
Vistas: 2472
Último mensaje Julio 05, 2017, 08:30:39 pm
por BlackBlex
[Cramel] File pumper + (Source) | Agrega peso a tus archivos

Iniciado por BlackBlex

Respuestas: 8
Vistas: 3512
Último mensaje Marzo 23, 2017, 07:58:04 pm
por Riojas
[Cramel] AdminFinder by 79137913 [Aplicación + Source]

Iniciado por BlackBlex

Respuestas: 2
Vistas: 2876
Último mensaje Junio 26, 2017, 01:21:11 am
por BlackBlex
[Cramel] Gestión de conexiones [Ejemplo + Source]

Iniciado por BlackBlex

Respuestas: 0
Vistas: 2990
Último mensaje Julio 05, 2017, 10:42:32 pm
por BlackBlex