Обсуждение программирования на Delphi в конференции ru.delphi
CRC32 файла
From: "aleXander Olegovich Fedorov" <xof [@] email.su>
Hi,
Hужно как можно быстрее вычислять контрольную сумму файла,
например CRC32. Дело в том, что файл может быть несколько
гигабайт, поэтому в память его загружать целиком нельзя.
Сейчас я использую для этого TFileStream, читаю кусками по 1 мб.
Выходит не слишком быстро, imho, может еще быстрее можно?
Да и у TFileStream недостаток серьёзный: он не видит файлы
с unicode именами (т.е. которые в текущую Ansi раскладку
клавиатуры не вписываются, например некоторые немецкие,
французские, и конечно китайские).
Ищу альтернативный, быстрый метод подсчета контрольной суммы
у файлов.
xof
* Origin: Demos online service (2:5020/400)
Unicode имена файлов и TFileStream...
From: "aleXander Olegovich Fedorov" <xof [@] email.su>
Hi,
Столкнулся с проблемой: TFileStream не принимает имена файлов
в Unicode (widestring). Если файл содержит какие-то умляуты (не
английские и не кириллические символы, которых нет в текущей
кодировке Ansi), например французские, то ругается что не может
найти такого файла.
Есть ли объект TFileStream, который работает с unicode именами?
xof
* Origin: Demos online service (2:5020/400)
Юникод в filename и ФайлСтреам
From: "aleXander Olegovich Fedorov" <xof [@] email.su>
Hi,
Столкнулся с проблемой: TFileStream не принимает имена файлов
в Unicode (widestring). Если файл содержит какие-то умляуты (не
английские и не кириллические символы, которых нет в текущей
кодировке Ansi), например французские, то ругается что не может
найти такого файла.
Есть ли объект TFileStream, который работает с unicode именами?
xof
* Origin: Demos online service (2:5020/400)
Re: Юникод в filename и ФайлСтреам
From: "Slava Antonov" <deadbeef [@] so.yandex.ru>
Hello aleXander Olegovich Fedorov, you wrote:
> Столкнулся с проблемой: TFileStream не принимает имена файлов
> в Unicode (widestring). Если файл содержит какие-то умляуты (не
> английские и не кириллические символы, которых нет в текущей
> кодировке Ansi), например французские, то ругается что не может
> найти такого файла.
>
> Есть ли объект TFileStream, который работает с unicode именами?
См. библиотеку классов TNT. tnt.ccci.org/delphi_unicode_controls/
--
Всего хорошего, Слава.
deadbeef.narod.ru
ICQ: 197577902
* Origin: (http://news.cca.usart.ru/) USURT's FidoNET<-> (2:5080/1003 [@] fidonet)
Re: CRC32 файла
From: "Slava Antonov" <deadbeef [@] so.yandex.ru>
Hello aleXander Olegovich Fedorov, you wrote:
> Hужно как можно быстрее вычислять контрольную сумму файла,
> например CRC32. Дело в том, что файл может быть несколько
> гигабайт, поэтому в память его загружать целиком нельзя.
> Сейчас я использую для этого TFileStream, читаю кусками по 1 мб.
1) Если работать на чистом WinAPI, то системе можно сказать, что файл планируется читать последовательно
2) Подбирая оптимальный размер буфера можно увеличить скорость чтения. У меня оптимальные результаты были при размере буфера 32-64 килобайта. Короче, поэксперементируй.
3) Попробовать оптимизировать алгоритм расчета контрольной суммы.
--
Всего хорошего, Слава.
deadbeef.narod.ru
ICQ: 197577902
* Origin: (http://news.cca.usart.ru/) USURT's FidoNET<-> (2:5080/1003 [@] fidonet)
D6: TRxRichEdit
#/-----/# *Пpивет* All!
_*-----*_
1) Можно ли запpетить изменения pазмеpа каpтинки после вставке. RO не
катит.
2) Как найти позицию начало стоки. Пpобовал так, не pаботает.
s_start := 0;
for i := 0 to numstr - 1 do
s_start := s_start + length(lines[i]) + 2;
selstart := s_start;
_*----=========*_ Hу давай, Hу пока... /All!/ _*=========----*_
* Origin: Я не злопамятный - я пpосто злой и память хоpошая. (2:5012/2.214)
CRC32 файла
Привет, aleXander!
aF> Hyжно как можно быстpее вычислять контpольнyю сyммy файла,
aF> напpимеp CRC32. Дело в том, что файл может быть несколько
aF> гигабайт, поэтомy в память его загpyжать целиком нельзя.
aF> Сейчас я использyю для этого TFileStream, читаю кyсками по 1 мб.
RTFM Memory-mapped files.
aF> Выходит не слишком быстpо, imho, может еще быстpее можно?
Hемного быстрее.
aF> Да и y TFileStream недостаток сеpьёзный: он не видит файлы
aF> с unicode именами (т.е. котоpые в текyщyю Ansi pаскладкy
aF> клавиатypы не вписываются, напpимеp некотоpые немецкие,
aF> фpанцyзские, и конечно китайские).
THandleStream тебе в помощь. Handle откроешь сам через CreateFileW
WBR, Eugene mailto: www.tld.by [@] gmail*com
* Origin: Говорящая флора - это неправильно в принципе! (2:450/118.24)
Cache BLOBs
Привет All !
Имеется TQuery. Он возвращает набор из 80 записей, в котором одно из полей картинка. Затем устанавливается его свойство filter='[field]='XXX''. При прохождении по всем записям методами FindFirst,FindNext картинка считывается в поток для дальнейшей работы. При считывании в поток 1-й записи Stream:= TBlobStream.Create(query.field_1,bmRead) вываливается ошибка "Invalid BLOB handle in record buffer". Остальные записи считываются нормально.
Если сделать у DataBase.Params[BLOBS TO CACHE] = 128, т.е. больше 80 записей
тогда все ок.
Что мне сделать, чтобы не зависеть от этого параметра. Записей Query может вернуть и гораздо больше.
Hу все курим... Igor
* Origin: Pascal-Men still alive ! (2:451/16.4)
Re: CRC32 файла
ПРИВЕТ, _aleXander_!!!
=====================
06 Окт 05 03:26, aleXander Olegovich Fedorov -> All:
aOF> Hужно как можно быстрее вычислять контрольную сумму файла,
aOF> например CRC32.
С этим не подскажу, т.к. никогда не пробовал
aOF> Дело в том, что файл может быть несколько
aOF> гигабайт, поэтому в память его загружать целиком нельзя.
Попробуй отобразить файл в память, это на вродя файла подкачки будет.
Может побыстрее работать будет.
aOF> Сейчас я использую для этого TFileStream, читаю кусками по 1 мб.
aOF> Выходит не слишком быстро, imho, может еще быстрее можно?
Как то пытался открывать RTF c картинками с помощью TFileStream, очень медленно. Тогда стал копировать из TFileStream в TMemoStream и потом только открывать, побыстрее стало.
Удачи! Mail_to: FIDO: 2:5009/21.13 E-Mail: oli266 [@] mail.tambov.ru ICQ: 268409918
* Origin: Капля никотина убивает лошадь, а хомячка разрывает на (2:5009/21.13)
Cache BLOBs
Приветствую, All!
Однажды, 06.10.2005 14:20:26, Igor писал к All
по поводу "Cache BLOBs".
С этим попрошу в RU.DELPHI.DB.
-- С уважением, Andrew O. Shadoura
AKAs: 2:450/143.25, 2:450/202.25
* Origin: Formatting C: ... (2:450/143.25)