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.6 MB
Zeit: 0.048 c
14-22396
Merlin
2001-11-02 09:54
2002.01.08
Heute ist ein freudiger Tag! Ansonsten Freitag ...


1-22073
Hydramatt
2001-12-19 00:22
2002.01.08
DLL oder BPL


1-22119
Socol
2001-12-15 10:45
2002.01.08
Helfen Sie bei zwei Fragen!


1-22005
Cossys
2001-12-17 16:57
2002.01.08
Alle Antragsformulare mit aktiven Kopfzeilen anzeigen


1-22096
Mikhalyov Dmitry
2001-12-19 15:55
2002.01.08
Über TObject in Veranstaltungen





Afrikanisch Albanien Arabisch Armenisch Aserbaidschanisch Baskisch Weißrusse Bulgarisch katalanisch Chinesisch (vereinfacht) Chinesische Tradition) kroatisch Tschechisch Dänisch Niederländisch Englisch estnisch Philippinisch Finnisch Französisch
Galicisch Georgisch Deutsch Griechisch haitian Creole Hebräisch Hindi ungarisch isländisch Indonesian irisch Italian Japanisch Koreanisch lettisch litauisch Makedonisch Malay Maltesisch Norwegisch
persisch Polnisch Portugiesisch Rumänisch Russisch serbisch Slovakisch Slowenisch Spanisch Suaheli Schwedisch 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