Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: carlosguay en 14 Diciembre 2009, 20:09 pm



Título: Ayuda com archivo de texto, por favor.[Solucionado]
Publicado por: carlosguay en 14 Diciembre 2009, 20:09 pm
Llevo mucho tiempo liado com un bat, para manipular archivos binarios, osea com bytes.
He tenido muchos trompiesos y ya solo me queda uno por resolver, a ver si alquien sabria ayudarme, ya que no se donde leer mas, ni como solucionar este poblema.

Tengo archivos como he dicho antes asin.

Citar
AA BB CC DD EE FF
AA BB CC DD EE FF

Y necesito ponerlo asin, para pasarlos a un archivo bin.

Citar
AA BB CC DD EE FF AA BB CC DD EE FF

Lo que necesito es que los bytes, esten correlativos y no de linea en linea.
Vereis si fueran pocos bytes, pues se podria hacer a mano, pero estoy manejando miles de bytes, por eso estoy com el bat liado, para manipularlos.

Se que primero tengo que hacer algo como esto.


Citar
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1" %%_ in ('type "file.txt" ^| find /v /c ""') do (set "lineas=%%_";)
set /a "contador=0"
for /f "eol= tokens=* delims=" %%_ in (file.txt) do (
set /a "contador+=1"
set "linea!contador!=%%_"
)

Pero como puedo seguir, una manita o alguna idea, que estoy bastante harto ya de este bat.

saludos


Título: Re: Ayuda com archivo de texto, por favor.
Publicado por: ~ Yoya ~ en 14 Diciembre 2009, 22:06 pm
ps si lo tienes asi:
Código:
AA BB CC DD EE FF
AA BB CC DD EE FF

Y lo quieres asi:
Código:
AA BB CC DD EE FF AA BB CC DD EE FF

Lo que deberias hacer es hacer con bat algo que quite el fin de linea, ps como sabras yo no manejo mucho bat, manejo perl xD.


Título: Re: Ayuda com archivo de texto, por favor.
Publicado por: leogtz en 15 Diciembre 2009, 00:49 am
Una solución perlera también es válida, publicala.
Código
  1. open(my $file, q[<], "file.txt") or die("El archivo no se pudo leer.\n$!");
  2. while(<$file>)
  3. {
  4. chomp($_);
  5. print $_;
  6. }
  7. close($file);

A ver, como prueba tenemos el archivo "file.txt" con el siguiente contenido:
Código:
AA BB CC DD EE FF
AA BB CC DD EE FF

Y yo lo quiero así:

Código:
AA BB CC DD EE FF AA BB CC DD EE FF
Código
  1. @echo off
  2. for /f "tokens=*" %%_ in (file.txt) do (<nul set /p "=%%_ ";)
  3. echo Demas texto...
  4. set /p "="
  5. exit /b 0

La salida que me da es esta:
Código:
C:\>code
AA BB CC DD EE FF AA BB CC DD EE FF
Demas texto...

C:\>

Y ahora que estoy en mi Ubuntu funcionaria esto:
Código:
cat "file.txt" | tr '\n' ' '


Título: Re: Ayuda com archivo de texto, por favor.
Publicado por: carlosguay en 15 Diciembre 2009, 07:59 am
Que grandes que soys, GRACIASSSSSS, sin vosotros nunca lo habia conseguido.

Me funciona perfecto, gracias de verdad.

un saludo