casa
Top.Mail.Ru Yandeks.Metrika
Forum: "Principale";
Archivio attuale: 2002.01.08;
Scarica: [xml.tar.bz2];

giù

Come leggere un file di grandi dimensioni ??? Trova rami simili


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

Ho bisogno di leggere un file di grandi dimensioni completamente !!!



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

Cosa, il file è significativamente più RAM?



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

E allora?



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

Sì, non più byte 255, e nella normale linea corrente ci si adatta così tanto !!!



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

Concretizzare la domanda. Che tipo di file?
In Delphi string = ansistring a 4 Meg (se non {$ H-})



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

Bene, c'è una dimensione del file può raggiungere 100kb ho bisogno di leggere tutto !!



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

>> Art
Non ho capito qualcosa su cui leggere qualcosa?
100 kb non ha senso



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

Dove prendere, allora? E come leggi?



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

Allocare un buffer in memoria e leggere le informazioni in esso. Non ci sono problemi



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

ancora un altro Concretizzare la domanda
se si dispone di un file di testo che deve essere letto in una riga, lo stesso vale, ad esempio, FileStream
O funziona Stringlist.loadfromfile?



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

procedura ReadAnyFile (FileName: string);
var
fHandle, fmHandle: THANDLE;
fBuffer: puntatore;
FileSize, FileSizeHigh: Cardinal;
iniziare
fHandle: = CreateFile (PChar (FileName), GENERIC_READ o GENERIC_WRITE,
0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
se fHandle <> INVALID_HANDLE_VALUE allora
iniziare
FileSize: = GetFileSize (fHandle, @ FileSizeHigh);
se FileSizeHigh = 0 allora
iniziare
fmHandle: = CreateFileMapping (fHandle, nil, PAGE_READWRITE, 0,0, nil);
se (fmHandle <> 0) e (GetLastError <> ERROR_ALREADY_EXISTS) allora
iniziare
fBuffer: = MapViewOfFile (fmHandle, FILE_MAP_WRITE, 0,0,0);
se fBuffer <> nil allora
iniziare
// lavora qui con il file come con l'area di memoria all'indirizzo fBuffer
fine;
CloseHandle (fmHandle);
fine;
fine;
CloseHandle (fHandle);
fine;
fine;



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

Se il file è un file di testo, puoi farlo molto semplicemente:
1. crea TStringList
2. quindi il suo file loadfrom
3. pensa tutto :)



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

MBo © (14.12.01 13: 37)
Lunghezza (S) = INTERO

DK © (15.12.01 03: 58)
Aspettiamo quando la domanda viene posta normalmente, in modo che possa essere compresa, beh, se non dalla pioggia, quindi non è necessario.



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

Io faccio la domanda normalmente: Compito: legge il file in una variabile (completamente, l'intero file), il file è un normale file di testo, la dimensione del file può essere maggiore di 4 meg. (Adesso va bene ???)



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

BlockRead (F, S, N) è uno dei tanti metodi.



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

Quindi dico: DK © (15.12.01 03: 58)
Ha personalmente caricato 16 megs (e questo non è il limite).
Carica rapidamente e quindi lavora facilmente con le stringhe.



Pagine: 1 tutto il ramo

Forum: "Principale";
Archivio attuale: 2002.01.08;
Scarica: [xml.tar.bz2];

al piano di sopra









Memoria: 0.6 MB
Ora: 0.027 c
1-22113
Yuraz
2001-12-19 20:25
2002.01.08
Fratelli perché


1-22204
Dmitriy (nuovo)
2001-12-13 19:37
2002.01.08
il codice non crea più `file 273 in win2000


14-22365
Ketmar
2001-10-16 06:22
2002.01.08
Qui è interessante: da Simferopol, sono qui da solo?


1-22141
N
2001-12-20 10:04
2002.01.08
C -> Pascal: puntatore di funzione all'interno della struttura


6-22304
sedoy
2001-10-11 14:09
2002.01.08
server client su Internet tramite un proxy





afrikaans albanese Arabic armeno Azero basco bielorusso Bulgarian catalano Cinese (semplificato) Cinese (tradizionale) croato Ceco danese Dutch Inglese estone filippina Finnish Francese
galiziano georgiano Tedesco greco Creolo haitiano ebraico hindi ungherese islandese Indonesian irlandese Lezioni Giapponese Korean lettone lituano macedone Malay maltese Norwegian
persiano polacco Portoghese rumeno Russian serbo Slovak sloveno Spagnolo swahili Swedish Thai turco ucraino Urdu vietnamita gallese yiddish bengalese bosniaco
Cebuano esperanto Gujarati Hausa Hmong Igbo giavanese kannada khmer lao latino maori marathi mongolo nepali punjabi somalo tamil telugu Yoruba
zulù
Английский Francese tedesco italiano portoghese russo spagnolo