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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Acciones sobre archivos de texto. [Batch]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ... 35 Ir Abajo Respuesta Imprimir
Autor Tema: Acciones sobre archivos de texto. [Batch]  (Leído 443,225 veces)
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #150 en: 8 Julio 2011, 06:19 am »

el código que te dije yo si que funciona al decir cuantas palabras "depresión" encuentra, pero ten en cuenta que si alguna NO tiene acento en la "ó" pues obviamente entonces esa no la va a contar.

saludos


En línea

No he vuelto, solo estoy de paso.
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #151 en: 8 Julio 2011, 06:49 am »

El error debe estar en el manejo del acento.


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
PTT69

Desconectado Desconectado

Mensajes: 5



Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #152 en: 8 Julio 2011, 10:00 am »

jajaja no me entienden la pregunta...  :-[

tonce busquen la palabra la, si da igual eso, a lo que voy
es que me tome todo el código, todo, es decir, termina de buscar
la palabra "X" y pasa a la siguiente función....

el problema es pasar a la siguiente función sin error  :-\
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #153 en: 8 Julio 2011, 17:39 pm »

A ver así:

Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3.  
  4. rem Puedes cambir texto.txt por el archivo que quieras.
  5.  
  6. for /f "Tokens=*" %%a in ('type texto.txt') do (
  7. set linea=%%a
  8. set linea=!linea:depresión=DEPRESION!
  9. call :show !linea!
  10. )
  11.  
  12. goto:lineas
  13.  
  14. :show
  15. echo %*
  16. goto:eof
  17.  
  18. :lineas
  19. echo Total lineas:
  20. type .\texto.txt | find /v /c ""
  21.  
  22. :repetido
  23. echo Palabra "Depresi¢n" Sale:
  24. type texto.txt | find /i /c "depresión"
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
wigo69

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #154 en: 8 Julio 2011, 17:40 pm »

ola leo te escribo por que tengo un problema tengo el codigo final con todos los pasos pero cuando quiero partir el texto inicial en dos me crea 2 subtextos con mas codigo del debido por ejemplo tengo texto1.txt con 10 lineas de codigo y deceo partilas en 2 de 5 lineas como te dije pero me crea dos subtextos con 20 lineas cada uno xD te muestro mi codigo final


Código
  1. 7za.exe a -tzip original.%date:~-4,4%%date:~-7,2%%date:~0,2%.txt.zip -mx9 -r  texto.txt
  2. echo se ha guardado un archivo comprimido
  3.  
  4. @echo off
  5.  
  6. setlocal enabledelayedexpansion
  7. echo Codigo Rene toledo flores y Alexis Maureira s. Hackers
  8.  
  9. echo Cantidad de lineas totales:
  10. type texto.txt | find /v /c "" < texto.txt
  11.  
  12. echo Lineas donde se encuentra version
  13. type texto.txt | find /i /c "version"
  14.  
  15.  
  16.  
  17. for /f "tokens=* delims=" %%x in (texto.txt) do (
  18. set linea=%%x
  19. set linea=!linea:version=VERSION!
  20. call :show !linea!
  21. )
  22. echo se a generado uno texto  y la Version ha sido cambiada y lineas en blanco eliminadas:
  23.  
  24.  
  25.  
  26. echo Cantidad de lineas totales:
  27. type textomodificado.txt | find /v /c "" < textomodificado.txt
  28.  
  29.  
  30. goto:eof
  31. :show
  32. echo %* >> textomodificado.txt
  33.  
  34.  
  35.  
  36. for /f %%_ in ('type textomodificado.txt ^| find /v /c ""') do set /a n_lines=%%_, medio=n_lines / 2
  37. set i=0
  38. for /f "tokens=*" %%_ in (textomodificado.txt) do (
  39. set /a i+=1
  40. if !i! leq !medio! (echo %%_ >> parte1.txt) else (echo %%_ >> parte2.txt)
  41. )
  42.  
  43.  
  44. goto:eof

muchas gracias de antemano
« Última modificación: 8 Julio 2011, 17:44 pm por Leo Gutiérrez. » En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #155 en: 8 Julio 2011, 17:45 pm »

Coloquen el contenido de los archivos de texto que están usando.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
wigo69

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #156 en: 8 Julio 2011, 17:48 pm »

texto.txt
asdasd
asdasd
asdsad
asdsad
asdsad
11111
22222
33333
44444
55555
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #157 en: 8 Julio 2011, 21:34 pm »

A ver, veamos, hagamos la prueba con el siguiente texto.txt:

Citar
asdasd
asdasd
asdsad
asdsad
asdsad
11111
22222
33333
44444
55555
version

Hay que cambiar "version" por "VERSION".

Usando el siguiente código:
Código
  1. @echo off
  2.  
  3. setlocal enabledelayedexpansion
  4. echo Codigo Rene toledo flores y Alexis Maureira s. Hackers
  5.  
  6. echo Cantidad de lineas totales:
  7. type texto.txt | find /v /c ""
  8.  
  9. echo Lineas donde se encuentra version
  10. type texto.txt | find /i /c "version"
  11.  
  12. for /f "tokens=* delims=" %%x in (texto.txt) do (
  13. set linea=%%x
  14. set linea=!linea:version=VERSION!
  15. call :show !linea!
  16. )
  17. echo Se a generado uno texto  y la Version ha sido cambiada y lineas en blanco eliminadas:
  18.  
  19. echo Cantidad de lineas totales:
  20. type textomodificado.txt | find /v /c ""
  21.  
  22. goto:dividir
  23.  
  24. :show
  25. echo %* >> textomodificado.txt
  26. goto:eof
  27.  
  28. :dividir
  29. for /f %%_ in ('type textomodificado.txt ^| find /v /c ""') do set /a n_lines=%%_, medio=n_lines / 2
  30. set i=0
  31. for /f "tokens=*" %%_ in (textomodificado.txt) do (
  32. set /a i+=1
  33. if !i! leq !medio! (echo %%_ >> parte1.txt) else (echo %%_ >> parte2.txt)
  34. )
  35. exit /b 0

Nos da el siguiente resultado:

Código:
Codigo Rene toledo flores y Alexis Maureira s. Hackers
Cantidad de lineas totales:
11
Lineas donde se encuentra version
1
Se a generado uno texto  y la Version ha sido cambiada y lineas en blanco elimin
adas:
Cantidad de lineas totales:
11

textomodificado.txt:

Código:
asdasd 
asdasd
asdsad
asdsad
asdsad
11111
22222
33333
44444
55555
VERSION

parte1.txt

Código:
asdasd  
asdasd 
asdsad 
asdsad 
asdsad 

parte2.txt

Código:
11111  
22222 
33333 
44444 
55555 
VERSION 

Listo, funciona.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
oloco

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #158 en: 20 Julio 2011, 21:32 pm »

Hola a tod@s.
Llevo días dándole vueltas a un problema con un script y he visto este post. Lo he leido enteramente y he visto cosas muy interesantes, pero nada que se asemeje a mi problema:
Utilizo sqlcmd para consultar una tabla llamada familia en una BD SQL, y el resultado lo redirecciono a un fichero de texto llamado familia.txt
este es el formato que me devuelve:

Código:
szfamilyname      
--------------------
HMAR          
HTERESA
HLUZ                

(3 rows affected)

(todos los nombres que me interesan empezarán por H)
Con el comando findstr /I "H" familia.txt > contador.txt puedo sacar la información que me importa al fichero contador.txt

Bien. El problema es que hay muchas bases de datos, y cada una de ellas me devuelve un número diferente de valores, aunque todos los nombres empiezan por H también. Por ejemplo, si consulto la misma tabla szfamilyname en otra BBDD, el resultado podría ser:

Código:
szfamilyname      
--------------------
HEMILIO            
HRODRIGO
HCARMEN
HLORENA            

(4 rows affected)

Lo que me interesa es poder crear un script de forma tal que cada vez que consulto la tabla en cualquier base de datos, me cree una variable cuyo contenido sea el nombre de cada valor que devuelve. Lo complicado de todo esto, es que el número de valores puede variar en cada BBDD, por lo que seguramente tenga que crear algún tipo de contador que lea las lineas del fichero contador.txt y de alguna forma cree una variable con el nombre que aparece en cada linea (sean cuantas sean las lineas). ´
Estoy seguro de que me he expresado bastante mal, así que voy a tratar de exponerlo de una forma más amena con un ejemplo:

Mi aplicación necesita consultar el libro de familia (la BBDD) para poder acceder a la información del número de hij@s que hay (tabla szfamilyname). Con cada nombre existente en cada lista que dicha tabla me reporte, quiero crear una variable para más tarde poder operar con ella (estaría genial poder llamar a cada variable con el mismo nombre que su propio valor, pero eso es lo de menos)

Hasta el momento no me había encontrado con ningún problema similar (he tenido que utilizar un código sacado de aquí para poder contar el número de lineas que tiene un fichero y después operar con él), pero creo que aquí el kid del problema es cómo hacer para que, independientemente del número de "hij@s" que exista, se cree una variable con su nombre.

Espero entre tod@s podais ayudarme.
Un saludo, y mil gracias por adelantado!!!

P.D por cierto, si pensais que existe otra manera diferente y más sencilla de hacer lo que necesito sin tener que usar ficheros de texto, sentiros en libertad de cambiar mi post a otro sitio.
« Última modificación: 21 Julio 2011, 07:55 am por Leo Gutiérrez. » En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Acciones sobre archivos de texto. [Batch]
« Respuesta #159 en: 20 Julio 2011, 22:01 pm »

En un rato checo tu duda.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ... 35 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Modificar archivos de texto [batch] [Perl] « 1 2 »
Scripting
bjeli1980 10 13,674 Último mensaje 17 Mayo 2010, 09:07 am
por bjeli1980
[BATCH] Ayuda guardando archivos de texto a php
Scripting
Geormarsch 2 4,327 Último mensaje 20 Septiembre 2011, 16:33 pm
por Poderoscuro1207
[BATCH] [APORTE] Rutina TEXTMAN para manipular archivos de texto
Scripting
Eleкtro 2 8,045 Último mensaje 15 Marzo 2014, 15:17 pm
por FranciskoAsdf
Como puedo arrastrar y concatenar archivos de texto en un BATCH
Scripting
PUCH84 6 9,942 Último mensaje 28 Abril 2014, 09:49 am
por PUCH84
Ayuda con batch para crear archivos de texto plano
Scripting
seu230 6 3,086 Último mensaje 5 Octubre 2018, 10:28 am
por seu230
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines