Leer un fichero

Carlos A. Pitty L. cpitty en bancouniversal.com
Mar Ago 9 13:50:56 PDT 2005


Gracias por la respuesta tan pronta, para aclarar la explicación les envío
un ejemplo, la línea se vería así:

0002006037170201050020000100020000     000508090010002...

Ahora bien, lo que necesito es tomar los cuatro primeros números y
almacenarlos en una variable ya que si es 0001 significan algo y si son 0002
significan otra cosa, luego tomo los 18 siguientes y los almaceno, luego los
cuatro siguientes, luego los otro cuatros, etc.

Lo que respondió el Sr. Magallón fue de mucha ayuda, sin embargo; no se como
almacenarlo en una variable, cada vez que lo intento me manda un error.

Gracias una vez mas...

Carlos A. Pitty L.
Banco Universal, S.A.
Departamento de Informática
Tel.: 775-4394 ext. 137

-----Mensaje original-----
De: costarica-pm-bounces en pm.org [mailto:costarica-pm-bounces en pm.org] En
nombre de Marcelo E. Magallón
Enviado el: Martes, 09 de Agosto de 2005 01:28 p.m.
Para: costarica-pm en pm.org
Asunto: Re: Leer un fichero

On 8/9/05, Carlos A. Pitty L. <cpitty en bancouniversal.com> wrote:

> Necesito leer de un archivo que contiene cierta cantidad de líneas una
línea
> en específico y luego esa línea descomponerla en datos más pequeños.  Ya
he
> logrado hacer que el script me traiga la línea que deseo, la guardo en un
> arreglo pero no he logrado descomponerla.  Lo malo es que para
descomponerla
> los datos no están separados por ningún carácter, por ejemplo, los tres
> primeros números significan algo, los dos siguientes otro dato, los cuatro
> siguientes otro dato y así lo mismo en cada línea. 

Si nos das un ejemplo de como se ve la línea es más simple ayudarte,
pero con la descripción que ofrecés, esto debería ser un comienzo:

#!/usr/bin/perl

use warnings;
use strict;

# para todas las líneas
while (<>)
{
    # buscar las que contengan la hilera 60371702
    next unless /60371702/;

    # y con esas hacer lo siguiente

    # 1. imprimirlas tal cual
    print;

    # 2. quitarles el caracter de "nueva línea"
    chomp;

    # 3. imprimir su longitud medida en caracteres

    print "Longitud: ", length($_), "\n";

    my @c = split //;

    print "Primeros tres: ", join('', @c[0 .. 2]), "\n";
}

escribís eso en un archivo, lo hacés ejecutable, y lo llamás con el
nombre del archivo con los datos como argumento:

$ ./trabaja REN

-- 
Marcelo
__ 
Costarica-pm en pm.org
http://mail.pm.org/mailman/listinfo/costarica-pm




Más información sobre la lista de distribución Costarica-pm