border
VB 6
 
 
/
  #1 (permalink)  
Antiguo 22-01-2006, 22:43:37
Gran Participación en el Foro
 
Registrado: feb 2004
Posts: 135
Créditos: 3.040
LaNGuiS Valoración +2
Predeterminado 1 caracter = 1 byte

Hola les cuento mi problemilla ver si me pueden echar una mano.

Yo tengo por ejemplo la cadena "Hola".

Esta cadenta es una cadena de 4 caracteres y 8 bytes.

Yo puedo hacer que estos 8 bytes se tranformen en 4 bytes. haciendo

Variable = StrConv("Hola", vbfromunicode)

Y luego recuperar ese "Hola" haciendo.

Variable1 = StrConv(variable, vbunicode).

Hasta ahi todo muy lindo el problema viene cuando yo quiero mandar la "Variable" por winsock o por cualqueir otro metodo. Al llegar la informacion y luego hacer "Variable1" me devuelve cualqueir cosa por el Chr(63).

Mi pregunta es, hay alguna manera de que esto no pase O hay algun otra forma de hacer que un byte sea un caracter?

Gracias.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #2 (permalink)  
Antiguo 22-01-2006, 22:58:23
Avatar de imported_chiaravel
Administrator
 
Registrado: dic 2002
Ubicación: Buenos Aires - Argentina
Posts: 2.221
Créditos: 32.191
imported_chiaravel Valoración +2
Predeterminado

Creo que debo ir a aprender nuevamente todo lo relacionado a la programacion.....

Siempre pense que 4 caracteres eran 4 bytes...

Estaré perdiendo la razon y el sentido ? :smt017

Saludos
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #3 (permalink)  
Antiguo 24-01-2006, 01:48:03
Gran Participación en el Foro
 
Registrado: feb 2004
Posts: 135
Créditos: 3.040
LaNGuiS Valoración +2
Predeterminado

Cita:
Empezado por chiaravel
Creo que debo ir a aprender nuevamente todo lo relacionado a la programacion.....

Siempre pense que 4 caracteres eran 4 bytes...

Estaré perdiendo la razon y el sentido ? :smt017

Saludos

gracias por tu comentario , me ha sido de gran ayuda. :smt009 :smt005
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #4 (permalink)  
Antiguo 24-01-2006, 02:31:13
Avatar de imported_chiaravel
Administrator
 
Registrado: dic 2002
Ubicación: Buenos Aires - Argentina
Posts: 2.221
Créditos: 32.191
imported_chiaravel Valoración +2
Predeterminado

Cita:
Empezado por LaNGuiS
Cita:
Empezado por chiaravel
Creo que debo ir a aprender nuevamente todo lo relacionado a la programacion.....

Siempre pense que 4 caracteres eran 4 bytes...

Estaré perdiendo la razon y el sentido ? :smt017

Saludos

gracias por tu comentario , me ha sido de gran ayuda. :smt009 :smt005
Disculpa pero no se que mas podria decirte... tu crees realmente que 4 caracteres ocupan 8 bytes ? eso seria la ANTI-COMPACTACION.

Perdona pero que alguien salga a DESEMPATAR esto.

Saludos
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #5 (permalink)  
Antiguo 24-01-2006, 03:21:54
Avatar de imported_chiaravel
Administrator
 
Registrado: dic 2002
Ubicación: Buenos Aires - Argentina
Posts: 2.221
Créditos: 32.191
imported_chiaravel Valoración +2
Predeterminado

Espero que no te hayas enojado.. solo estamos debatiendo diferencias de conocimiento.

Saludos
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #6 (permalink)  
Antiguo 25-01-2006, 15:31:00
Avatar de mensazen
Usuario VIP del Foro
 
Registrado: jul 2004
Ubicación: Barcelona
Posts: 714
Créditos: 3.086
mensazen Valoración +2
Predeterminado

Hola Pablo, intentaré no oscurecer mas el tema.

La unidad básica es el bit, un caracter se forma con un 'octeto' es decir 8 bits que se le pasó a llamar byte. El último bit de un caracter es el del control de errores por lo que se pueden hacer hasta 128 carácteres distintos con 7 bits (0 a 128), en 1968 se creo la norma ASCII para unificar. El problema es que no se podían abarcar todos los caracteres (interrogantes, acentos, letras especiales etc.) así que se añadieron mas tablas ASCII (Páginas o idiomas).

La norma de codificación se llamó UNICODE. y se separó de la norma de codificación de la de transmisión de datos por internet (hay varias normas pero la norma de transmision unicode mas habitual es UTF-8). Se eliminó el octavo bit como bit de paridad, el error se evitaría añadiendo mas octetos completos.

Entonces resultó que el primer bit siempre es "0". El problema es que hay mas de 50.000 caracteres y como no caben en esos 128, cuando se transmite uno que no cabe el primer bit del octeto es 1 y eso indica que a continuacion va una serie de octetos (2, 3...) para un solo carácter.

Espero no haber sido muy aburrido.

En cuanto a la pregunta de LaNguiS no se como puede convertir 8 bytes en 4, al fin y al cabo lo que hace vbfromunicode es convertir un string en una matriz de bytes así que supongo que si cambia la codificación y, después, intenta hacer la transmisión, cuando se recibe el dato y se compara no creo que pueda reconocerse.


(para complicarlo mas existe una tabla tipográfica que asocia los octetos a un 'glifo' específico).

:smt006
__________________
Saludos
José Antonio
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #7 (permalink)  
Antiguo 25-01-2006, 15:35:38
Avatar de imported_chiaravel
Administrator
 
Registrado: dic 2002
Ubicación: Buenos Aires - Argentina
Posts: 2.221
Créditos: 32.191
imported_chiaravel Valoración +2
Predeterminado

Perdon entonces por mi burrada....

Fue un problema de interpretacion.

lo que pasa es que el titulo de "1 caracter = 1 byte" confunde un poco.

Saludos
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #8 (permalink)  
Antiguo 25-01-2006, 19:04:02
Avatar de mensazen
Usuario VIP del Foro
 
Registrado: jul 2004
Ubicación: Barcelona
Posts: 714
Créditos: 3.086
mensazen Valoración +2
Predeterminado

Cita:
Empezado por chiaravel
Perdon entonces por mi burrada....

Fue un problema de interpretacion.

lo que pasa es que el titulo de "1 caracter = 1 byte" confunde un poco.

Saludos
Hola Pablo, no pienso que hayas dicho ninguna "burrada". Como bien dices 4 carácteres son 4 bytes.

Realmente mi 'discursillo' no era para explicártelo a tí. Creo que el problema, sino que alguien me diga lo contrario, es partir de la base de que 4 carácteres son 8 bytes y mediante la función pasan a 4 bytes. Me Imagino que el amigo LanGuiS ha mezclado bits con bytes porque, repito, lo que hace la función es convertir en una matriz de 8 * numero caracteres, no reducir el tamaño.

LanGuiS no te tomes a mal las respuestas de Pablo o mías, simplemente queremos aclarar las cosas porque todos aprendemos de todos y, ¿porqué no?, puedo tener los conceptos equivocados mientras alguien no me demuestre lo contrario.

Así que un abrazo y, si me permites la broma, espero que tu participación en el foro no LanGuiSdezca por estos comentarios. :smt002

:smt006
__________________
Saludos
José Antonio
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
Respuesta


Herramientas

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
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
leer caracter visual_v Visual Basic 6.00 1 24-01-2007 03:18:33
Byte Tira C# .NET / C / C++ 3 31-10-2006 12:59:53
pasar de byte[] a int, float ó double mbcapi JAVA 9 13-09-2006 23:35:22
Variable tipo Byte chronos682 Visual Basic 6.00 1 09-10-2004 17:58:30
Caracter £ desde codigo sqa212 Visual Basic 6.00 1 14-02-1970 05:33:10


La franja horaria es GMT. Ahora son las 18:10:58.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios


right
Inactive Reminders By Icora Web Design