Casa
Top.Mail.Ru Yandeks.Metrika
Foro: "Principal";
Archivo actual: 2002.01.08;
Descargar: [xml.tar.bz2];

abajo

¿Cómo leer un archivo grande? Encontrar ramas similares


Art   (2001-12-14 13:09) [0]

Necesito leer un archivo grande completamente !!!



softland   (2001-12-14 13:15) [1]

¿Qué, el archivo es significativamente más memoria RAM?



Vitaly   (2001-12-14 13:19) [2]

Entonces que



Art   (2001-12-14 13:20) [3]

Sí, no más bytes de 255, y en la línea actual normal, ¡¡tanto se ajusta !!!



MBo   (2001-12-14 13:37) [4]

Concretar la cuestión. ¿Qué tipo de archivo?
En Delphi string = ansistring a 4 Meg (si no es {$ H-})



Art   (2001-12-14 14:06) [5]

Bueno, hay un tamaño de archivo que puede llegar a 100kb. ¡¡Necesito leerlo todo !!



gek   (2001-12-14 14:08) [6]

>> Arte
¿No entendí algo donde leer algo?
100 kb no tiene sentido



NickBat   (2001-12-14 14:10) [7]

¿A dónde llevar, entonces? Y como lees



Dimka Maslov   (2001-12-14 14:11) [8]

Usted asigna un búfer en memoria y lee información en él. No hay problemas.



MBo   (2001-12-14 14:11) [9]

otra concreta la pregunta
Si tiene un archivo de texto que necesita ser leído en una línea, entonces también debe hacerlo, por ejemplo, FileStream
¿O funciona Stringlist.loadfromfile?



Polevi   (2001-12-14 16:02) [10]

procedimiento ReadAnyFile (FileName: string);
var
fHandle, fmHandle: THANDLE;
fBuffer: Puntero;
Tamaño de archivo, Tamaño de archivo Alto: Cardinal;
comenzar
fHandle: = CreateFile (PChar (FileName), GENERIC_READ o GENERIC_WRITE,
0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
si fHandle <> INVALID_HANDLE_VALUE entonces
comenzar
Tamaño de archivo: = GetFileSize (fHandle, @ FileSizeHigh);
si FileSizeHigh = 0 entonces
comenzar
fmHandle: = CreateFileMapping (fHandle, nil, PAGE_READWRITE, 0,0, nil);
if (fmHandle <> 0) y (GetLastError <> ERROR_ALREADY_EXISTS) entonces
comenzar
fBuffer: = MapViewOfFile (fmHandle, FILE_MAP_WRITE, 0,0,0);
si fBuffer <> nil entonces
comenzar
// trabaja aquí con el archivo como con el área de memoria en la dirección fBuffer
fin;
CloseHandle (fmHandle);
fin;
fin;
CloseHandle (fHandle);
fin;
fin;



DK   (2001-12-15 03:58) [11]

Si el archivo es un archivo de texto, puede hacerlo de manera muy simple:
1. crear TStringList
2. entonces su carga de archivo
3. piensa todo :)



Anatoly Podgoretsky   (2001-12-15 12:11) [12]

MBo © (14.12.01 13: 37)
Longitud (S) = INTEGER

DK © (15.12.01 03: 58)
Esperemos cuando la pregunta se hace normalmente, para que pueda entenderse, bueno, si no es por la lluvia, entonces no es necesario.



Art   (2001-12-15 17:34) [13]

Hago la pregunta normalmente: Tarea: lea el archivo en una variable (completamente, todo el archivo), el archivo es un archivo de texto normal, el tamaño del archivo puede ser más grande que los megas de 4.



Anatoly Podgoretsky   (2001-12-15 18:18) [14]

BlockRead (F, S, N) es uno de los muchos métodos.



DK   (2001-12-16 02:11) [15]

Así que digo: DK © (15.12.01 03: 58)
Él subió personalmente los megas de 16 (y este no es el límite).
Carga rápidamente y luego trabaja fácilmente con cuerdas.



Páginas: 1 rama entera

Foro: "Principal";
Archivo actual: 2002.01.08;
Descargar: [xml.tar.bz2];

arriba









Memoria: 0.6 MB
Tiempo: 0.029 c
3-21944
MVova
2001-12-03 16:50
2002.01.08
¿Cómo encontrar la ruta a los archivos?


1-22052
avr555
2001-12-17 19:54
2002.01.08
Arrastrar y soltar componente


3-21979
Max hombre
2001-12-06 13:21
2002.01.08
DBTreeView


1-22262
Katia
2001-12-17 15:25
2002.01.08
ayudar


3-21963
szap
2001-12-05 11:53
2002.01.08
velocidad





africaans albanés Arabic armenio Azerbaiyán vasco Bielorruso Bulgarian Catalán Chino (simplificado) Chino (tradicional) Croata Checo Danés Dutch Inglés Estonia filipina Finnish Francés
gallego georgiano Alemán Griego criollo haitiano hebreo hindi Húngaro islandés Indonesian irlandés Italiana Japonés Korean letón lituano macedonio Malay maltés Noruego
persa polaco Portuguese rumano Ruso Serbio Slovak Esloveno Español swahili Sueco Thai turco ucranio Urdu vietnamita galés yídish bengalí bosnio
cebuano esperanto gujarati hausa hmong igbo javanés kannada khmer lao latín maorí marathi mongol nepali punjabi somalí Tamil telugu yoruba
zulú
Английский Francés Alemán Italiano portugués Русский Español