Головна сторінка
Top.Mail.Ru Яндекс.Метрика
Форум: "Основна";
Поточний архів: 2002.01.08;
Завантажити: [xml.tar.bz2];

Вниз

Як вважати великий файл ??? Знайти схожі гілки


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

Мені треба вважати великий файл повністю !!!



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

Що, файл значно більше обсягу RAM?



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

І що?



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

Форум: "Основна";
Поточний архів: 2002.01.08;
Завантажити: [xml.tar.bz2];

наверх









Пам'ять: 0.6 MB
Час: 0.028 c
1-22212
T2
2001-12-14 03:13
2002.01.08
MMTOOLS CRACK


1-22253
Yakudza
2001-12-17 14:34
2002.01.08
Як в Паскалі обчислити факторіал?


1-22234
x000d
2001-12-17 01:34
2002.01.08
Активне, що не активне.


14-22341
дрімучий
2001-10-26 13:55
2002.01.08
Змагання програм - МОРСЬКИЙ БІЙ


1-22025
- = DeD = -
2001-12-18 11:20
2002.01.08
установка ActiveX





африкаанс албанський арабська вірменин азербайджанець баскський білоруський болгарська каталонський Китайська (спрощене письмо) Китайський традиційний) хорватський чеська данську мову нідерландський Ukranian естонець Філіппінська фінську мову французький
галісійська грузинський німецький грецький гаїтянський креольський давньоєврейську хінді угорський ісландський індонезієць ірландський італійський японський корейський латиська литовець македонець малайський мальтійський норвежець
перс полірування португальська румунський російська сербський словацький словенський іспанська суахілі шведську мову тайський турецька український урду в'єтнамський валлійський ідиш бенгальський боснійський
кебуано есперанто гуджараті хауса хмонг ігбо яванський каннада кхмерская Лао латинь маорі маратхі монгольський непальська панджабі сомалійський тамільська телугу йоруба
зулуський
Англійська Французький Німецький Італійський Португальська Русский Іспанська