Nach Hause
Top.Mail.Ru Yandeks.Metrika
Forum: "Haupt";
Aktuelles Archiv: 2002.01.08;
Herunterladen: [xml.tar.bz2];

Nach unten

Wie lese ich eine große Datei? Finden Sie ähnliche Zweige


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

Ich muss eine große Datei vollständig lesen !!!



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

Was ist die Datei deutlich mehr RAM?



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

So what?



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

Ja, keine 255-Bytes mehr und in der normalen aktuellen Zeile passt so viel !!!



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

Konkretisieren Sie die Frage. Welche Art von Datei?
In Delphi string = an 4 Meg melden (falls nicht {$ H-})



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

Nun, es gibt eine Dateigröße erreichen kann 100kb Ich muss alles lesen!



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

>> Art
Ich habe etwas nicht verstanden, wo ich etwas lesen soll?
100 kb ist Quatsch



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

Wohin dann? Und wie liest du?



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

Sie ordnen einen Puffer im Speicher zu und lesen Informationen ein. Es gibt keine Probleme.



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

Noch eine Konkretisierung der Frage
Wenn Sie eine Textdatei haben, die in einer Zeile gelesen werden muss, dann tun Sie dies zum Beispiel mit FileStream
Oder funktioniert Stringlist.loadfromfile?



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

procedure ReadAnyFile (FileName: string);
war
fHandle, fmHandle: THANDLE;
fBuffer: Pointer;
FileSize, FileSizeHigh: Cardinal;
beginnen
fHandle: = CreateFile (PChar (Dateiname), GENERIC_READ oder GENERIC_WRITE,
0, null, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
wenn fHandle <> INVALID_HANDLE_VALUE dann
beginnen
FileSize: = GetFileSize (fHandle, @ FileSizeHigh);
wenn FileSizeHigh = 0 dann
beginnen
fmHandle: = CreateFileMapping (fHandle, nil, PAGE_READWRITE, 0,0, nil);
if (fmHandle <> 0) und (GetLastError <> ERROR_ALREADY_EXISTS)
beginnen
fBuffer: = MapViewOfFile (fmHandle, FILE_MAP_WRITE, 0,0,0);
wenn fBuffer <> nil dann
beginnen
// arbeitet hier mit der Datei wie mit dem Speicherbereich an der Adresse fBuffer
end;
CloseHandle (fmHandle);
end;
end;
CloseHandle (fHandle);
end;
end;



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

Wenn es sich bei der Datei um eine Textdatei handelt, können Sie dies ganz einfach tun:
1. Erstellen Sie TStringList
2. dann sein loadfromfile
3. denkt alles :)



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

MBo © (14.12.01 13: 37)
Länge (S) = INTEGER

DK © (15.12.01 03: 58)
Lassen Sie uns abwarten, wann die Frage normal gestellt wird, damit sie verstanden werden kann. Wenn es nicht regnet, ist dies nicht erforderlich.



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

Ich stelle die Frage normalerweise: Aufgabe: Lese die Datei in eine Variable (vollständig, die gesamte Datei), die Datei ist eine normale Textdatei, die Dateigröße kann größer als 4 Mega sein. (Jetzt ist es in Ordnung ???)



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

BlockRead (F, S, N) ist eine von vielen Methoden.



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

Also sage ich: DK © (15.12.01 03: 58)
Er hat persönlich 16-Megas hochgeladen (und dies ist nicht das Limit).
Lädt schnell und arbeitet dann problemlos mit Saiten.



Seiten: 1 ganze Branche

Forum: "Haupt";
Aktuelles Archiv: 2002.01.08;
Herunterladen: [xml.tar.bz2];

nach oben









Speicher: 0.85 MB
Zeit: 0.042 c
3-21953
Varik
2001-12-05 15:14
2002.01.08
Pro Records


1-22045
Socol
2001-12-15 17:14
2002.01.08
In die Datei schreiben


1-22093
Bristol
2001-12-19 11:59
2002.01.08
Senden von Briefen mit Delphi 5


1-22184
Alligator
2001-12-21 09:44
2002.01.08
vielleicht wer weiss


14-22411
Madburro
2001-11-12 20:52
2002.01.08
WinXP-CD-Key





Afrikanisch Albanien Arabisch Armenisch Aserbaidschanisch Baskisch Weißrusse Bulgarian katalanisch Chinesisch (vereinfacht) Chinesische Tradition) kroatisch Tschechisch Dänisch Dutch Englisch estnisch Philippinisch Finnish Französisch
Galicisch Georgisch Deutsch Griechisch haitian Creole Hebräisch Hindi ungarisch isländisch Indonesian irisch Italian Japanisch Koreanisch lettisch litauisch Makedonisch Malay Maltesisch Norwegian
persisch Polnisch Portugiesisch Rumänisch Russisch serbisch Slovakisch Slowenisch Spanisch Suaheli Swedish Thai Türkisch Ukrainisch Urdu Vietnamesisch Walisisch Jiddisch Bengalisch bosnisch
cebuano Esperanto Gujarati Hausa Hmong igbo Javanisch kannada khmer Laotisch Lateinisch Maorisch Marathi Mongolisch nepali Pandschabi Somalisch Tamilisch Telugu Yoruba
Zulu
Английский Französisch Deutsch Italienisch Португальский Russisch Spanisch