Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Varios
Register FAQ Members List Calendar Guía de estilo Today's Posts

Coloboración Paypal con ClubDelphi

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 16/02/2004
esquerda21 esquerda21 is offline
Miembro
 
Join Date: May 2003
Posts: 51
Poder: 24
esquerda21 Va por buen camino
Array

Hola. Necesito leer un archivo de texto q pesa unos 2000K
Utilizo un array de string restingido a[10] letras.
Antes me salia un error EOutOfMemory y con la resticcion q le he puesto ya no lo hace.
Hago :

Readln(Loadfile, LoadLine);
SetLength(FileDXF, index);
FileDXF[index -1]:= LoadLine;
index:= index +1;

Me tarda muchisimo en acabar. Como puedo hacer q vaya caga....do leches?
Reply With Quote
  #2  
Old 16/02/2004
delphi.com.ar's Avatar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Join Date: May 2003
Location: Buenos Aires, Argentina *
Posts: 5,964
Poder: 29
delphi.com.ar Va camino a la fama
¿Qué tipo de trabajo tienes que hacer con este array que lo tienes que cargar completo en memoria?.... ¿Oíste hablar de FileMapping?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Reply With Quote
  #3  
Old 16/02/2004
esquerda21 esquerda21 is offline
Miembro
 
Join Date: May 2003
Posts: 51
Poder: 24
esquerda21 Va por buen camino
La información es de un divujo de Cad en dxf, y q es eso de FileMapping?
No es necesario guarlarlo todo pero es mucho mejor para despues a la hora de grabarlo a disco o si hago q el prog. mas adelante pueda abrir varios archivos a la vez.
Reply With Quote
  #4  
Old 16/02/2004
delphi.com.ar's Avatar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Join Date: May 2003
Location: Buenos Aires, Argentina *
Posts: 5,964
Poder: 29
delphi.com.ar Va camino a la fama
Te recomiendo leer la ayuda de la función CreateFileMapping y sus "amigas"...

Por otro lado, si este archivo no estaría escrito linea a línea, podrías cargarlo directamente en la memoria, de a bloques mas grandes, utilizando un puntero a tu array.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Reply With Quote
  #5  
Old 17/02/2004
esquerda21 esquerda21 is offline
Miembro
 
Join Date: May 2003
Posts: 51
Poder: 24
esquerda21 Va por buen camino
Un componente no puedo utilizar. Hata ahora he probado con el TStringList y cuando leo los datos para repintar mi dibujo tarda lo suficiente como para que parpadee. Osea q el componente queda descartado. Mi obcion era utilizar un simple array para q fuera como una moto pero tarda un huevo y medio. Lo q es increible es con TListBox q encima te lo pinta en pantalla sea inmediato. Este componente como debe organizarse para cargarlo? Utiliza un array y setLength? Otra cosa ...si un string[5] queda reducido al espacio en memoria de 5 caracteres o t deja poner cinco y el resto lo desperdicia?
Y por ultimo Ayer me comentaron algo del CreateFileMapping. Yo utilizo delphi7 y en la ayuda no me sale nada. Se llama de otra forma?
Gracias a todos.
Reply With Quote
  #6  
Old 17/02/2004
delphi.com.ar's Avatar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Join Date: May 2003
Location: Buenos Aires, Argentina *
Posts: 5,964
Poder: 29
delphi.com.ar Va camino a la fama
Pertenece a la ayuda de "Win 32 Developer´s References", porque se trata de una WinApi. Menú Help \ Windows SDK


Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Reply With Quote
  #7  
Old 26/02/2004
dannymunuera dannymunuera is offline
Registrado
 
Join Date: Feb 2004
Posts: 8
Poder: 0
dannymunuera Va por buen camino
Thumbs up Respuesta a arreglos

Si quieres almacenar los datos en memoria por algo especifico no se, pero lo que se es que lo puedes tratar de la forma fácil y es usar una lista (TList) Busca en la ayuda, puesto que las líneas del fichero que vas a leer en algún momento puede ser mas o meno grande, esta es la forma muy fácil que es usar un TMEMO y si no quieres que se vea pones la propiedad visible en false y se acabo luego trabajas con la propiedad lines y el método add para adicionar línea a línea y por otra parte la opción muy muy fácil, usando el mismo componente TMEMO usas el método OpenFromFile y abres el fichero después lo trabajas con la propiedad index (Lo demás lo encontraras en la ayuda).

El metodo mas difícil seria que realizaras una class y crearas un homologo de Tlist. (Pero para que si ya existe uno)!!!!
Reply With Quote
  #8  
Old 26/02/2004
esquerda21 esquerda21 is offline
Miembro
 
Join Date: May 2003
Posts: 51
Poder: 24
esquerda21 Va por buen camino
Muchas gracias compañero pero...
Lo ha estado provando con varios componentes y algunos son mejores q otros para ello, pero para leer y pintar tantos datos datos sin q el ojo lo aprecie no se puede utilizar un componente dado q stos son lentos.Tendran muchas chulerias para hecer mas facil el lenguage pero todo eso se paga con el tiempo de caLCULO. Lo mejor q he provado es un simple array y punto. Pero jamas sera tan rapido q el AutoCAD. Al Final creo que esta peña utiliza DIRECTX para pintar aunque sea en 2D. Si alguien sabe algo sobre el sistema de pintado q utiliza AutoCAD q me lo haga saber.

Hasta luego
Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT +2. The time now is 01:52.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi