1 votos

Notepad ++ crea contenidos (funciones) usando una plantilla y una lista

Quiero crear funciones similares con su nombre obtenidos a partir de una lista desde un archivo. También su contenido también utilizar el nombre de la lista.

ejemplo: la lista está escrito en el archivo (fun_list.txt) como:

CLK_A_0
CLK_A_1
CLK_B_0
CLK_B_1
CLK_B_2
..
..

y mi plantilla de función definida en (fun_template.txt)

uint32 enable_###(boolean val)
{
   ### =  val;
}

resultado esperado en un único archivo de salida como (fun_clock.c):

uint32 enable_CLK_A_0(boolean val)
{
   CLK_A_0 =  val;
}
uint32 enable_CLK_A_1(boolean val)
{
   CLK_A_1 =  val;
}
uint32 enable_CLK_B_0(boolean val)
{
   CLK_B_0 =  val;
}
uint32 enable_CLK_B_1(boolean val)
{
   CLK_B_1 =  val;
}
uint32 enable_CLK_B_2(boolean val)
{
   CLK_B_2 =  val;
}
..

¿Cómo puedo lograr esto en el bloc de notas++. Supongo uso de macros debemos ser capaces de hacer esto.

No tengo ningún tipo de restricciones para los nombres de archivo (o estar en archivos separados), quiero crear estas funciones con facilidad en lugar de copiar manualmente.

Si no en el bloc de notas++, si hay algo de fácil solución en windows (cmd) o linux que también sería bueno.

3voto

Toto Puntos 294

Este pequeño script de Perl hace el trabajo:

 #!/usr/bin/perl 
use strict;
use warnings;

# define and open the three files
my $file_lst = 'fun_list.txt';         # give the full path if doesn't run in the same dir
my $file_tpl = 'fun_template.txt';
my $file_out = 'fun_clock.c';

open my $fh_l, '<', $file_lst or die "Unable to open '$file_lst': $!";
open my $fh_t, '<', $file_tpl or die "Unable to open '$file_tpl': $!";
open my $fh_o, '>', $file_out or die "Unable to open '$file_out': $!";

# read template file in "slurp" mode
my $tpl;
{
    local $/ = undef;
    $tpl =  <$fh_t>;
}
# read the list file and replace all ### in the template with the line in  list file
while(<$fh_l>) {
    chomp;
    (my $tmp = $tpl) =~ s/###/$_/g;
    print $fh_o $tmp;
}
 

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: