Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-09-2010
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Poder: 17
gaston260 Va por buen camino
ayuda para convertir Integer en PansiChar

Hola a todos tengo este problema creo que necesito convertirlo pero no se como hacer esto ! acá pongo la captura de la pantalla !

Responder Con Cita
  #2  
Antiguo 27-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Gastón.

No sé en absoluto que es ComPort1 en tu código. Pero indudablemente Read espera un caracter no un número.
Primero deberías convertirlo a caracter con IntToStr y de ser necesario, hacerle un cast a PChar.

Algo como:
Código Delphi [-]
  ComPort1.Read(DataSerial, PChar(IntToStr(1)));

Creo que podrías usar esto con el mismo resultado:
Código Delphi [-]
   ComPort1.Read(DataSerial, '1');

Saludos.

Última edición por ecfisa fecha: 27-09-2010 a las 20:36:53.
Responder Con Cita
  #3  
Antiguo 28-09-2010
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Poder: 17
gaston260 Va por buen camino
Hola ninguna de las dos opciones funciona , comport es un componente dedicado a usar el puerto com

saludos !!
Responder Con Cita
  #4  
Antiguo 28-09-2010
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Poder: 17
gaston260 Va por buen camino
el problema está en dataserial !

read(mBuffer: PAnsiChar;Count:Integer):Integer

pero Dataserial no aparece como una propiedad !

saludos !
Responder Con Cita
  #5  
Antiguo 29-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por gaston260 Ver Mensaje
el problema está en dataserial !

read(mBuffer: PAnsiChar;Count:Integer):Integer

pero Dataserial no aparece como una propiedad !

saludos !
Si hubiese visto la declaración de la función es claro que mi respuesta abría sido otra... Ahora puedo ver que es un parámetro de tipo Integer no PAnsiChar.

Y mBuffer es un parámetro de tipo PAnsiChar, por lo que el error que te dá es por que le estás pasando DataSerial,
que no sé que es, pero sí lo que no es: Una variable de tipo PAnsiChar.

Saludos.

Última edición por ecfisa fecha: 29-09-2010 a las 01:35:40.
Responder Con Cita
  #6  
Antiguo 29-09-2010
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Poder: 17
gaston260 Va por buen camino
Hola y gracias por contestar de nuevo ! mi pregunta es ! como puedo hacer la convercion ?

saludos !
Responder Con Cita
  #7  
Antiguo 29-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Gaston.

Para contestarte sin decir disparates, necesitaría saber que es DataSerial.
Así como también lo que deseas pasar como parámetro a la función Read.

Saludos.
Responder Con Cita
  #8  
Antiguo 29-09-2010
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Poder: 17
gaston260 Va por buen camino
bien ! queres que te pase el codigo completo ?
Responder Con Cita
  #9  
Antiguo 29-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
No Gaston, no creo que sea necesario.

Como solicitas en el título y como te puse en el primer post; la conversión para pasar un Integer a PAnsiChar es PChar(IntToStr(numero)).

Entonces tomando en cuenta lo anterior y que la declaración de la función es:
Cita:
read(mBuffer: PAnsiChar;Count:Integer):Integer
Seria:
Código Delphi [-]
begin
  ComPort1.Read(PChar(DataSerial), 1);
end;
Este último código es correcto, al menos en lo que refiere a la concordancia de tipos...

Saludos.

Última edición por ecfisa fecha: 29-09-2010 a las 10:33:57.
Responder Con Cita
  #10  
Antiguo 01-10-2010
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Poder: 17
gaston260 Va por buen camino
Hola ecfisa ! lo hice como me indicaste pero me da un error en el codigo del componente ! ahi cuelgo las capturas !, sera que tengo que instalar un componente mas nuevo ?




y la linea que me da error en el componente


Responder Con Cita
  #11  
Antiguo 01-10-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Gaston.

Eso, ya es hilar muy fino para el nulo conocimiento que tengo sobre el componente ...
Pero me aventuro a decirte que el error que te aparece: 'Access Violation at address...', es por que estás usando algún
recurso que aún no fué instanciado.

Lo que te escribo a continuación es sólo un ejemplo. Con anterioridad a la línea que genera el error, has realizado algo como:
Código Delphi [-]
   ComPort:= TComPort.Create(Self);

No sé si el componente debe crearse (o si debe crearse así), cuál es su Owner (puse Self ), ni siquiera sé si el error es debido
al componente... es decir que estoy suponiendo que la cosa puede andar por ahí por el tipo de error que te dá.

Espero que te oriente para darle solución.

Saludos.

Última edición por ecfisa fecha: 01-10-2010 a las 03:49:21.
Responder Con Cita
  #12  
Antiguo 01-10-2010
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Poder: 17
gaston260 Va por buen camino
hola gracias por responder de nuevo !, entonces aparentemente el error esta en el componente ?, voy a tratar de istalar otro mas nuevo y comento que paso !

saludos ecfisa !!
Responder Con Cita
  #13  
Antiguo 01-10-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por gaston260 Ver Mensaje
hola gracias por responder de nuevo !, entonces aparentemente el error esta en el componente ?, voy a tratar de istalar otro mas nuevo y comento que paso !
saludos ecfisa !!
Hola Gastón.

No digo eso. Sólo digo que ese tipo de error, generalmente, se dá cuando usas un recurso que no ha sido instanciado.
Pero tampoco se puede descartar la otra posibilidad... no es mala idea probar con otra versión del componente.

Saludos.

Última edición por ecfisa fecha: 01-10-2010 a las 20:12:52.
Responder Con Cita
  #14  
Antiguo 03-10-2010
cmm07 cmm07 is offline
Miembro
 
Registrado: nov 2007
Posts: 526
Poder: 17
cmm07 Va por buen camino
o también puede ser que ese "DataSerial" permita convertirse en PAnsiChar pero el contenido sea diferente al que se solucita al llamar la función Read() causando obviamente un Aceso de Violación (Por lo menos a mí me a pasado eso en algunso casos), para ayudarte, yo creo que nosotros necesitamos saber la herencia del termino "DataSerial" ¿Que es?, ¿Que hace principalmente el Read()?, ¿Que esperas de él?..etc..Nose pero según mi punto de vista necesitamos saber más (no quiere decir que coloques tu código de fuente)...

Saludos y ojala lo soluciones.!
Responder Con Cita
  #15  
Antiguo 09-10-2010
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Poder: 17
gaston260 Va por buen camino
Hola gracias por ayudarme ! estoy confundido !, se que me pides pero digo ?!, no es mejor que publique el codigo (por cierto no es mio) e instalas el comport y lo pruebas ?.

PD: dime que hace falta y yo lo ago !

Saludos !.
Responder Con Cita
Respuesta



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 un tbitmap a integer sultan Gráficos 5 26-10-2008 20:41:56
convertir un integer en hh:mm:ss jmlifi SQL 1 02-11-2005 18:00:44
Convertir un String a Integer Rafe Varios 2 12-08-2005 17:43:38
convertir de 'TCaption' para usar su valor en 'PAnsiChar' jbgpina OOP 5 03-03-2004 14:06:45
convertir a integer acrophet Varios 1 03-11-2003 12:01:43


La franja horaria es GMT +2. Ahora son las 03:31:28.


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