Вопрос № 53423: Доброго времени суток.Необходимо читать из файла 4байтовое real (записанное туда чужой программой, написанной не знаю на чем).Все ОК, но прочитанное не равно записанному.Например записуем 398,7 а читает 398,700012207031. Помоему проблема в несоответс...Вопрос № 53424: Здраствуйте уважаемые эксперты. Как можно воспроизвести видео. Из ресурсов. И музыку....Вопрос № 53461: Здраствуйте
уважаемые эксперты. Наверно я задал 53424 вопрос не так. Потому что мне дали ответы совершенно не потому. Я повторюсь как можно воспроизвести видео файл из самого приложения не производя извлечения. Я знаю что для некоторых компонентов ес...
Вопрос № 53.423
Доброго времени суток.Необходимо читать из файла 4байтовое real (записанное туда чужой программой, написанной не знаю на чем).Все ОК, но прочитанное не равно записанному.Например записуем 398,7 а читает 398,700012207031. Помоему проблема в несоответствии типов. Но что делать не знаю. Подскажите пожалуста решение или хоть направление.
Приложение:
Отправлен: 27.08.2006, 13:30
Вопрос задал: VNos (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Physicist
Здравствуйте, VNos!
Все у Вас правильно записывается/считывается. Просто тип 4-х байтовое вещественное число не позволяет хранить больше 7-8 значащих цифр. Так что правильно округляйте числа при выводе - вместо 398,700012207031 нужно выводить 398,7000.
Ответ отправил: Physicist (статус: Студент)
Ответ отправлен: 27.08.2006, 15:05 Оценка за ответ: 5
Отвечает: sir henry
Здравствуйте, VNos!
Вы почти правильно определили проблему. :)
Дело в том, что тип реал сам по себе неточен и его нужно округлять.
Будет лучше, если Вы точно определитесь с количеством цифр после запятой и возмете, например, тип Currency, который имеет фиксированое значение 4 цифры после запятой. Этот тип специально создан из-за той проблемы, что Вы озвучили.
Если количество цифр после запятой больше 4-х, то считывайте значения в виде строк и записывать их тоже нужно как строку. А потом с помощью StrToFloat().
Попробуйте так-же вместо типа Real (это устаревший тип, расчитаный на эмуляцию сопроцессора) использовать тип Single.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 27.08.2006, 15:17 Оценка за ответ: 4
Вопрос № 53.424
Здраствуйте уважаемые эксперты. Как можно воспроизвести видео. Из ресурсов. И музыку.
Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Болотов Алексей Борисович!
Если вы хотите просто прогирать файл, то его можно открыть с помощью компонента TMediaPlayer - как с ним работать очевидно. Методы типа Open/Load и Play. Еще avi можно помещать в TAnimation, но это не так удобно.
Если у вас эти ресурсы "зашиты" в какие-дь дркугие программы, то воспльзуйтесь соотв. программами для их извлечения. Например, eXeScope. Правда, не видел, чтобы он mp3 "извлекал".
--------- Не узнаешь - не попробуешь.
Отвечает: Савенко Вадим Иванович
Здравствуйте, Болотов Алексей Борисович! Для этого в Delphi имеется компонент MediaPlayer. Если поискать, можно найти сторонние компоненты, очень даже неплохие. У меня где-то был компонент со стрелочными индикаторами уровня, с крутящимися регуляторами громкости и баланса. Можно сделать очень стильный плейер. TAnimation воспроизводит видео без звука, поэтому его лучше использовать при визуальном отображении например процесса копирования и т.д.
Ответ отправил: Савенко Вадим Иванович (статус: 9-ый класс)
Ответ отправлен: 27.08.2006, 20:49
Вопрос № 53.461
Здраствуйте уважаемые эксперты. Наверно я задал 53424 вопрос не так. Потому что мне дали ответы совершенно не потому. Я повторюсь как можно воспроизвести видео файл из самого приложения не производя извлечения. Я знаю что для некоторых компонентов есть простая процедура LoadFromResourceName(), но для компонента MediaPlayer нет к сожелению. Подскажиты мне такой компонет или саму процедуру чтобы воспроизвести видео. Заранее благодарен.
Отвечает: Mo-skin
Здравствуйте, Болотов Алексей Борисович!
Используйте компонент TAnimate:
1. Открываем Блокнот и создаем текстовый файл MyAVI.rс с одной строкой:
ИМЯ_РЕСУРСА ТИП_РЕСУРСА Имя_AVI-файла
Имя и тип ресурса выберите любыми, только набивать их надо в верхнем
регистре. Например:
CLIP AVIFILE Clip.avi
2. В каталоге (Delphi)Bin есть утилита BRCC32.exe. Временно скопируйте
ее в каталог с файлом MyAVI.rс и выполните команду ("пуск" - "выполнить"):
BRCC32.exe MyAVI.rс
В итоге в том же каталоге получите готовый файл ресурсов MyAVI.res.
3. Теперь его надо подключить к программе. Для этого в текст программы
введите директиву
{$R MyAVI.res}
Можно указать ее, например, в модуле главной формы, после директивы
{$R *.DFM}
Это все. Теперь после компиляции программы AVI-файл окажется в ее теле.
Чтобы проиграть его, используйте свойства ResHandle и ResName компонента
TAnimate (хотя ResHandle в данном варианте можно и не задавать):
ResHandle := HInstance;
ResName := 'CLIP'; // То, что задавалось, как ИМЯ_РЕСУРСА.
--------- Чем больше женщину мы меньше, тем больше меньше мы ее!
Ответ отправил: Mo-skin (статус: 2-ой класс)
Ответ отправлен: 28.08.2006, 00:37 Оценка за ответ: 1