| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
maxpowel Invitado
|
Publicado: Jue 31 Mar, 2005 8:03 pm Asunto: copia cosas raras de la memoria |
|
|
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  |
|
| Volver arriba |
|
 |
Fernando Diaz Master


Registrado: 18 Jul 2004Mensajes: 273Ubicación: Talavera de la Reina (Toledo)
|
Publicado: Jue 31 Mar, 2005 8:43 pm Asunto: |
|
|
pon el codigo que usas haber si puedo ayudarte _________________ Los problemas mas dificiles tienen las soluciones mas sencillas
 |
|
| Volver arriba |
|
 |
maxpowel Invitado
|
Publicado: Jue 31 Mar, 2005 9:25 pm Asunto: el codigo |
|
|
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 |
|
 |
masBecas Lt

Registrado: 23 Oct 2003Mensajes: 98Ubicación: La Laguna, Tenerife
|
Publicado: Vie 01 Abr, 2005 9:15 am Asunto: |
|
|
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 |
|
 |
laremi400 Master

Registrado: 12 May 2004Mensajes: 179
|
Publicado: Vie 01 Abr, 2005 11:14 am Asunto: |
|
|
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 |
|
 |
maxpowel Cdt

Registrado: 01 Abr 2005Mensajes: 18
|
Publicado: Vie 01 Abr, 2005 7:41 pm Asunto: |
|
|
gracias, ya lo resolvi , aunque voy a mirar a ver los streams a ver si me vienen mejor  |
|
| Volver arriba |
|
 |
|