Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-01-2016
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
convertir ascii a 0 y 1 y a beeps

Hola, despues de mucho tiempo, vuelvo a las andadas, y es que hace tiempo que le vengo dando vueltas a una idea y me gustaría saber si puede realizarse, la cuestión es que me gustaría pasarle un archivo cualquiera a la aplicacion (ya sea un archivo de 3Mb o uno de 34Gb), que esta lo abra como ascii y que seguidamente y en función de su valor en la tabla ascii (para cada simbolo), le asigne un valor en binario. Este valor en binario luego se convertiría en beeps, siendo el 1 un tono mas alto que el 0.

Por ejemplo si la cadena en ascii fuera algo así: As&8)x234$, cada caracter tiene un valor, la "A" = 65 pues ese valor pasarlo a 1 y 0 que sería algo tal que 1000001 y a este binario asignarle tonos mas graves o agudos según sean 0 y 1 para al final crear un archivo mp3 con esta suceción de beeps.

¿Alguna sugerencia de como ir esbozando esto?
Un saludo a todos y aunque algo tarde, feliz año! XD
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #2  
Antiguo 15-01-2016
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Obtener los ceros y los unos no es difícil. Usando el operador MOD para saber el resto y SHL ó SHR para desplazar los bits (o "DIV 2") dentro de un bucle.

Crear el MP3 tampoco debería ser difícil. Claro que necesitarás una biblioteca que te lo permita. O, en el peor de los casos, usar un programa de apoyo como ffmpeg, que permite editar archivos multimedia (imagen, sonido y vídeo) a través de la consola de comandos.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 15-01-2016
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Cita:
Empezado por danielmj Ver Mensaje
...le asigne un valor en binario. Este valor en binario luego se convertiría en beeps, siendo el 1 un tono mas alto que el 0...
¿Y no te sirve el alfabeto Morse? Digo, cayó en desuso desde que el telégrafo dejó de usarse, pero sigue siendo un standard universal.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #4  
Antiguo 19-01-2016
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Buenos días, lo primero perdón por tardar en contestar, lo segundo, gracias por vuestras respuestas, el trabajo no me da tiempo para vivir je, de echo escribo desde el curro con el móvil ya estoy por salir después e un turno de 17h... En fin, voy a probar lo del mod, a ver que tal. La idea es más amplia pero poco a poco.

Un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #5  
Antiguo 02-02-2016
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
hola de nuevo, he empezado a trastear un poco la app, a esbozar si lo preferis, en fin el caso es que si pulso sobre un edit las teclas Alt+155, aparece el simbolo ascii "ø" que es lo correcto, el problema es que en el label no me guarda su valor numerico es decir "155", sino 248 y su semejante binario, adjunto captura. http://subefotos.com/ver/?cca3e3c60fa720f17f770603948a6a37o.png

El codigo que tengo es este:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var

  s: string;
  i,x: integer;

begin
  for i:= length(edit1.Text) downto 1 do
    begin
      label1.Caption:=  IntToStr(Ord(edit1.Text[i]));
      x:= StrToInt(label1.Caption);
      label2.Caption:= IntToBin(x,8);
    end;
end;

¿por qué no aparece el valor real? otro ejemplo, el valor numerico de ' ' es 255, pero en vez de eso me devuelve 160.

Gracias por vuestra ayuda.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #6  
Antiguo 02-02-2016
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
hola, otro simbolo que no funciona bien es si tecleo Alt+254 que debería salir esto "■" pero la aplicacion si le pongo ese cuadrado negro no devuelve 254, sino que devuelve 9632 y no sé por que...

un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #7  
Antiguo 03-02-2016
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
ascii extendido error

hola, sigo intentando sacar el calor decimal de un caracter ascii extendido >127, pero no lo consigo. por ejemplo:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  c: char;

begin
  c:= '■';
  label1.Caption:= intToStr(ord(c));
end;

Me devuelve 9632 cuando en realidad es 254 ¿alguna sugerencia?
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #8  
Antiguo 03-02-2016
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Tiene pinta de que está usando una tabla de códigos diferente a la que esperas. La verdad es que es un lío, con tanto UNICODE, ANSI, ISO y ASCII, y no veo solución sencilla.

Comprueba si la aplicación está usando la misma tabla que tu sistema operativo. El como ya no estoy seguro, aunque creo que en las propiedades del Equipo y en la configuración del compilador vendrá algo.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #9  
Antiguo 03-02-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por danielmj Ver Mensaje
hola, sigo intentando sacar el calor decimal de un caracter ascii extendido >127, pero no lo consigo. por ejemplo:Me devuelve 9632 cuando en realidad es 254 ¿alguna sugerencia?
No crees hilos nuevos para lo mismo, gracias

¿Has probado con ansistring(loquesea) ?
Responder Con Cita
  #10  
Antiguo 03-02-2016
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
hola casimiro, no, voy a ver y sobre el hilo oido cocina, la verdad se me fue... por que no es que sea nuevo en el foro, vamos que conozco las normas. Un saludo.
Ñuño, voy a mirar tambien lo que dices, el problema es... cuando se ejecute en otra maquina ¿lo hará correctamente o volverá a fallar?

un saludo y gracias.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #11  
Antiguo 03-02-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por danielmj Ver Mensaje
hola, sigo intentando sacar el calor decimal de un caracter ascii extendido >127, pero no lo consigo. por ejemplo:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  c: char;

begin
  c:= '■';
  label1.Caption:= intToStr(ord(c));
end;

Me devuelve 9632 cuando en realidad es 254 ¿alguna sugerencia?
A mi este código me está funcionando.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  c: char;
begin
  c:= '®';
  Label1.Caption:= intToStr(ord(c));
end;

Me devuelve un 174.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #12  
Antiguo 03-02-2016
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola Neftalí, ummm 174 no se corresponde con ese simbolo ascii, mira la tabla de la captura, el 174 pertenece a "«" el simbolo "®" se corresponde con el 169. Y ese el problema, que no sé como sacar su valor correcto. La idea de este proyecto es muy amplia, y estos son solo los primeros problemas que me estoy encontrando, más adelante, solucionado esto, tendre que trabajar con alguna libreria para usar el formato mp3 y seguramente volvere a tener problemas.

En fin, de momento quisiera obtener el decimal del ascii para luego pasarlo a binario.

Un saludo y gracias.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #13  
Antiguo 03-02-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Creo que delphi está trabajando con una tabla que no es la que tú has puesto.
En la mía (desde el IDE de Delphi) aparece esto:

__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #14  
Antiguo 03-02-2016
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
hola, neftalí, pues ahora si me dejas a cuadros por que en mi teclado pulsando "alt+174" sale "«", ya me perdí aun mas.
un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #15  
Antiguo 03-02-2016
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
voy a plantearlo de otro modo, la cuestion es, si yo abro un archivo x.mkv con el bloc de notas, me salen mil simbolos que se corresponden con la tabla ascii, entonces, puedo crear un case dentro de un bucle donde se recorra caracter a caracter y en caso de ser por ejemplo ® le asigne el valor decimal? seria un case de 255 lineas pero seria una opcion?

Por cierto neftalí, tienes razón, lo que pasa es que yo pulsaba alt+169 y he caido en la cuenta de que pulsando alt+0174 se da el mismo resultado, lo que me lleva a otra duda, cuando en el bloc de notas aparezca "®" que valor le doy 169 o 0174? por que no es lo mismo y la aplicacion tendrá la operación inversa, es decir que del binario, pasará al decimal y por ultimo al simbolo ascii.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Convertir caracter a codigo ASCII Tecnic2 OOP 13 28-03-2009 16:07:09
Convertir un dato hex a ascii bactering Varios 16 27-07-2008 17:41:33
Convertir Letras A Si Volor Ascii daniel madriz Varios 5 21-12-2007 22:43:31
Convertir un ASCII Katheza Varios 3 18-01-2006 18:47:04
¿Convertir los caracteres ASCII del ClientSocket.Socket.ReceiveText? Kamikaze Internet 23 14-07-2005 16:35:39


La franja horaria es GMT +2. Ahora son las 14:12:57.


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
Copyright 1996-2007 Club Delphi