Вопрос № 99721: Здравствуйте Уважаемые!У меня к Вам вот какой вопрос.Я должен из бинарного файла ридом считывать блочки по 3 байт во временную переменую temp,правильно ли я сделал выбрав её тип как Cardinal(т.е 4-х байтовый),а если правильно расскажите как по байтно...Вопрос № 99739: Здравсвуйте!
Скажите, пожалуйста, как можно в заданной папке с несколькими подпапками найти все mp3 файлы, и добавить их в TreeView. И можно как-нибудь прочесть инфу из тегов -исполнитель и альбом и сортировать их уже по этим полям(плюс и названи...Вопрос № 99745: Здрасти как сделать чтоб программа запускалась когда Windows полностью загрузился. А то моя программа запускаеться когда окно ПРИВЕТСВИЕ . (Программа без интерфейса) ??!...
Вопрос № 99.721
Здравствуйте Уважаемые!У меня к Вам вот какой вопрос.Я должен из бинарного файла ридом считывать блочки по 3 байт во временную переменую temp,правильно ли я сделал выбрав её тип как Cardinal(т.е 4-х байтовый),а если правильно расскажите как по байтно (от начала или от конца)считается туда этот блочок,если допустим если смотреть в шестнацетиричном редакторе там идёт 00 00 10(как запишется это в 4 байта).
Отвечает: Coupler
Здравствуйте, Зотов Геннадий Александрович!
Допустим, имеется бинарный файл с содержимым 02 03 04 05 06 07 08 09. Чтобы считать 3 байта, можно использовать процедуру BlockRead(var F: File; var Buf; Count: Integer [var AmtTransferred: Integer]). Переменная типа cardinal занимает 4 байта в памяти, и нетрудно посмотреть, что 3 байта "встанут" на старшие адреса (поставьте breakpoint и посмотрите на temp как на дамп памяти) - она будет иметь вид $02 $03 $04 $00. Также можно читать 3 байта в массив array [1..3] of byte - там байты будут по
порядку, как в файле. Примеры чтения в приложении.
Приложение:
Ответ отправил: Coupler (статус: Практикант)
Ответ отправлен: 26.08.2007, 16:38 Оценка за ответ: 5 Комментарий оценки: спасибо за подробный ответ с примерами
Вопрос № 99.739
Здравсвуйте!
Скажите, пожалуйста, как можно в заданной папке с несколькими подпапками найти все mp3 файлы, и добавить их в TreeView. И можно как-нибудь прочесть инфу из тегов -исполнитель и альбом и сортировать их уже по этим полям(плюс и название трека взять оттуда же)? Может быть для этого нужны какие-нибудь компоненты(JVCL уже есть)?
Спасибо!
Приложение:
Отправлен: 26.08.2007, 19:09
Вопрос задал: Skvitek (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Уваров Андрей Александрович
Здравствуйте, Skvitek!
Вопрос 1:
Смотрите пример кода. Вытащите все что вам нужно оттуда. Код рабочий - я из своей программы вытянул. Это полностью юнит с кодом поиска и добавления файлов в потоке в список. Просто список! Без ID3 Тэгов. (Они так называются правильно)
Frm_Main.MP3List это список.
Frm_Main.E_Of это лейбл с колличеством файлов которые нашло.
В приложении DFM файл с формой. Он использует TProgressCyl и Alcione компоненты. (Красивого вида) Их можно найти на Torry.net либо я могу вам их выслать по email.
Вопрос 2:
Есть такой компонент TID3Engine. Через него читаются и пишутся тэги. Тоже на torry.net он есть. Вот пример чтения тегов:
procedure TFrm_ID3.LoadID3( FileName: string );
begin
try
ID3Engine := TID3Engine.Create( Frm_ID3 );
ID3Engine.FileName := FileName;
ID3Engine.Active := True;
L_Version.Caption := IntToStr( ID3Engine.Header.VersionNumber ) + '.' + IntToStr( ID3Engine.Header.VersionRevision );
with Frm_ID3 do
with ID3Engine do
begin
E_Name.Text := Title;
E_Artist.Text := Artist;
E_Album.Text := Album;
E_Genre.Text := Genre;
E_Year.Text := Year;
end;
ID3Engine.Active := False;
except
MessageBox( handle, PChar( Format( 'Невозможно получить информацию и файле %s!', [ FileName ] ) ), 'Ошибка ID3!', MB_ICONERROR + MB_OK );
end;
end;
Сортировку уже делайте сами. Скажу только что в DelphiWorld есть много вариантов сортировки. Это уже на ваш вкус.
=============================
Код юнита слишком большой, поэтому он перенесён в Приложение. Эксперт sir henry
Приложение:
--------- Обращаться в ICQ: 66550088 (Ally) или E-Mail: AvePassion@GMail.Com
Ответ отправил: Уваров Андрей Александрович (статус: Студент)
Ответ отправлен: 26.08.2007, 20:42 Оценка за ответ: 5
Вопрос № 99.745
Здрасти как сделать чтоб программа запускалась когда Windows полностью загрузился. А то моя программа запускаеться когда окно ПРИВЕТСВИЕ . (Программа без интерфейса) ??!
Отвечает: Уваров Андрей Александрович
Здравствуйте, Василий Васильевич Сквозняков!
Windows уже загрузился, это загружается рабочий стол и программы. К сожелению никак нельзя сделать чтобы программа запустилась только когда все остальные закончат работу. Можно попробовать принудительно ожидать например 20 сек., тогда можно быть уверенным что почти все загрузилось. Так же вы можете попробовать отслеживать загрузку CPU, но тут можно очень сильно просчитаться. Так как какая-нибудь программа может сразу начать грузить процессор.
--------- Обращаться в ICQ: 66550088 (Ally) или E-Mail: AvePassion@GMail.Com
Отвечает: Виктор Пырлик
Здравствуйте, Василий Васильевич Сквозняков!
Да поместите в автозапуск и всё. Программа не будет запускаться "когда окно приветствие", потому что, это отрабатывает для конкретного пользователя и на стадии регистрации пользователь не известен.
--------- Если ничего не помогло - надо читать инструкцию
Ответ отправил: Виктор Пырлик (статус: Студент)
Ответ отправлен: 26.08.2007, 23:25