![]() |
|
|
![]()
|
|
| Shushide |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 20.5.2005 Репутация: нет Всего: нет |
Ребята, кто может помочь в решении моей проблемы? Вкратце, суть задачи в том, чтобы прочитать теги из MP3-файла и вывести каждый в свое текстовое поле на форме.
Вот код: __fastcall FillID3TagInformation(String mp3File) { struct TID3Rec { char Tag[3],Title[30],Artist[30],Comment[30],Album[30],Year[4]; char Genre; } myStruct; TID3Rec* ptr = &myStruct; TFileStream *fmp3 = new TFileStream(mp3File, fmOpenRead); fmp3->Position = fmp3->Size - 128; fmp3->Read(ptr,128); fmp3->Free(); Form1->Tag->Text = myStruct.Tag; Form1->Title->Text = myStruct.Title; Form1->Artist->Text = myStruct.Artist; Form1->Comment->Text = myStruct.Comment; Form1->Album->Text = myStruct.Album; Form1->Year->Text = myStruct.Year; Form1->Genre->Text = myStruct.Genre; return 0; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { String n; if ( (OpenDialog1->Execute()) && (OpenDialog1->FileName != "") ) n = OpenDialog1->FileName; FillID3TagInformation(n); } По задумке должно получаться, что в каждую переменную структуры записывается свой тег, а затем извлекается. Однако, при отладке,при наводе курсором на имя структуры показывается, что все переменные заполненными корректно. А при наводе на,например, myStruct.Tag в переменной Таg оказываются все 128 символов, и такая же лабуда, с небольшими оговорками, с осталными.. :-((( Ну и в поля выводится соответственно не то, что требуется, а гораздо больше. Почему так получается? Где я ошибся? |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
скорее всего с выравниванием проблемы -- поставь в 1 байт
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 1 Всего: 134 |
Наводит на мысль - может теги не содержат завершающий \0? Тогда SetLength/strncpy в помощь. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |