¿Cómo hacer?
Con este pequeño ejemplo podemos ver como es un simple programa para editar un archivo TAP3
Decodificación
 |
|
 |
|
1 #!/usr/bin/perl
2 use TAP3::Tap3edit;
3 $tap3 = TAP3::Tap3edit->new;
4 $tap3->decode("CDOPER1OPER200001") or die $tap3->error;
5 $struct=$tap3->structure; |
|
 |
|
 |
Este es el primer paso trabajando con TAP3::Tap3edit. Con estas cinco líneas nosotros decodificamos un archivo TAP de nombre"CDOPER1OPER200001". Vamos a recorrer el script línea por línea.
1. Informa a la shell (ej. ksh, csh, command.com) con qué programa se debe correr nuestro script. Por favor verifiquen la ubicación correcta de su programa Perl. En algunos Unix puede ubicarse en /usr/local/bin/perl. Para Windows se deberá escribir la ubicación bajo windows ej: c:/perl/bin/perl.exe (por favor noten que es /, y no \).
2. En esta línea le decimos a Perl que vamos a usar el módulo TAP3::Tap3edit. Aquí Perl puede mostrar un error si el módulo no está instalado.
3. Creamos una nueva instancia del objeto TAP3::Tap3edit. Su nombre es $tap3.
4. Aquí se usa el método "decode" del módulo para decodificar el archivo CDOPER1OPER200001.
5. La estructura completa del archivo es almacenada en la variable $struct. Aquí es importante notar que el archivo ha sido completamente decodificado y su información completa (árbol) está almacenada en esta variable.
Cambio en la estructura
Después de decodificar querríamos modificar algo de la estructura del fichero. Vamos a cambiar por ejemplo el Offset de UTC.
Bien. Si estamos familiarizados con la estructura de TAP podremos ver que en la línea 6 cambiamos el contenido del campo "UTC Offset" dentro de "Earliest Call" dentro de la "Audit Control Information".
Nota: Por favor noten que aquí cambiamos el valor de un campo ASCII. Sie ustedes quieren cambiar el contenido de un campo hexadecimal, como por ejemplo IMSI, necesitarían primero convertir el valor a hexadecimal.
Codificación
Ok. Hasta ahora no parece muy complicado. Ahora que hemos cambiado la estructura necesitamos codificarla en un nuevo archivo.
 |
|
 |
|
1 #!/usr/bin/perl
2 use TAP3::Tap3edit;
3 $tap3 = TAP3::Tap3edit->new;
4 $tap3->decode("CDOPER1OPER200001") or die $tap3->error;
5 $struct=$tap3->structure;
6 $struct->{transferBatch}{auditControlInfo} {earliestCallTimeStamp}{utcTimeOffset} = "+0300";
7 $tap3->encode("CDOPER1OPER200001.new") or die $tap3->error; |
|
 |
|
 |
En la séptima línea podemos ver como se codifica la estructura en un nuevo archivo. Después de correr nuestro script tendremos nuestro fichero original y un fichero con la extensión ".new" con los cambios hechos.
Muy bien. Hemos podido ver como trabaja TAP3::Tap3edit para cambiar algo en un archivo TAP. Creo que ahora ya se entendió de qué se trata todo esto y quizás quisieran probarlo ustedes por si mismos. Les recomiendo mirar los requisitos de la instalación.
|