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]

Мне надо считать большой файл полностью!!!



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

Что, файл значительно больше объема RAM?



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

Entonces que



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

Да нет больше 255 байт ,а в обычную строку тока столько и помещается!!!



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

Конкретизируй вопрос. Что за файл?
В Delphi string=ansistring до 4 Мег (если не стоит {$H-})



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

Ну есть файл размер может доходить до 100кб мне надо его считать весь!!



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

>> Art
Я что-то не понял куда считывать-то?
100 kb это ерунда



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

Куда считать, то? И как ты считываешь?



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

Выделяешь в памяти буфер и считываешь в него информацию. Никаких проблем нет.



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

yet another Конкретизируй вопрос
если у тебя текстовый файл, который надо читать в одну строку, то так и делай- например, FileStream
Или Stringlist.loadfromfile подойдет?



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

procedure ReadAnyFile(FileName:string);
var
fHandle,fmHandle:THANDLE;
fBuffer:Pointer;
FileSize,FileSizeHigh:Cardinal;
comenzar
fHandle:=CreateFile(PChar(FileName),GENERIC_READ or GENERIC_WRITE,
0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
if fHandle<>INVALID_HANDLE_VALUE then
comenzar
FileSize:=GetFileSize(fHandle,@FileSizeHigh);
if FileSizeHigh=0 then
comenzar
fmHandle:=CreateFileMapping(fHandle,nil,PAGE_READWRITE,0,0,nil);
if (fmHandle<>0) and (GetLastError<>ERROR_ALREADY_EXISTS) then
comenzar
fBuffer:=MapViewOfFile(fmHandle,FILE_MAP_WRITE,0,0,0);
if fBuffer<>nil then
comenzar
//здесь работает с файлом, как с областью памяти по адресу fBuffer
fin;
CloseHandle(fmHandle);
fin;
fin;
CloseHandle(fHandle);
fin;
fin;



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

Если файл текстовый, то можно очень просто сделать так:
1. создаёшь TStringList
2. затем его LoadFromFile
3. считает всё :)



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

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

DK © (15.12.01 03:58)
Подождем когда нормально задаст вопрос, что бы его можно было понять, ну если не дождем, то значит оно не нужно.



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

Задаю вопрос нормально: Задача Считать файл в переменную (полностью,весь файл),файл представляет из себя -обычный текстовый файл ,размер файла может быть и больше 4 мегов.(Теперь нормально???)



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

BlockRead(F,S,N) это один из множества методов



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

Ну я и говорю: DK © (15.12.01 03:58)
Сам лично загружал 16 мегов (и это не предел).
Шустро загружает и легко потом работать со строками.



Páginas: 1 rama entera

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

arriba















Memoria: 0.86 MB
Tiempo: 0.042 c
1-22257
Dmitry1
2001-12-14 16:53
2002.01.08
Buen dia


4-22461
ShaH
2001-10-29 11:08
2002.01.08
problema con LogonUser (ERROR_PRIVILEGE_NOT_HELD)


1-22250
Dmitry D.
2001-12-17 13:28
2002.01.08
Скорее математический вопрос...


1-22184
Caimán
2001-12-21 09:44
2002.01.08
tal vez quien sabe?


4-22472
Eugene
2001-10-27 17:03
2002.01.08
Как сделать свой маленький прокси-сервер?





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 Italiano 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