String ANSI C.

Programação C em geral

Moderadores: 51, guest2003

String ANSI C.

Mensagempor fabim » 28 Nov 2012 09:12

Pessoal, estou tentanto lembrar, mais não recordo nem a fogo.
Uma vez eu vi em algum lugar uma forma de criar uma string de forma que os chars dentro não interessam.
Motivo, quando eu faço;

char perigo[]={'aqui dentro tem mais um monte de "{}" e de " ' " '};
O que esta dentro desta string são os bytes puros de um arquivo wave, que eu abri no notepad !!

Não recordo mais o nome do software que eu usava pra exportar para arquivo HEX, int ou float, signed ou unsigned...
Faz muito tempo.

Alguém ai lembra como faz ? o famoso DAT ? Não me recordo nem a pau !!

Abraços fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Re: String ANSI C.

Mensagempor Francesco » 24 Mar 2014 19:03

Grande Fabim,

Então, eu cheguei a fazer algo parecido, mas lendo os arquivos WAV de um SDCard. Se você quer integrar como constante na flash do seu uC, precisa primeiro converter para HEX. Não encontrei nenhum programa que faça isso, nem mesmo meus dois editores hexas... então provavelmente eu faria um programinha rápido em Linux para fazer essa conversão. Não é dificil, algo mais ou menos assim.

cpp code
#include "stdio.h"

int main( int argc , char * argv[] )
{
FILE * arquivo ;
int letra ;

arquivo = fopen( argv[ 1 ] , "r" ) ;
if( arquivo == ( FILE * ) NULL )
{
printf( "Erro..." ) ;
return( -1 ) ;
}

for( ; ; )
{
letra = getc( arquivo ) ;
if( letra <= -1 )
break ;
printf( "0x%02X " , ( unsigned char ) letra ) ;
}

fclose( arquivo ) ;
return( 0 ) ;
}


E para executar esse código, faria algo como...
./converte arquivo.wav > arquivo.txt

Bom... uma vez como esse código na mão, aí basta criar o buffer.

cpp code
unsigned char buffer_wav[] = { 0x00 , 0x01 , 0x02 , 0x03 , 0x04 , 0x05... } ;


Fabim, é mais ou menos isso que você precisa?
Precisa que esse buffer faça mais algma coisa?

Francesco
Avatar do usuário
Francesco
Word
 
Mensagens: 699
Registrado em: 04 Mar 2008 00:22
Localização: São Paulo - SP

Re: String ANSI C.

Mensagempor Rodrigo_P_A » 25 Mar 2014 08:05

Tenta o winhex
---
Avatar do usuário
Rodrigo_P_A
Dword
 
Mensagens: 2237
Registrado em: 12 Out 2006 18:27
Localização: Osasco - S.P - Brasil

Re: String ANSI C.

Mensagempor Francesco » 25 Mar 2014 11:35

Ótima dica!
Baixei e testei o WinHex e ele realmente tem uma função de conversão de Binário para HEX.
Avatar do usuário
Francesco
Word
 
Mensagens: 699
Registrado em: 04 Mar 2008 00:22
Localização: São Paulo - SP

Re: String ANSI C.

Mensagempor vtrx » 25 Mar 2014 13:24

Se não estou enganado,este post esta faltando partes pois acho que alterei o meu programa(na época) para salvar em DAT tambem para o Fabim poder usar.
http://www.4shared.com/rar/NXSRjocy/AudioHex.html
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: String ANSI C.

Mensagempor Francesco » 25 Mar 2014 13:58

Olá Vtrx,

Sim, converter o arquivo WAV é só um pedaço pequeno do trabalho. O ponto mais importante é como colocar isso no projeto.

Ele pode colocar os dados diretamente como um const unsigned char [].
No entanto, ele pode modificar a rotina de execução do wav e tirar o cabeçalho desse HEX. Assim ele libera espaço de memória e tem uma execução muito mais rápida. No entanto, se ele mudar para um WAV 16 bits, ou aumentar o número de canais, o código original poderia ser mais interessante.

Francesco
Avatar do usuário
Francesco
Word
 
Mensagens: 699
Registrado em: 04 Mar 2008 00:22
Localização: São Paulo - SP

Re: String ANSI C.

Mensagempor vtrx » 25 Mar 2014 14:15

Sim,o programa que fiz ,na época,salva só os bytes de áudio em hex ou dat como ele queria.
Atualmente meus programas auxiliares de projeto,salvam também em Bin,assim posso ler direto de um cartão SD sem precisar 'processar' os bytes.
A vantagem deste programa,na época, é que voce pode 'escutar' o áudio lendo diretamente o arquivo hex,deste modo voce pode verificar qual é o conteúdo mesmo sem cabeçalho.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: String ANSI C.

Mensagempor xultz » 25 Mar 2014 14:31

Se não me engano, o Audacity consegue exportar o áudio num formato RAW sem cabeçalho.
98% das vezes estou certo, e não estou nem aí pros outros 3%.
Avatar do usuário
xultz
Dword
 
Mensagens: 3001
Registrado em: 13 Out 2006 18:41
Localização: Curitiba


Voltar para Visual C++/C/C++/C#

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x