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

Para baixo

Como ler um arquivo grande ??? Encontre agências semelhantes


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

Eu preciso ler o arquivo grande completamente !!!



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

O que, o arquivo é significativamente maior que a RAM?



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

Então o quê?



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

Sim, não há mais bytes 255, e tanto é colocado em uma linha atual normal !!!



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

Especifique uma pergunta. Que tipo de arquivo?
Em Delphi string = ansistring antes 4 Meg (se não valer {$ H-})



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

Bem, há um arquivo do tamanho pode chegar 100kb eu preciso ler tudo !!



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

>> Arte
Eu não entendo algo para ler alguma coisa?
100 kb é um absurdo



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

Onde levar, então? E como você lê?



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

Você aloca um buffer na memória e lê informações nele. Não há problemas.



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

ainda outro Especifique uma pergunta
se você tiver um arquivo de texto que precise ser lido em uma linha, faça-o, por exemplo, FileStream
Ou é Stringlist.loadfromfile adequado?



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

procedimento ReadAnyFile (FileName: string);
var
fHandle, fmHandle: THANDLE;
fBuffer: Ponteiro;
FileSize, FileSizeHigh: Cardinal;
começar
fHandle: = CreateFile (PChar (FileName), GENERIC_READ ou GENERIC_WRITE,
0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
se fHandle <> INVALID_HANDLE_VALUE, então
começar
FileSize: = GetFileSize (fHandle, @ FileSizeHigh);
se FileSizeHigh = 0 então
começar
fmHandle: = CreateFileMapping (fHandle, nulo, PAGE_READWRITE, 0,0, nada);
if (fmHandle <> 0) e (GetLastError <> ERROR_ALREADY_EXISTS) então
começar
fBuffer: = MapViewOfFile (fmHandle, FILE_MAP_WRITE, 0,0,0);
se fBuffer <> nil então
começar
// aqui funciona com o arquivo, como na área de memória do fBuffer
end;
CloseHandle (fmHandle);
end;
end;
CloseHandle (fHandle);
end;
end;



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

Se o arquivo é texto, você pode simplesmente fazer isso:
1. você cria TStringList
2. então seu loadfromfile
3. considera tudo :)



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

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

DK © (15.12.01 03: 58)
Vamos esperar até que a pergunta seja feita normalmente para que possa ser entendida, bem, se não chover, então não precisa.



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

Eu faço a pergunta normalmente: A tarefa é ler o arquivo em uma variável (completamente, o arquivo inteiro), o arquivo é um arquivo de texto simples, o tamanho do arquivo pode ser maior que 4 megas (está tudo bem agora ???)



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

BlockRead (F, S, N) é um dos muitos métodos



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

Bem, eu digo: DK © (15.12.01 03: 58)
Eu pessoalmente baixei 16 megas (e este não é o limite).
Carrega rapidamente e depois trabalha facilmente com strings.



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

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

em cima









Memória: 0.6 MB
Hora: 0.027 c
3-21931
SklifF
2001-12-04 15:59
2002.01.08
Qual é esse erro? Capacidade não suportada


1-22225
Reyst
2001-12-16 15:56
2002.01.08
Eu não posso salvar o recurso em um arquivo


3-21996
Vinni2000
2001-12-06 11:47
2002.01.08
Como selecionar dados da consulta usando uma consulta


1-22219
dimonf
2001-12-16 17:23
2002.01.08
Como fazer o Canvas render quando qualquer janela é monitorada


7-22448
Estanislau
2001-09-11 15:24
2002.01.08
Dados em disquete





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