Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Uso correcto de la función Format de la unidad SysUtils (https://www.clubdelphi.com/foros/showthread.php?t=47695)

juliobuitrago 05-09-2007 06:22:14

Uso correcto de la función Format de la unidad SysUtils
 
Imprimiendo a LPT, me trabo solo en el formateo, ya lo demás funciona requetebien, pero el formateo........me da tremendo bateo extraño....
Miren esto amigos:

WriteLn(lst, Format('%-10s', Query_DetallesDESCRIPCION_SHORT.Value);
Si, esta es la linea que trato de imprimir.
Claro está que lo segundo es un TFieldString.....

Dicen que son chars, y en Internet encontré esto:
WriteLn(lst, Format('%-10s', PChar(Query_DetallesDESCRIPCION_SHORT.Value));

Nada, ahí es que comienza a darme este mensaje:
"there is not overloader version of 'Format' that be called with these arguments":confused::confused::confused:

Ya probé con tomar y tratar de convertir de strings a pchar, todo bien, pero me sigue dando este problema. Mientras no aparezca el format, todo bien, pero con el format...todo se destruye,

Esto fue una impresión que casi es para mañana.......estoy en américa, así es que e pa hoy.:(

Alguna idea?, que hago mal ????????, se que casi siempre estos problemas es cuestión de que te salga la primera vez......
Ahhh, no se nada de formateos, pero un buen ejemplo en Internet me dijo que debía hacer esto para formatear una descripción con un numero atrás y que me salga bien organizado.
Después que termine con el primero, voy para este:

WriteLn(lst, Format('%5.2f',Query_DetallesTOTAL_LINEA.Value));

Si desean algún comentario antes que me lo coma y pueden ver que hay algún error igual, me lo dicen , por fa, estoy desesperado.....casi que perdí la paciencia....ahora ustedes son como Obi One....

Saldrá???????

Saludos y gracias anticipadas por su siempre respuesta

Fdo

Al González 05-09-2007 07:33:02

Hola Julio, Fernando, Buitrago o cual sea tu nombre.

La desesperación no tiene cabida en ninguna labor.

Programar en Delphi no es como en otros lenguajes donde la única fuente nutrida de información es Internet. Delphi tiene además una muy completa fuente de respuestas llamada Ayuda. Pero tiene una contraseña para ingresar a ella que casi nadie conoce: consiste en presionar la insólita tecla F1.

Ahí podrás ver cuál es la sintaxis correcta e incluso algunos muy buenos ejemplos de la función Format.

El mensaje de error que te aparece resulta de que existen dos versiones (sobrecargas) de la función Format, pero ninguna está hecha para la forma en que estás enviando los parámetros. Esencialmente, tenemos que estás intentando poner una cadena de caracteres donde debe ir un arreglo abierto. Te faltó considerar los códigos ASCII 91 y 93. ;)

Confío en que con esto lograrás resolverlo, pero en caso contrario, no dudes en escribirnos nuevamente. Estamos para ayudarte.

Un abrazo.

Al González. :)

juliobuitrago 05-09-2007 12:35:08

Gracias...pero...
 
:confused:cuando se trata de una venta al otro día, y que no es de lo que estas acostumbrado a programar, que no hay tiempo.....y que no sale como dicen los textos......la desesperación puede que se apodere de alguno, aunque lleve como yo desde el nacimiento de la misma Borland programando.
Por el Help pasé, y comprendo, por desgraciadamente la experiencia que tengo ya que soy casi un viejo, que algo falta y que mis conocimientos acumulados no me pueden dar en poco tiempo tal vez la solución que deseaba.
Me dices de códigos ascii, pero te agradecería, si dado el ejemplo que os envié, me enviaras la línea de código con la cual "esto" trabajara.
De todas formas, veré que "invento", pues el cliente debe ver que "sale", al menos........

Lo que más amo de la programación es que siempre tiene una solución, y nada aburrida, pues nos hace desesperarnos, aprender, leer, buscar.....

Además no siempre Delphi ha tenido ese Help.....no recuerdo, pero creo que fue la versión 2 la que no trajo nada de nada, y había que recurrir al Help de Delphi 1.....así es la vida

Gracias por tu desinteresada ayuda, por supuesto.

Sigo en las mismas

Saludos

Fdo.

Nota: Me llamo fernando Julio Buitrago, pero el "fernandobuitrago" y el "buitrago" estaban tomados, así es que usé mi "nombre de guerra", no había de otra, los tres son los estándares que uso en los forums.

rafita 05-09-2007 13:13:02

Buenas,
Lo que el compañero te está diciendo es que no utilizas la función correctamente. Te pongo un ejemplo de utilización:


Código:

writeln(lst,Format('Este es el primer valor %d y este el segundo %d. Suerte', [Valor1, Valor2]);
Lo que hace es sustituir los comodines %d (hay otros) por los valores que hay dentro del array, en este caso Valor1 y Valor2 (que he supuesto variables de tipo entero).

También te recomiendo que mires la función FormatFloat, que yo utilizo a veces:
Código:

Salida:='Importe  dispuesto: ' + FormatFloat('#,##0.00', ADOQuery1.FieldByName('Dispuesto').AsCurrency);
Espero haberte aclarado algo

juliobuitrago 05-09-2007 13:25:24

Ahhhhhh
 
Claro Fernando (ese soy yo)...los comodines es que por cada %d y/u otra, debe existir un valor........ok, deja ver si pruebo, muchas pero que muchas gracias...es vero igual a php...dicen que el "malcomio" no piensa, pero el que anda apurao' mete la pata o no recuerda más allá de lo del momento.

Muchas gracias, de veras.....ahora que veo todo lo que traté de hacer, me doy cuanta de que "ayer" en la noche...me volví un aprendiz...gracias.

Saludos

Fdo

juliobuitrago 05-09-2007 13:35:01

De todos modos
 
El lió mio no era precisamente en las conversiones, sino en las alineaciones....en el caso de formatfloat, y el que yo uso FloatToStrF, ni alinean, hasta donde yo c, por lo que para "pelear" con una impresora de tickets, que es el ejemplo, ("a palo"), no queda más remedio, hasta donde veo, que usar eso o hacer funciones de "relleno" como la que hice.

Muchas gracias a todos por sacarme del "fooling around"

Saludos

Fdo Julio Buitrago


La franja horaria es GMT +2. Ahora son las 06:42:32.

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