Re: Convertir un fichier ASCII en tableau C

Pàgina inicial

Reply to this message
Autor: Habib Bouaziz-Viallet
Data:  
A: serge rouveyrol
CC: Guilde
Assumpte: Re: Convertir un fichier ASCII en tableau C
J'ai fait

#!/usr/bin/perl

open(H, ">xil.h");
print H "const char tableau[]={\n\n";

sub conv {
my $bin = shift;
my $p = 7;
my $res;

for my $i (split //, $bin) {
$res += $i * (1 << $p--);
}
return $res;
}

while (<>) {
    for($i = 0; $i < 40; $i += 8) {
    $octet =  substr($_, $i, 8);
    printf H "0x%x, ", conv($octet);
    }
}
print H "};";


Ca a l'air de marchoter (il est vrai qu'avec perl il y a toujours un
résultat ...) il me faut encore zapper l'entête du fichier
"
Xilinx ASCII Bitstream
Created by Bitstream J.40
Design name:    sdram_ctrl.ncd
Architecture:   spartan3
Part:           3s50pq208
Date:           Thu Jan  3 17:36:05 2008
Bits:           439264
"
mais ça je sais faire normalement.


Merci beaucoup !!!

Habib
2008/1/4, serge rouveyrol <serge.rouveyrol@???>:
>
>
> sub conv {
> my $bin = shift;
> my $p = 7;
> my $res;
>
> for my $i (split //, $bin) {
>    $res +=  $i * (1 << $p--);
> }
>   return $res;
> }

>
> while (<>) {
>   for($i = 0; $i < 40; $i += 8) {
>     $octet =  substr($_, $i, 8);
>     printf "0x%x, ", conv($octet);
>   }
> }

>
>
> Habib Bouaziz-Viallet a écrit :
> > Bonjour !
> >
> > En deux mots, transformer le contenu d'un fichier ASCII
> >
> > Xilinx ASCII Bitstream
> > Created by Bitstream J.40
> > Design name:    sdram_ctrl.ncd
> > Architecture:   spartan3
> > Part:           3s50pq208
> > Date:           Thu Jan  3 17:36:05 2008
> > Bits:           439264

> >
> > 1111111100100001110101011111011110011111
> > 0101101111111111111111111101111111111101
> > 1101111111011101111111011101111111011101
> > ....
> >
> > En un fichier xil.h
> >
> > const char tableau[439264] = {
> > 0xFF, 0x21, 0xD5, 0xF7, 0x9F,
> > 0x5B, 0xFF, 0xFF, 0xDF, 0xFD,
> > 0xDF, 0xDD, 0xFD, 0xDF, 0xDD,
> >
> >      etc ....

> >
> >
> > ...etc.
> >
> > };
> >
> >
> > Comment peut on faire avec perl ? merci pour vos avis.
> >
> > --
> > M. Bouaziz-Viallet
>
>
>



--
M. Bouaziz-Viallet