Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

copia cosas raras de la memoria

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: copia cosas raras de la memoria Responder citando

hola, pues que tengo un archivo de texto, cargo el contenido en en un char (son solo 5 o 6 letras) y luego cuando quiero ponerlo en un memo me copia esas letras pero tambien otras "raras" tipo ê
¿alguien me puede decir por que?
Desde ya, gracias Very Happy
Volver arriba
Mensaje    Asunto: Responder citando

pon el codigo que usas haber si puedo ayudarte
_________________
Los problemas mas dificiles tienen las soluciones mas sencillas
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: el codigo Responder citando

FILE *comando;
long lSize;
char *buffer;
comando=fopen("cmd","r+");

fseek(comando , 0 , SEEK_END);
lSize = ftell (comando);
rewind (comando);
buffer = (char*) malloc (lSize);
fread (buffer,1,lSize,comando);
fclose(comando);
Memo1->Text=(buffer);
Volver arriba
Mensaje    Asunto: Responder citando

Si no me equivoco, te falta sumarle 1 al buffer para guardar el '\0', aunque como hace tiempo que no uso esas funciones (me he pasado a los "streams") no recuerdo exactamente cómo funcionaban.
Código:

buffer = (char*) malloc (lSize + 1);

La otra opción es que el fread no te ponga el '\0' al final del string, con lo que tendrías que añadírselo manualmente:
Código:

fread (buffer,1,lSize,comando);
buffer[lSize - 1] = '\0';
Volver arriba
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mensaje    Asunto: Responder citando

Hola!

Esto lo copio de un programa donde uso un ficherito de configuración:

int handle,longitud,leidos;
char *buffer;
char literal[256];

handle = FileOpen("C:\\PCpyFich.ini",fmOpenRead); //se abre como sólo lectura
longitud = FileSeek(handle,0,2); //longitud del fichero
FileSeek(handle,0,0); //fichero al principio
buffer = new char[longitud+1]; //+ 0x00
leidos = FileRead(handle,buffer,longitud); //se lee todo
FileClose(handle); //se cierra

Con esto estás usando instrucciones más modernas que las de tu programa. A ver si hay suerte y te sirve.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

gracias, ya lo resolvi Very Happy, aunque voy a mirar a ver los streams a ver si me vienen mejor Wink
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.