Maintenant, explique moi comment traiter un fichier de N lignes sans faire une boucle ? Les instructions SIMD pour des traitements complexes gerant des acces disques n'existent pas encore il me semble mais je me trompe peut etre.
Penses tu serieusement que cat, grep, awk & co ne font pas de boucle quelque part ?
quel overhead représente un saut pour ton probleme si tu le resoud dans un langage interprété ? autant résoudre ton probleme en ASM, mais de toute facon je ne vois pas comment ne pas mettre de saut sans derouler.
[^] # Re: "open + while + split + if + join + print + close" grace a RTFM
Posté par Mouns . En réponse au message besoin de commande perl pour éviter une boucle sur grep, un if et un sed (en clair un rechercher remplacer conditionnel). Évalué à 4.
sinon, tu peux tenter une recursion mais cela reste encore une boucle implicite :
open( my $ifile, "<", "input.txt" );
open( OFILE, ">", "output.txt" );
sub recurs {
my $h = shift;
my $a = <$h>;
chomp;
my @col = split( '~', $_ );
if ( ( $col[0] eq "ACT" ) && ( $col[12] =~ /^0/ ) ) {
$col[12] = $col[14];
}
print OFILE join( '~' , @col ), "\n";
recurs( $h ) unless eof( $h );
}
recurs( $ifile );
close( $ifile );
close( OFILE );
Maintenant, explique moi comment traiter un fichier de N lignes sans faire une boucle ? Les instructions SIMD pour des traitements complexes gerant des acces disques n'existent pas encore il me semble mais je me trompe peut etre.
Penses tu serieusement que cat, grep, awk & co ne font pas de boucle quelque part ?
quel overhead représente un saut pour ton probleme si tu le resoud dans un langage interprété ? autant résoudre ton probleme en ASM, mais de toute facon je ne vois pas comment ne pas mettre de saut sans derouler.
cadeau : le source d'une version de cat pour OpenBSD http://mirror.sg.depaul.edu/pub/OpenBSD/src/bin/cat/cat.c