elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  ¿Como Meter en variable una determinada linea de un archivo?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Como Meter en variable una determinada linea de un archivo?  (Leído 4,553 veces)
sr_corsario

Desconectado Desconectado

Mensajes: 19


Ver Perfil
¿Como Meter en variable una determinada linea de un archivo?
« en: 22 Noviembre 2009, 21:29 pm »

Hello...

Buenas, otra vez incordiando al personal... sorry

Esta vez necesito obtener el contenido de la primera linea de un archivo y meterlo en variable y operar con ese valor. Cuando termine ese proceso necesito hacer lo mismo con la siguiente linea hasta que el archivo termine.




En el foro he encontado esto:

Meter la primera linea en una variable:
Código:
@echo off
<"file.txt" set /p "primera_linea="
set "primera_linea"

y
Pedir número de línea al usuario y mostrarla por pantalla:
Código:
Código:
@echo off
:code
set /p "linea=Linea : "
if not defined linea goto:code
set /a "_linea=0"
for /f "tokens=*" %%_ in ('type file.txt') do (
call:show %%_
)
goto:eof
:show
set /a "_linea+=1"
if %_linea%==%linea% echo %*
goto:eof

Con esto meto en variable la última linea del archivo...
Código:
For /f "useback tokens=*" %%R in ("idlist.txt") do (set ID=%%R)


Siento ser tan pesado... gracias por la ayuda.


« Última modificación: 22 Noviembre 2009, 21:50 pm por sr_corsario » En línea

Angel Doze

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: ¿Como Meter en variable una determinada linea de un archivo?
« Respuesta #1 en: 23 Noviembre 2009, 07:37 am »

Hola sr_corsario,


Te puedo ayudar, pero se necesita de sed.exe, buscalo por la red, seguro lo encuentras

Código:
@ECHO OFF

<"file.txt" set /p "primera_linea="
set "primera_linea"

SET /P "LINE=Inserte el numero de linea que quiere visualizar:"

SED "%LINE%,%LINE%!d" file.txt

PAUSE

Espero que sea lo que necesitas...

Salu2!
Salu2!


En línea

sr_corsario

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: ¿Como Meter en variable una determinada linea de un archivo?
« Respuesta #2 en: 23 Noviembre 2009, 16:46 pm »

Gracias por responder.

Anoche... con el insomnio que tenía pensando en como lo podía hacer... se me ocurrió utilizar un programita llamado fcut (que corta cachos de archivo), lo utilicé para obtener una linea y crear el archivo de ella. Después, al solo tener una linea ya pude meterlo en variable... Seguidamente... copiaba lo que quedaba del archivo a otro e iniciaba el proceso hasta que me quedase sin datos en el archivo... no se si me explico...

bueno con esto:

Código:
@echo off

rem Con esto hago una copia del archivo original y utilizo la copia en las modificaciones
copy idlist.txt temp.bin
:ini
rem Le doy el valor 0 a la variable id
set id=0

rem Utilizo el programita fcut para cortar los 4 primeros bytes del archivo (cada linea son 4 bytes)
fcut /p1 /b0 /e4 temp.bin temp.001

rem Ahora obtengo el archivo menos la primera linea, por tanto cuando cada vez que se haga el proceso el archivo será cada vez mas pequeño
fcut /p1 /b6 temp.bin temp2.001

rem Meto el contenido de la linea (archivo obtenido arriba) en una variable
For /f "useback tokens=*" %%R in ("temp.001") do (set id=%%R)

if %id% EQU 0 del temp2.001
if %id% EQU 0 del temp.bin
if exist temp.001 del temp.001
if exist temp2.001 del temp.bin
if exist temp2.001 rename temp2.001 temp.bin

rem De esta manera termino si la variable me da 0
if %id% EQU 0 goto end

rem Con esto creo el archivo con contenido y nombre de variable
echo %id%>%id%.txt


rem Esta parte es para lo que necesito la variable
:****************************************
:Editando el valor del id
:****************************************
:Valores en el 3force.dol (el triiforce.dol que va en la SD/usb)

set idposition=294704
set /a idfin=%idposition%+4
:******************************************



fcut /p1 /b0 /e%idposition% 3force.dol ini.001
fcut /p1 /b%idfin% 3force.dol fin.001
fcut /p1 /b0 /e4 %id%.txt %id%.001

copy /b ini.001+%id%.001+fin.001 %id%.dol
if exist %id%.001 del %id%.001
if exist %id%.txt del %id%.txt
if exist fin.001 del fin.001
if exist ini.001 del ini.001

:********************************************


goto ini

:end

cls


Pero claro... lo que no quería era utilizar otra aplicación externa... pero bueno... de todas maneras utilizo el fcut para la otra parte...

Gracias
En línea

bolivianito

Desconectado Desconectado

Mensajes: 41



Ver Perfil
Re: ¿Como Meter en variable una determinada linea de un archivo?
« Respuesta #3 en: 24 Noviembre 2009, 12:37 pm »

Código:
SET /P "linea=Inserte el numero de linea que quiere visualizar:"
set /a linea=%linea%-1


if %linea%==0 (FOR /F  %%A IN (c:\data.txt) DO (echo %%A&goto fin) )
FOR /F "skip=%linea%" %%A IN (c:\data.txt) DO (echo %%A&goto fin)


:fin
pause>nul


En línea

sr_corsario

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: ¿Como Meter en variable una determinada linea de un archivo?
« Respuesta #4 en: 24 Noviembre 2009, 15:20 pm »

Graciass!

Voy a ver si hago un apaño con esto!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Duda] Extraer determinada linea de archivo « 1 2 »
Scripting
galmito 11 8,571 Último mensaje 31 Enero 2011, 07:58 am
por leogtz
C# Leer y guardar cada linea de un archivo .txt en una nueva variable
.NET (C#, VB.NET, ASP)
extreme69 6 29,290 Último mensaje 22 Julio 2011, 00:54 am
por $Edu$
Como encontrar los Calls a una determinada direccion?
Ingeniería Inversa
x64core 3 2,749 Último mensaje 15 Julio 2012, 04:04 am
por apuromafo CLS
No recibo la variable num_usuario de archivo js a archivo php
Java
madri09 0 2,058 Último mensaje 4 Octubre 2012, 10:01 am
por madri09
Como Leer Determinada linea de un TXT?
.NET (C#, VB.NET, ASP)
_CrisiS_ 1 3,389 Último mensaje 25 Diciembre 2017, 14:22 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines