· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.ASSEMBLER —› Сумма байтов

. 1 . 2 . >>

Посл.отвђт Сообщенiе


Дата: Окт 4, 2003 18:40:45

Гуру подскажите пожалуйста как подсчитать сумму всех байтов в файле, напишите пожалуйста пример, пожалуйста.


Дата: Окт 4, 2003 18:57:15

activia
как подсчитать сумму всех байтов в файле
Чето я не совсем понял - это про CRC32 или про получение размера файла?
Если про CRC32, то в теме "Идентификация MP3" это обсуждалось и пример есть, но для текстовой строки ;)


Дата: Окт 4, 2003 19:21:44

Нее не CRC32, вот есть файл, мне нужно посчитать сумму всех его байтиков, т.е. на входе файл а на выходе цифра. Т.Е. байт по смещению 1+ байт по смещению 2+ .... так далее.


Дата: Окт 4, 2003 19:59:32

Под какую ось программа (Dos/Win)?


Дата: Окт 4, 2003 20:06:05

Желательно под Win. Если можно то пусть она эту сумму выведет как-нибудь. Я сам пишу на дельфи, и подсчёт 25-30Мб файла занимает кучу времени, мне сказали на ассемблере всё быстро будет.


Дата: Окт 4, 2003 20:23:00

Функцию из библиотеки вызвать сможешь?
Попытаюсь это оформить в течении ближайших пары часов.


Дата: Окт 4, 2003 20:37:31

Возник небольшой вопрос: скольки байтной будет цифра на выходе и что будет при переполнении?


Дата: Окт 4, 2003 20:43:25

Скольки байтной будет цифра не знаю, в зависимости какой файл...
Я не вкурсе, у ассемблера есть предел? В делфи можно работать с 2^32 , 2^64 цифрами.
Функцию вызывать смогу если ты имеешь ввиду подцепить к дельфям как юнит.
Буду ждать ответа, пиши!


Дата: Окт 4, 2003 23:08:35

Готово!
Библиотека экспортирует 2 функции:
FileSum(lpFileName:PChar)
StringSum(lpBuffer:PChar,iBufferLen:Integer)

Кажется с названиями типов данных не ошибся ;)
Что такое юнит, не знаю, но может у тебя получится подключить эту библиотеку.
Библиотека и исходники прилагаются :)

_1125204154__activia.zip


Дата: Окт 4, 2003 23:13:17

Работает быстро - файл в 685Мб обсчитывается за ~31 секунду на машине: P4, 2Ghz; RIMM 512Mb
Библиотека требует ~1Мб оперативной памяти для хранения временных данных.


Дата: Окт 4, 2003 23:35:24

Скачал, но я не совсем понял, куда возвращается значение? откуда его брать? объясни пожалуйста.


Дата: Окт 4, 2003 23:47:17

Билиотека подключается, функция находится, но после вызова у меня приложение выпадает, типа недопустимая операция... будет закрыто :(


Дата: Окт 4, 2003 23:48:53

Билиотека подключается, функция находится, но после вызова у меня приложение выпадает, типа недопустимая операция... будет закрыто :(


Дата: Окт 5, 2003 00:39:53

activia
у меня приложение выпадает
Если приложение выпадает, скорее всего параметры передаются неправильно. Возможно такое поведение и из-за версии Windows (в WinXP многое срабатывает по другому чем в Win9x)
я не совсем понял, куда возвращается значение
В бейсике это выглядело бы так:
znachenie=FileSum("c:\myfile.avi")
В делфи наверное:
znachenie:=FileSum('c:\myfile.avi')

Если можешь, кинь мне свою программу на мыло (оно есть в описании пользователя (нажми на "Воин дзена" под моим логином)). Только обязательно сообщи об этом топиком, а то я редко мыло проверяю.


Дата: Окт 5, 2003 01:14:26

Еще раз потестил библиотеку - все работает и загрузка проца всего ~24%, хотя винт гудит сильно :)
Попробуй этот архив, он покажет в чем ошибка (если все работает, то точно не в Dll)


1731627731__test.zip

. 1 . 2 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.077