FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Casteo y Migración
Buenos días, escribo el problema porque no he visto nada posteado al respecto y tampoco googleando veo alguna respuesta que cuadre en mi problema.
Tengo un código que anda de maravilas en Delphi 7 pero en Delphi Rapid XE y debuggeando paso a paso he encontrado el que parece ser mi problema. Tengo una comunicación con un dispositivo de hardware y he usado siempre strings para enviar y leer de dicho positivo. La razon es porque la clase que lo controla usa strings; y de allí que yo también. Ahora bien, yo creo buffers con strings, son pocos datos asi que me han funcionado siempre bien. En estos strings el 0 es un valor válido y no el fin del string; no obstante delphi nunca tuvo problemas con esto. Si por ejemplo hago Código:
str := chr(1) + chr(2) + chr(0) + chr(3) + chr(4); Si hago Código:
str := chr(127) ; Pero si hago Código:
str := chr(128); Me asigna $0080 (128 en una variable de 16 bits). Le he dado vueltas al problema y chr debiera devolver un valor de 8 bits no de 16 bits!! Este código en delphi7 lo hace perfecto. Casteandolo como char, no ha solucionado el problema... Lo único que me resta por probar es volver a trabajar con buffers de bytes y luego hacer la conversion (ya que como les mencionaba la clase que controla el dispositivo pide y responde con strings). Lo que van entre parentesis son constantes, es decir que no son variables que se modifiquen en tiempo de ejecución. Casteandolas por ejeplo con byte(128) tampoco resuelve el problema.. ¿Alguna idea? Desde ya muchas gracias por anticipado. |
#2
|
||||
|
||||
$0080 = $80 = 128
No llego a comprender el problema... ¿De qué tipo es "str"?... ¿Es un string?.. ¿No te lo estará mostrando así el Debugger pero verdaderamente estas ocupando un solo byte con $80?
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
||||
|
||||
Haz una búsqueda en los foros por "unicode", creo que tiene que ver con eso, pero no recuerdo en qué tema se trató.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#4
|
||||
|
||||
Hola Maunix.
A partir de Delphi 2009 los caracteres (y por tanto las cadenas de caracteres también) usan el formato Unicode. Aún puedes seguir empleando el formato anterior, pero debes hacer cambios en los fuentes de tu aplicación / clases, para que todo funcione como en Delphi 7. En este foro encontrarás muchos temas que hablan de ello, y este artículo puede servirte de introducción para entender el tema: http://www.drbob42.com/examines/examinA7.htm Por otra parte, sin pretender otra cosa que contribuir a la cultura informática, quisiera decirte que los autores de libros (y un servidor también) suelen traducir el término type cast / casting como molde de tipo / moldear. Te recomiendo que hagas lo mismo, así evitarás el barbarismo de "castear". Un abrazo en cirílico. Al González. |
#5
|
|||
|
|||
Cita:
Cita:
No obstante hablo esto a priori antes de leer el link que me pasaste. PD: agradezco la sugerencia por mi "spanglish" del termino cast... a veces por mi trabajo usamos muchos terminos así y la verdad que está mal pero es pegadizo. Desde ya agradezco a todos por su tiempo y velocidad de respuesta!! |
#6
|
|||
|
|||
Finalmente (eso creo, al menos en las pruebas preliminares no he tenido inconvenientes) lo he resuelo poniendo el modo unicode en off
Tal cual como se explica en el siguiente link que lo dejo por si a algún otro le surge la misma inquietud No me permite poner el link porque no tengo privilegios para ello, pero en la página de dr bobs está la respuesta, en donde sugirió Al González Pero por cierto la sintaxis delphi sería Código:
{$HIGHCHARUNICODE OFF} Saludos |
#7
|
||||
|
||||
Puedes "engañar" al sistema quitando alguna letra, ejemplo: ttp://www.clubdelphi.com
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Migracion a excel | oscarac | Varios | 1 | 07-07-2011 10:02:17 |
Migración | DavidSG4 | OOP | 0 | 20-10-2008 17:04:23 |
migracion de datos | kejos | MS SQL Server | 1 | 18-01-2006 05:18:36 |
Casteo en tiempo de ejecución | moesis | OOP | 4 | 21-07-2005 16:21:56 |
Herencia y Casteo | PeLuCa | OOP | 9 | 05-04-2005 02:29:15 |
|