Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como convertir pchar a string ? (https://www.clubdelphi.com/foros/showthread.php?t=53571)

calogero 24-02-2008 05:56:51

Como convertir pchar a string ?
 
Hola que tal!! :)

He creado una dll en delphi con una funcion que recibe dos tipos de datos string uno es una cadena y el otro es una cadena de solo un caracter y esta funcion devuelve un string.
El objetivo de esta funcion es tomar una palabra y devolver una parte de la cadena a partir de un string de izquierda a dereha ejemplo 'ulises' y a partir de la 'i' devolver 'ises'.

Luego de haber creado la dll defino en ibexpert una UDF hasta aqui todo va bien la udf queda bien definida el problema resulta cuando hago uso de ella porque en el ibexpert
el tipo de dato varchar no es compatible con string de delphi pero si es compatible con pchar solo que pchar no me facilita concatenar cadenas es decir no me lo permite.

ojala alguno de ustedes supiera cuales tipos de datos de cadena de ibexpert y delphi son compatibles o si sabe alguien como convertir pchar a string, ojala tengan alguna idea, gracias de antemano.

Ya estuve buscando aqui en los post de delphi pero ya tengo rato y no he encontrado algo relacionado con lo cual me pueda orientar.

Al González 24-02-2008 06:43:05

¡Hola!

Tratándose de DLLs lo más recomendable es usar PChar, ya que los valores de tipo String (o cadenas largas) llevan contadores de referencias y tienen un tratamiento especial dentro de Delphi.

La conversión de un PChar a String se da de manera implícita cada vez que usas un PChar donde se espera un String. La conversión inversa tan sólo requiere un molde de tipo.

Código Delphi [-]
Str := UnPChar;
UnPChar := Pointer (Str);

Te recomiendo que declares a la función y sus parámetros como elementos de tipo PChar. Dentro de la función realiza las conversiones que sean necesarias (usando variables auxiliares si lo crees conveniente) para ejecutar la operación en cuestión.

Espero haber orientado un poco.

Saludos.

Al González.

calogero 25-02-2008 17:07:02

Gracias Al Gonzáles por tu respuesta apenas a cabo de leer el post todavía no la pongo en práctica pero si a ti te ha funcionado seguramente me será de gran ayuda, bueno muchas gracias por tu respuesta y en cuanto ponga en práctica tu recomendación te diré como me fue, hasta luego :)


La franja horaria es GMT +2. Ahora son las 17:50:52.

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