Home
Top.Mail.Ru Yandeks.Metrika
Forum: "Main";
Current archive: 2002.01.08;
Download: [xml.tar.bz2];

Down

How to read a large file ??? Find similar branches


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

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



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

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



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

So what?



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



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 мегов (и это не предел).
Шустро загружает и легко потом работать со строками.



Pages: 1 whole branch

Forum: "Main";
Current archive: 2002.01.08;
Download: [xml.tar.bz2];

Top















Memory: 0.86 MB
Time: 0.039 c
1-22010
dorixe
2001-12-17 19:21
2002.01.08
treeview on dblclick


3-21917
Termik
2001-12-04 11:43
2002.01.08
Accessing a table by a name recorded in a variable


1-22147
vinni2000
2001-12-20 12:59
2002.01.08
Need advice on RichEdit !!!!!!!!


14-22326
Mcsimm
2001-11-04 11:35
2002.01.08
Someone wanted to stretch their brains? What are the options for the algorithm?


1-22040
g
2001-12-18 18:18
2002.01.08
TRICHEdit test alignment





afrikaans albanian Arabic armenian azerbaijani basque belarusian bulgarian catalan Chinese (Simplified) Chinese (Traditional) croatian Czech danish Dutch English estonian filipino finnish French
galician georgian German greek haitian Creole hebrew Hindi hungarian icelandic indonesian Irish italian japanese Korean latvian lithuanian macedonian malay maltese norwegian
persian polish portuguese Romanian russian serbian slovak Slovenian Español swahili Swedish thai turkish Ukrainian urdu vietnamese welsh yiddish bengali bosnian
cebuano Esperanto gujarati hausa hmong igbo javanese kannada khmer lao latin maori marathi mongolian nepali punjabi somali tamil telugu yoruba
zulu
English French German Italian Portuguese Russian Spanish