![]() |
![]() |
| 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
|
||||
|
||||
|
Hola,
Cita:
Código:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString archivo = "C:\\archivo.txt";
TStringList *temporal = new TStringList();
try
{
temporal->LoadFromFile(archivo);
ShowMessage(temporal->Text);
}
__finally
{
temporal->Free();
}
}
Código:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
AnsiString archivo = "C:\\archivo.txt";
TFileStream *fs = new TFileStream(archivo, fmOpenRead);
TStringStream *ss = new TStringStream("");
try
{
ss->CopyFrom(fs, 0);
ShowMessage(ss->DataString);
}
__finally
{
fs->Free();
ss->Free();
}
}
|
|
#2
|
||||
|
||||
|
Aunque no entiendo muy bien lo que te pasa , para no tener
problemas con los retorno de carro ( 0D0A ) maneja el fichero en modo binario no en modo texto. |
|
#3
|
||||
|
||||
|
Pues va a ser que no....
...vamos a ver he probado lo de cargar el archivo de una vez con el Tstringlist, pero nada... el archivo es este: archivo Lo he puesto con extension .doc para poder subirlo. Si lo habris con un editor hexadecimal, podreis verlo perfectamente. Yo lo que quiero es obtener en una cadena todo el codigo hexadecimal. Porque hasta ahora para poder trabajar con el, lo que tengo que hacer es abrir el archivo con un editor hexadecimal, seleccionar todo el codigo y copiarlo a un archivo de texto. La version hexadecimal de ese archivo es: archivohex Asi que si alguien pudiera decirme como leer directamente el archivo y obtener ese codigo hexadecimal en una cadena y luego volver a pasarlo a otro archivo.... Muchas Gracias Un saludo Antonio |
|
#4
|
||||
|
||||
|
He preparado este ejemplo, que puede servir como base, como es tarde lo dejo así, solo queda darle algunos retoques:
Se necesita: Un TOpenDialog y un StringGrid
Un Saludo
__________________
Guía de Estilo de los Foros Cita:
|
|
#5
|
||||
|
||||
|
funciona perooooooo...
he probado ese codigo, cambiado al c++ y funciona pero mirad lo que pasa:
Principio de la cadena, copiada de un editor hexadecimal 436F7079726967687420286329313939352044696E616D6963204D756C74696D65646961002090010... Principio de la cadena, obtenida mediante el codigo anterior: 436F7079726967687420286329313939352044696E616D6963204D756C74696D656469610020FFFFFF90010 El principio es el mismo...ok...pero mirad las FFFFF...esta el archivo plagado de ellas...y no tienen porque salir, porque leyendo caracter a caracter no salen... ..alguien entiende algo?...ademas no puedo quitar todas las F, pq quitar algunas que si valen. Pd.- pprey, no he podido probar tu codigo, pq no se como hacer un pas y usarlo en c++. Si pudieras pasarlo a c++.. Gracias a todos Un saludo Antonio |
|
#6
|
|||
|
|||
|
hex
Con respecto a pasartelo a C++ lo que te envie, ahora mismo no podría pasartelo a C++ porque no tengo mucho tiempo para ello. Por lo que veo ahora tienes problemas con las FFFF con el codigo que te paso otro compañero. Pues bien creo que el problema de las FFFF es que al pasar tu el codigo a C desde delphi, quizás tengas algun problema en los bucles. Mira bien tu codigo y los loops que haces, a ver si tienes algun problema con los indices.
Si tengo un momento y mi codigo te lo puedo pasar a C++, ya te lo enviaré o bien te mando un .pas para que lo incluyas en un paquete de buider. |
|
#7
|
||||
|
||||
|
El codigo que se puso traducido a c++ es mas o menos este:
if(odFichero->Execute()) { equipo = odFichero->FileName; iFileHandle = FileOpen(odFichero->FileName, fmOpenRead); iFileLength = FileSeek(iFileHandle,0,2); FileSeek(iFileHandle,0,0); Buffer = PChar(AllocMem(iFileLength + 1)); iBytesRead = FileRead(iFileHandle, Buffer, iFileLength); FileClose(iFileHandle); for(int i=0;i < iBytesRead-1;i++) { cadenahex = cadenahex + IntToHex((int)(Buffer[i]),2); } } |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|