![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Me acabo de dar cuenta que está mal, perdón, es la costumbre del php. Tienes que guardar el resultado de la función sprintf en una cadena y después enviarla:
Código:
char cadenaFormato[100]; sprintf(cadenaFormato, "%-20s", nombres[i]); "%-20s" es un formato de sprintf(o printf, fprintf, etc..), puedes ver aquí los formatos que admite. Supongo que también en la ayuda del builder, pero no lo tengo instalado así que no estoy seguro. % -> indica que lo que viene después son indicadores de formato - -> alineación a la izquierda (por defecto es a la derecha) 20 -> número de caracteres, si son menos, rellena con espacios s -> indica que es una cadena.
__________________
Saludos. Última edición por basti fecha: 09-09-2007 a las 11:43:14. |
|
#2
|
||||
|
||||
|
Ya estoy apunto pero me queda una duda más.......
El siguiente codio lo que hace es abrir un archivo de texto, mete una pequeña cabecera, y luego porne: "hora" + "nombres de Variables", y en los sucesivos renglones pondra el valor de la hora correspondientes + los sucesivos valores de las correspondientes variables: bien, pues la cosa queda bien parejita, como yo digo, pero ocurre un error: cuando metemos los nombres de las variables, estos cadenas ocupan más espacio que cuando meto los valores de las variables; no sé si me explico bien, aunque todo esté formateado para que las cadenas que vaya introducido sean de 20 caracteres, no sé porqué, cuando introduzco las string con los nombres, no miden 20, sino que miden más.....¿?
Código:
ofstream fSalida("Datos.txt", ios::out); //Abrimos el archivo de datos donde vamos a guardar los datos.
if(!fSalida.is_open())
ShowMessage("!El archivo de Datos.txt donde guardaré los datos, no se ha podido abrir!");
else
{
fSalida.clear();
//Escribimos la cabecera del archivo.
fSalida<<"# Archivo de Datos.txt #"<<endl<<"#"<<endl;
sprintf(cadAux,"%-20s","Hora");
fSalida<<cadAux<<"-";
//Escribimos el nombre de las variables a escribir.
for(int i=0;i<numeroVariables;i++)
{
sprintf(cadAux3,"%-20s",nombres[i].c_str());
sprintf(cadAux,"%-20s",cadAux3);
fSalida<<cadAux<<"-";
}
//Metemos la hora
fSalida<<endl;
sprintf(cadAux,"%-20s",Label199->Caption.c_str());
fSalida<<cadAux<<"-";
//Ahora introducimos los valores.
for(int i=0;i<numeroVariables;i++)
{
sprintf(cadAux3,"%20.4f",valores[i]);
sprintf(cadAux,"%-35s",cadAux3);
fSalida<<cadAux<<"-";
}
fSalida.close(); //Cerramos el archivo.
nombres[]-->Es un vector de cadenas string (string *nombres=new string[numeroVarialbes]). valores[]-->Es un vector de double cadAux y cadAux3 son vectores de char ( char cadAux[50],cadAux3[50]) ¿Puede ser que la clave esté aquí, en el tamaño de la longitud de la cadena? Efectivamente, creo que tiene esto ultimo que ver porque he cambiado cadAux a longitud de [25] y los doubles no cambian pero las cadenas con los nombres de la variables se ha hecho más corto...¿¿¿no debería quedar todo en 20 que es el tamaño que le tengo puesto en el sprintf??? P.D.: Perdonen por meter esto en la seccion de Varios del Foro de Delphi cuando tenía que haber estado en el de Borland C++. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Escribir en dbgrid, pero no guardar | drykea | Varios | 10 | 02-08-2007 16:28:19 |
| Ayuda!!necesito guardar una imagen | ivan84 | Varios | 6 | 05-12-2006 18:02:48 |
| Necesito crear un permiso para escribir pero no para leer | federiconqn21 | Conexión con bases de datos | 5 | 07-07-2006 19:13:47 |
| necesito programar un evento en un combobox,pero no se cual de todos es | federiconqn21 | Varios | 7 | 06-04-2006 17:42:24 |
| Pregunta Realmente Tonta, pero necesito respuestas | codigit | Internet | 5 | 19-10-2005 16:41:51 |
|