| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Felip Master

Registrado: 09 Jun 2004Mensajes: 200
|
Publicado: Lun 12 Ago, 2013 2:27 pm Asunto: Tiempo de carga de un RTF |
|
|
¿Alguien sabe por qué sucede esto ? Tiempo para cargar un archivo (2 MB) con un método TRichEdit LoadFromFile : 1.524224 Segundos :
| Código: |
RichEdit1->Lines->LoadFromFile("C:\\teste.rtf");
|
Tiempo de carga sin LoadFromFile : 0.025736 segundos:
| Código: |
String openFile(String filename)
{
int iFileHandle;
int iFileLength;
int iBytesRead;
AnsiString str;
str="";
iFileHandle = FileOpen(filename, fmOpenRead);
iFileLength = FileSeek(iFileHandle,0,2);
FileSeek(iFileHandle,0,0);
str.SetLength(iFileLength);
iBytesRead = FileRead(iFileHandle, str.c_str(), iFileLength);
FileClose(iFileHandle);
return str;
}
// ...
void __fastcall TForm1::SpeedButton19Click(TObject *Sender)
{
String rtf=openFile("C:\\teste.rtf");
RichEdit1->Text=rtf;
}
|
LoadFromFile es mucho más lento . ¿Alguien sabe por qué? |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 12 Ago, 2013 5:32 pm Asunto: |
|
|
En mi caso tardan exactamente lo mismo los dos métodos, ya que el problema no está en la carga, lo que es lento es el parseo, y por tanto una vez cargado el parseo va a ocurrir de la misma manera en los dos.
¿Qué versión de C++Builder estas usando? Por si acaso estés usando una versión vieja, recuerda poner la propiedad "MaxLength" a 0x7FFFFFF0, ya que sino el límite de 64KB según el método parecerá que ha cargado completamente cuando no es así. |
|
| Volver arriba |
|
 |
Felip Master

Registrado: 09 Jun 2004Mensajes: 200
|
Publicado: Mar 13 Ago, 2013 4:41 am Asunto: |
|
|
Hola, Leo. Estoy usando BCB 6 con Windows 7. Pero realmente el problema estaba relacionado con la propiedad "MaxLength". Seguí su consejo y el tiempo de las dos acciones fueron lo mismo!
Gracias de nuevo!  |
|
| Volver arriba |
|
 |
|