Техническая поддержка :

Современные решения

для защиты Windows программ

и восстановления исходного кода

Обсуждение программирования на Delphi в конференции ru.delphi


CRC32 файла

From: "aleXander Olegovich Fedorov"

Hi,

Hужно как можно быстрее вычислять контрольную сумму файла,
например CRC32. Дело в том, что файл может быть несколько
гигабайт, поэтому в память его загружать целиком нельзя.
Сейчас я использую для этого TFileStream, читаю кусками по 1 мб.
Выходит не слишком быстро, imho, может еще быстрее можно?
Да и у TFileStream недостаток серьёзный: он не видит файлы
с unicode именами (т.е. которые в текущую Ansi раскладку
клавиатуры не вписываются, например некоторые немецкие,
французские, и конечно китайские).

Ищу альтернативный, быстрый метод подсчета контрольной суммы
у файлов.


xof




* Origin: Demos online service (2:5020/400)


Unicode имена файлов и TFileStream...

From: "aleXander Olegovich Fedorov"

Hi,


Столкнулся с проблемой: TFileStream не принимает имена файлов
в Unicode (widestring). Если файл содержит какие-то умляуты (не
английские и не кириллические символы, которых нет в текущей
кодировке Ansi), например французские, то ругается что не может
найти такого файла.

Есть ли объект TFileStream, который работает с unicode именами?


xof

* Origin: Demos online service (2:5020/400)


Юникод в filename и ФайлСтреам

From: "aleXander Olegovich Fedorov"

Hi,


Столкнулся с проблемой: TFileStream не принимает имена файлов
в Unicode (widestring). Если файл содержит какие-то умляуты (не
английские и не кириллические символы, которых нет в текущей
кодировке Ansi), например французские, то ругается что не может
найти такого файла.

Есть ли объект TFileStream, который работает с unicode именами?


xof

* Origin: Demos online service (2:5020/400)


Re: Юникод в filename и ФайлСтреам

From: "Slava Antonov"

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"

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)



Назад Содержание Вперед




Главная     Программы     Статьи     Разное     Форум     Контакты