Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 1092
от 16.03.2008, 01:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 441, Экспертов: 64
В номере:Вопросов: 3, Ответов: 5

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 126600: Здравствуйте уважаемые эксперты. пишу программу, которая работает с mp3 тегами. в приложении изложена идея. проблема в том, что такой метод лишь дописывает файл, мне же не обходимо переписывать последние 128 символов (или удалять и записы...
Вопрос № 126635: Здравствуйте! Delphi 7. Следующая задача. Разработать программу, которая позволит вычислять произведение произвольных чисел и находить квадрат произвольного числа. Произвольные числа вводить с помощью двух ползунков TrackBar. Расположение пол...
Вопрос № 126717: Добрый день, уважаемые эксперты! У меня такой вопрос. Как определить количество лет, месяцев и дней между двумя датами....

Вопрос № 126.600
Здравствуйте уважаемые эксперты.
пишу программу, которая работает с mp3 тегами.
в приложении изложена идея.
проблема в том, что такой метод лишь дописывает файл, мне же не обходимо переписывать последние 128 символов (или удалять и записывать заново)

Заранее спасибо.
Буду рад любой критике и помощи и советам

Приложение:

Отправлен: 10.03.2008, 10:13
Вопрос задал: Левадный Тимур (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Sosedov A.I.
Здравствуйте, Левадный Тимур!

Ваша программа работает именно так, как Вы и хотите. Однако ошибки и замечания все же есть:
1. Правильнее пользоваться методами Write и Read, как советует Help.
2. Из f.size правильно вычитать 128, чтобы позиционироваться в файле с отступом в 128 байт.
3. Лучше все же самому контролировать длину считываемой и записываемой строки. Для этого надо
- описать s как переменную типа string;
- перед операцией чтения устанавливать длину строки s равной числу считываемых байт (функция SetLength)
- чтение производить в буфер, начинающийся с s[1]
- по окончании чтения проверять число прочитанных байт и по необходимости корректировать длину строки.
Вот что у меня получилось (см приложение).

Приложение:

Ответ отправил: Sosedov A.I. (статус: 3-ий класс)
Ответ отправлен: 10.03.2008, 14:49
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо за все, обязательно переделаю свой код


Вопрос № 126.635
Здравствуйте! Delphi 7. Следующая задача. Разработать программу, которая позволит вычислять произведение произвольных чисел и находить квадрат произвольного числа.
Произвольные числа вводить с помощью двух ползунков TrackBar.
Расположение ползунка выводить с помощью двух Label.
Вычислять произведение в зависимости от положения ползунка первого TrackBar. Результат выводить с помощью Label находящийся в компоненте GroupBox с заголовком "Произведение".
При помощи компонента CheckBox изменять заголовок GroupBox "Произведение" на "Квадрат" и выполнять вычисление квадрата произвольного числа в зависимости от одновременного изменения двух ползунков . После удалении "галочки" восстановление заголовка GroupBox выполнять вычисление произведение произвольных чисел.

Приложение:

Отправлен: 10.03.2008, 15:09
Вопрос задал: Спиридонов Данил Сергеевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Denisss

Здравствуйте, Спиридонов Данил Сергеевич!

В приложении находится пример главного модуля программы (Unit 4). Закомментировал по-максимуму (на всякий случай).

Если честно, то не совсем уверен, что правильно понял суть задачи:

1. Если я правильно понял, то "Вычислять произведение в зависимости от положения ползунка первого TrackBar" означает, что при перемещении второго ползунка не должно вызывать пересчет произведения.
Если это не так, то следует добавить в конец обработчика события TrackBar2.OnChange:
Label3.Caption:= IntToStr(TrackBar1.Position * TrackBar2.Position);

2. "...в зависимости от одновременного изменения двух ползунков..." - здесь я понял так, что при установленной галочке ползунки должны перемещаться одновременно.

PS
К ответу прикреплен весь проект в архиве.

Удачи!

Приложение:

Прикреплённый файл: Загрузить >>
Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа.
---------
Будь осторожен, когда молишься ради чего-то, потому что можешь это получить...

Ответ отправил: Denisss (статус: Профессионал)
Россия, Москва
ICQ: 281599577
----
Ответ отправлен: 11.03.2008, 13:22


Вопрос № 126.717
Добрый день, уважаемые эксперты! У меня такой вопрос. Как определить количество лет, месяцев и дней между двумя датами.
Отправлен: 10.03.2008, 23:04
Вопрос задал: Avramenko S.N. (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 8)

Отвечает: Zubex
Здравствуйте, Avramenko Serge Nikolaevich!
Для определения разницы между двумя датами используйте следующие функции:
- кол-во лет - YearsBetween(дата1,дата2);
- кол-во месяцев - MonthsBetween(дата1,дата2);
- кол-во дней - DaysBetween(дата1,дата2).
Удачи.
---------
Если не знаешь что сказать - лучше промолчи...
Ответ отправил: Zubex (статус: 8-ой класс)
Ответ отправлен: 11.03.2008, 10:27
Оценка за ответ: 5
Комментарий оценки:
Но это не совсем то, что было нужно. Видимо я не правильно сформулировал вопрос

Отвечает: Louken
Здравствуйте, Avramenko S.N.!

//Нужно подключить:
uses DateUtils;

//Чудо процедура:
procedure GetDayMonthYear(const dt1, dt2: TDateTime; var d,m,y: integer);
var ds: Double;
begin
ds:=DaySpan(dt1, dt2); //Количество дней прошедших между двумя датами
y:=Trunc(ds/ApproxDaysPerYear); //Количество полных лет
ds:=ds-y*ApproxDaysPerYear; //Количество дней, за вычетом y-лет
m:=Trunc(ds/ApproxDaysPerMonth); //Количество полных месяцев
d:=Trunc(ds-m*ApproxDaysPerMonth); //Количество дней
end;

//Использовать примерно так:
var dt1, dt2: TDateTime;
d,m, y: integer;
begin
dt1:=StrToDate('31.05.2006');
dt2:=StrToDate('01.02.2008');
GetDayMonthYear(dt1, dt2, d,m,y);
ShowMessage(inttostr(d)+', '+inttostr(m)+', '+inttostr(y));
end;
Ответ отправил: Louken (статус: Студент)
Ответ отправлен: 11.03.2008, 12:34
Оценка за ответ: 5
Комментарий оценки:
Получилось очень изящно!

Отвечает: Genia007
Здравствуйте, Avramenko S.N.!
В своё время меня тоже интересовал этот же вопрос, на что я накидал эту программку, единственный недостаток это -
высокосные года, с которыми мне лень было разбираться, и ещё я использовал модернизированные кнопки BitBtn, в которых я воткнул выбор цвета кнопки. Идея вычисления должна быть Вам понятна.

Код программы перенесен в приложение.
-----
∙ Отредактировал: Николай Владимирович / Н.В. (Профессионал)
∙ Дата редактирования: 11.03.2008, 20:09

Приложение:

Ответ отправил: Genia007 (статус: 7-ой класс)
Ответ отправлен: 11.03.2008, 15:30
Оценка за ответ: 5
Комментарий оценки:
У меня получилось примерно то же самое


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.72.4 от 15.03.2008
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное