Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
oldalexi
1 / 1 / 0
Регистрация: 13.03.2014
Сообщений: 13
#1

Считать Tag из mp3 в wstring - C++

31.01.2015, 16:33. Просмотров 368. Ответов 4
Метки нет (Все метки)

Привет. Мне нужно считать из mp3 файла, исполнителя. Я понял, что нужно:
1) Открыть файл в бинарном виде.
2) Найти позицию от которой нужно читать я это делал так:
C++
1
2
failIn.seekg(sizeof(failIn) - 128) // т.к. тег - 128 байт
int pos = file.tellg();
3) считать в wstring.
C++
1
failIn >> str
Но, при считывание выводится "ерунда". Я точно, что-то делаю неправильно. Но что?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2015, 16:33     Считать Tag из mp3 в wstring
Посмотрите здесь:

Считать с потока строку в std::wstring - C++
Есть ли аналог std::string str; getline(cin,str); для std::wstring ???

wstring - C++
Здраствуите ,вобщем маленькая запара ,хочу узнать возможно ли под WinApi использовать wstring вот пример в чем у меня запара wstring...

Из string в wstring - C++
Как можно получить wstring-строку из string-строки? (символы в строке латинские, поэтому проблем вроде бы возникать не должно)

utf8 string to wstring - C++ Linux
Здравствуйте, уважаемые резиденты форума и знатоки C++! Вопрос новичка к вам, помогите, пожалуйста. Дано: OC: Ubuntu 10.04 ...

Wstring и файловый поток - C++
Беда за бедой, я уже 2 тему создаю. Короче из-за того, что теперь я использую вместо string Wstring не знаю, как грамотно файловый поток...

Объединение переменных в wstring - C++
Всем добрый день! Подскажите как собрать, сохранить все значения переменных в строку wstring. А то собираю dll для 1c-ки,а тут одни...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
31.01.2015, 21:03     Считать Tag из mp3 в wstring #2
1. Откуда ты знаешь точную позицию исполнителя в файле?
2. Почему ты решил, что исполнитель записан в том формате, в котором ты его хочешь считать?
oldalexi
1 / 1 / 0
Регистрация: 13.03.2014
Сообщений: 13
01.02.2015, 01:18  [ТС]     Считать Tag из mp3 в wstring #3
1. на тег отводится 128 байт. Я считываю его полностью и там уже выбираю исполнителя.
2. он может быть записан в string или в wstring(можно открыть блокнотом файл mp3 и там внизу последние 128 байт прочитать)
Я нашёл способ, спасибо, что откликнулся. Может кому пригодится
C++
1
2
3
4
5
6
7
8
9
wifstream failIn(L"D:\\w\\...", ios::ate); 
    if (failIn.is_open())
        cout << "Open" << endl;
    int k = failIn.tellg();
    failIn.seekg(k - 128);
    wstring str;
    getline(failIn, str);
       wcout << str << endl;
/*Тут можно использовать и всё без w*/
demmax2004
58 / 136 / 35
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
01.02.2015, 10:11     Считать Tag из mp3 в wstring #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//MP3tag.h
 
#ifndef __MP3tag_h
#define __MP3tag_h
 
struct TAGdata
{
    char tag[3];
    char title[30];
    char artist[30];
    char album[30];
    char year[4];
    char comment[30];
    int genre;
};
 
#endif
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//mp3reader.cpp
//snags the tag off the last 128 bytes of an MP3 file.
 
#include "MP3tag.h"
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
int main()
{
    TAGdata tagStruct;
    char  fileName[fileNameLength+1];
    ifstream mp3File;
    char buffer[mp3TagSize+1];
 
    cout << "MP3 File Name? ";
    cin.getline(fileName,fileNameLength);
 
    mp3File.open(fileName);
    buffer[mp3TagSize] = '\0';  //just a precaution
 
    if (mp3File){
        cout << "Successful open of " << fileName << endl;
    }else{
        cerr << "***Aborting*** Could not open " << fileName << endl;
        return 1;
    }
 
    //move file pointer to 128 bytes off the end of the file.
    mp3File.seekg(-(mp3TagSize),ios::end);
    if(mp3File.fail()){
        cerr << "Could not seek, Aborting " << endl;
        return 1;
    }
 
    //get the data
    mp3File.read(reinterpret_cast <char *>(&tagStruct),mp3TagSize);
    if(mp3File.fail()){
        cerr << "Could not read after seeking, Aborting " << endl;
        return 1;
    }
 
        mp3File.close();
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2015, 22:04     Считать Tag из mp3 в wstring
Еще ссылки по теме:

преобразование wstring в int - C++
Как преобразовать wstring в int

Вывод wstring в файл - C++
bool addCategory(const std::wstring&amp; name_category) { wfstream fio = initAndCheckWFSTREAM(FILENAME_CATEGORY, ios_base::app |...

Конвертирование в wstring& - C++
Всем привет! Не могу понять почему невозможно конвертировать из wchar_t в wstring&amp; Вызов метода client -&gt; CompareTwoString(...

Странное поведение wstring - C++
Всем привет! Ребята, не могу понять такую ситуацию. Вставляю в wstring строку в позицию 0 таким образом ...

wstring to int с делемиттером - C++
Как вытащить из wstring, например такой &quot;333, 555, 666, 777, 888&quot;, инты?

Преобразовать char в wstring - C++ WinAPI
Подскажите как это сделать? прога читает сокет там принятые данные сохраняются в char. для дальнейшей работы мне надо 6 первых принятых...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
oldalexi
1 / 1 / 0
Регистрация: 13.03.2014
Сообщений: 13
01.02.2015, 22:04  [ТС]     Считать Tag из mp3 в wstring #5
У Вас намного лучше. Спасибо demmax2004
Yandex
Объявления
01.02.2015, 22:04     Считать Tag из mp3 в wstring
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru