Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-02-2004
esquerda21 esquerda21 is offline
Miembro
 
Registrado: may 2003
Posts: 51
Poder: 21
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?
Responder Con Cita
  #2  
Antiguo 16-02-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
¿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.
Responder Con Cita
  #3  
Antiguo 16-02-2004
esquerda21 esquerda21 is offline
Miembro
 
Registrado: may 2003
Posts: 51
Poder: 21
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.
Responder Con Cita
  #4  
Antiguo 16-02-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
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.
Responder Con Cita
  #5  
Antiguo 17-02-2004
esquerda21 esquerda21 is offline
Miembro
 
Registrado: may 2003
Posts: 51
Poder: 21
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.
Responder Con Cita
  #6  
Antiguo 17-02-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 26-02-2004
dannymunuera dannymunuera is offline
Registrado
 
Registrado: 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)!!!!
Responder Con Cita
  #8  
Antiguo 26-02-2004
esquerda21 esquerda21 is offline
Miembro
 
Registrado: may 2003
Posts: 51
Poder: 21
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 17:52:04.


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