Casa
Top.Mail.Ru Yandeks.Metrika
Fórum: "Principal";
Arquivo atual: 2002.01.08;
Download: [xml.tar.bz2];

Para baixo

Как считать большой файл??? Encontre agências semelhantes


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

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



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

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



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

Então o quê?



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;
começar
fHandle:=CreateFile(PChar(FileName),GENERIC_READ or GENERIC_WRITE,
0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if fHandle<>INVALID_HANDLE_VALUE then
começar
FileSize:=GetFileSize(fHandle,@FileSizeHigh);
if FileSizeHigh=0 then
começar
fmHandle:=CreateFileMapping(fHandle,nil,PAGE_READWRITE,0,0,nil);
if (fmHandle<>0) and (GetLastError<>ERROR_ALREADY_EXISTS) then
começar
fBuffer:=MapViewOfFile(fmHandle,FILE_MAP_WRITE,0,0,0);
if fBuffer<>nil then
começar
//здесь работает с файлом, как с областью памяти по адресу 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 мегов (и это не предел).
Шустро загружает и легко потом работать со строками.



Страницы: 1 filial inteira

Fórum: "Principal";
Arquivo atual: 2002.01.08;
Download: [xml.tar.bz2];

em cima









Memória: 0.85 MB
Hora: 0.034 c
1-22075
para
2001-12-19 12:40
2002.01.08
Tabelas no MS Word


3-21955
kalinka17
2001-12-03 13:16
2002.01.08
Ajude-me a encontrar o DBTreeView =)


3-21906
Yuri Zhukov
2001-11-21 09:40
2002.01.08
Oracle ADO vs DOA - fido7.ru.delphi.db


3-21962
phantom2040
2001-12-04 13:27
2002.01.08
Instalação de filtro em TDStringGrid


1-22177
Corte
2001-12-21 09:38
2002.01.08
Почему не работют бряки в





afrikaans albanês Arabic armênio azerbaijano basco belarusian Bulgarian catalão Chinês simplificado) Chinês tradicional) croata checo dinamarquês Dutch Inglês estoniano filipino Finnish French
Galego georgiano German grego crioulo haitiano hebraico hindi húngaro islandês Indonesian irlandês Italian Japanese Korean letão lituano macedónio Malay maltês Norwegian
persa polonês Portuguese romeno Russa sérvio Slovak esloveno espanhol swahili sueco tailandês turco ucraniano urdu vietnamita galês ídiche bengali bósnio
cebuano esperanto gujarati hausa hmong igbo javanês kannada khmer lao latino maori marata mongol Nepali punjabi somali tâmil telugu yoruba
zulu
Английский francês Alemão Italiano Португальский russo Espanhol