Buenas,
Estoy analizando unos archivos y ahora me he encontrado con uno un poco particular, con una estructura así:
Using text Syntax Highlighting
USR VADER, DARTH...... 8871 7601 2011-01-30 2012-01-28
USR2 SKYWALK, LUKE..... 2249 1200 2011-08-24 2011-08-21 2011-05-13
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Las columnas, como se aprecia, siempre van en la misma posición, es decir, tienen un tamaño fijo. La separación entre las columnas, son espacios (\s).
He intentado hacer algo como
Using perl Syntax Highlighting
my($c1,$c2,$c3,$c4,$c5,$c6,$c7) = split /\s+, $_;
Coloreado en 0.003 segundos, usando
GeSHi 1.0.8.4
Pero no funciona, ya que la columna nº 2, siempre contiene algún espacio entre sus datos. Además, también hay columnas que pueden aparecer sus datos.
Después he estado trasteando con expresiones regulares, pero no consigo dar con una que me funcione
He intentado usar unpack(), pero sin éxito también, ya que la longitud de cada columna es diferente, y no puedo decirle que me trocee por campos ASCII de x caracteres >.<
Lo único que se me ha ocurrido es crear un
array por línea, y acceder a los elementos $array[$inicio_columna] - $array[$fin_columna] ... y el código estaba quedando sencillamente horrible.
¿Se os ocurre alguna forma mejor para hacerlo teniendo en cuenta que las columnas siempre empiezan en la misma posición?