• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

machi

[C ++ ] Ajuda: Leitura de ficheiro (Resolvido)

5 mensagens neste tópico

Boa noite.

Tenho um pequeno problema.

Pretendo aceder à pasta Media onde tenho ficheiros .wav para que depois possa por a tocar o que foi seleccionado.

O que é necessário alterar??

char nome[40] = "\\Media\\";
strcat(nome,CStringToChar);
char *NOME = strcat(nome,".wav");

PlaySound(NOME, NULL, SND_FILENAME | SND_ASYNC);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas...

eu não percebo muito de C++ e nem sei muito bem o que faz essa função strcat, mas, reparei no char nome[40] = "\\Media\\";. Supostamente isso irá ficar \Media\, ou estarei enganado?

E depois tentar abrir o ficheiro juntando a extensão .wav, o que dá um resultado do tipo -> \Media\.wav - ou não?

Talvez se tirasses as "\\" isso funciona-se :D

Já agora, podes-me dizer que livrarias estas a declarar? É que eu não sou capas de compilar isso por causa disto -> CStringToChar  :-[

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Normalmente substituindo "O que é necessário alterar??" por "dá este erro: XXX" é mais util.

Essa variavel NOME (que devia ser com letras minusculas) não é necessária.

Com vem acabar com o limitador '\0' em ".wav\0"

O valor "\\Media\\" provavelmente vai ser usado como está.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas...

eu não percebo muito de C++ e nem sei muito bem o que faz essa função strcat, mas, reparei no char nome[40] = "\\Media\\";. Supostamente isso irá ficar \Media\, ou estarei enganado?

E depois tentar abrir o ficheiro juntando a extensão .wav, o que dá um resultado do tipo -> \Media\.wav - ou não?

Talvez se tirasses as "\\" isso funciona-se :D

Já agora, podes-me dizer que livrarias estas a declarar? É que eu não sou capas de compilar isso por causa disto -> CStringToChar  :-[

Cumps

O que eu fiz foi apenas fazer uma conversão.

Eu estou a ler o nome da musica de uma ListBox.

CStringToChar é apenas um ponteiro para char. :P

char * CStringToChar = (char *) (LPCTSTR) m_ListaTexto; // Faz a conversao de CString para char*

char nome[40] = "..\\Media\\";                         // Pasta onde estao as musicas
strcat(nome,CStringToChar);                           // concatena o nome da pasta com o da musica
char *NOME = strcat(nome,".wav");               // acrescenta o prefixo .wav

PlaySound(NOME, NULL, SND_FILENAME | SND_ASYNC);

Normalmente substituindo "O que é necessário alterar??" por "dá este erro: XXX" é mais util.

Essa variavel NOME (que devia ser com letras minusculas) não é necessária.

Com vem acabar com o limitador '\0' em ".wav\0"

O valor "\\Media\\" provavelmente vai ser usado como está.

Não dá erro nenhum,só não toca é som que deveria vir da pasta Media.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Está resolvido !

Já "bota" som!!  :D:P

A solução é simples:

char * CStringToChar = (char *) (LPCTSTR) m_ListaTexto; // Faz a conversao de CString para char*

char nome[40] = "Media\\";
strcat(nome,CStringToChar);
char *NomeMusica = strcat(nome,".wav");
MessageBox(NomeMusica);

PlaySound(NomeMusica, NULL, SND_FILENAME | SND_ASYNC);

Bastou alterar o "\\Media\\" por "Media\\" e agora já consigo ouvir os ficheiros que se encontram nessa pasta.  :ipool:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora