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


 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Reto Batch]Buscame en el log
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [Reto Batch]Buscame en el log  (Leído 3,299 veces)
Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
[Reto Batch]Buscame en el log
« en: 17 Julio 2012, 12:31 »

Nombre:           Buscame en el log - Puntoinfinito
Dificultad:         5/10
Objetivo:          El reto consiste en crear un log donde has de almacenar las   discografías de algún grupo de música. Como por ejemplo, la de Guns and Roses;
Código:
Fecha de lanzamiento Álbum                Ventas en el mundo
21 de julio de 1987        Appetite for Destruction 60 millones
29 de noviembre de 1988 G N' R Lies                13.3 millones
17 de septiembre de 1991 Use Your Illusion I        26.4 millones
17 de septiembre de 1991 Use Your Illusion II         24.8 millones
23 de noviembre de 1993 The Spaghetti Incident? 6 millones
23 de noviembre de 2008 Chinese Democracy        22 millones
23 de noviembre de 1999 Live Era                        13 millones

Luego poner un menú en que el usuario pueda escoger el método de búsqueda (Por año, por nombre o por ventas). Y al poner dicho dato le salgan los demás.
  
  Pistas:           Todo vale
  Ejemplo:         Un ejemplo sería, el usuario decide buscar  por año, inserta 1993 y seguidamente le sale;

Código:
23 de noviembre de 1993 The Spaghetti Incident? 6 millones de ventas

SUERTE
 ;-)


« Última modificación: 17 Julio 2012, 16:51 por puntoinfinito » En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
Binary_Death

Desconectado Desconectado

Mensajes: 214



Ver Perfil
Re: [Reto Batch]Buscame en el log
« Respuesta #1 en: 17 Julio 2012, 17:18 »

¿La estructura del log ha de ser esa, o es libre?


En línea

Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Re: [Reto Batch]Buscame en el log
« Respuesta #2 en: 17 Julio 2012, 17:26 »

Libre, libre:)
En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
Binary_Death

Desconectado Desconectado

Mensajes: 214



Ver Perfil
Re: [Reto Batch]Buscame en el log
« Respuesta #3 en: 17 Julio 2012, 18:31 »

Aquí tienes  ;)

Código
  1. @echo off
  2. setlocal enableextensions enabledelayedexpansion
  3.  
  4. set "strpos=\<"
  5. 0<nul,more/c
  6. set/p "logfile=Log >> "
  7. if not exist "%logfile%" exit
  8.  
  9. :_main
  10. 0<nul,more/c
  11. echo: 1 - Search by year
  12. echo: 2 - Search by album
  13. echo: 3 - Search by sales
  14. set/p "opnum= >> " & echo+
  15. if %opnum% lss 1 goto :_main
  16. if %opnum% gtr 3 goto :_main
  17. call :_method[%opnum%]
  18. goto :_main
  19.  
  20. :_method[1]
  21. 0<nul,more/c
  22. set/p "year=Year >> "
  23. 1>nul,(echo.%year%|findstr /r "^[0-9]*$") || goto :_method[1]
  24. call :__search "%year%"
  25. pause 1>nul & goto :eof
  26.  
  27. :_method[2]
  28. 0<nul,more/c
  29. set/p "name=Album >> "
  30. 1>nul,(echo.%name%|findstr /i /r "^[a-z]*$") || goto :_method[2]
  31. set "strpos=" & call :__search "%name%"
  32. pause 1>nul & goto :eof
  33.  
  34. :_method[3]
  35. 0<nul,more/c
  36. set/p "sales=Number of sales >> "
  37. 1>nul,(echo.%sales%|findstr /r "^[0-9]*") || goto :_method[3]
  38. call :__search "%sales%"
  39. pause 1>nul & goto :eof
  40.  
  41. :__search
  42. set "ltok=.xyz"
  43. set "item=%%!ltok:~% style="color: #448888;">opnum%,1!"
  44. for /f "tokens=1,2,3 delims=# usebackq" %%x in (
  45. "%logfile%"
  46. ) do (
  47. 1>nul,(echo.%item%|findstr /i /r "%strpos%%~1.*") && (
  48. echo:%%x %%y %%z
  49. )
  50. )
  51. set "strpos=\<"
  52. goto :eof
  53.  

El log, tiene que tener los datos separados por #. Así:

Código:
21 de julio de 1987#Appetite for Destruction#60.00 millones
29 de noviembre de 1988#G N' R Lies#13.30 millones
17 de septiembre de 1991#Use Your Illusion I#26.40 millones
17 de septiembre de 1991#Use Your Illusion II#24.80 millones
23 de noviembre de 1993#The Spaghetti Incident?#6.00 millones
23 de noviembre de 2008#Chinese Democracy#22.00 millones
23 de noviembre de 1999#Live Era#13.00 millones

¡Un saludo!

EDIT: Ligeramente optimizado.
« Última modificación: 17 Julio 2012, 22:38 por Binary_Death » En línea

Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Re: [Reto Batch]Buscame en el log
« Respuesta #4 en: 17 Julio 2012, 18:41 »

Funciona;)

Yo hice uno que también funciona y es mucho más sencillo ; http://pastebin.com/x9SAfBgc

Y el log ha de contener esto;

Código:
21 de julio de 1987  - Appetite for Destruction   - 60 millones de ventas
29 de noviembre de 1988    - G N' R Lies  - 13.3 millones de ventas
17 de septiembre de 1991   - Use Your Illusion I  - 26.4 millones de ventas
17 de septiembre de 1991   - Use Your Illusion II  - 24.8 millones de ventas
23 de noviembre de 1993    - The Spaghetti Incident?    - 6 millones de ventas
23 de noviembre de 2008    - Chinese Democracy    - 22 millones de ventas
23 de noviembre de 1999    - Live Era   - 13 millones de ventas

(Separados por un -)

Saludos



En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
Binary_Death

Desconectado Desconectado

Mensajes: 214



Ver Perfil
Re: [Reto Batch]Buscame en el log
« Respuesta #5 en: 17 Julio 2012, 18:46 »

Sí, así queda más sencillo.
Pero ten en cuenta que es muy práctico que diferencie los datos de lo que estás buscando. Por ejemplo, si con mi código pones:

Código:
21 de julio de 1987#Appetite for Destruction#17 millones
29 de noviembre de 1988#G N' R Lies#13.30 millones
17 de septiembre de 1991#Use Your Illusion I#26.40 millones
17 de septiembre de 1991#Use Your Illusion II#217.80 millones
23 de noviembre de 1993#The Spaghetti Incident?#6.00 millones
23 de noviembre de 2008#Chinese Democracy#22.00 millones
17 de noviembre de 1999#Live Era#13.00 millones

Fíjate. Tenemos en la primera línea 17 millones de ventas. Tenemos en la última línea "17 de noviembre", y por otro lado tenemos en la cuarta línea 217.80 millones de ventas.

Si buscamos 17 por ventas, en mi código aparecerá sólo la primera línea, que es la que tiene 17 millones de ventas en sí. En tú código aparecería la primera, la última y la cuarta.

Si buscamos 17 por fecha, en mi código aparecería sólo la última, en el tuyo todas... y así sucesivamente.

Otra cosa curiosa, es que en mi código si buscamos 17 por ventas, no aparecerá el 217 millones de ventas. Eso es práctico, porque no es lo mismo 17 que 217, mother of obvious.

En resumen, que sacrifiqué un poco de simplicidad por una mayor exactitud en la búsqueda  :P
En línea

Novlucker
Ninja y
Moderador Global
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: [Reto Batch]Buscame en el log
« Respuesta #6 en: 17 Julio 2012, 18:56 »

Que pasa si se esta buscando por año, y el grupo tiene un disco que se llama como el año buscado.
Código:
21 de julio de 1987  - Appetite for Destruction   - 60 millones de ventas
29 de noviembre de 1988    - G N' R Lies  - 13.3 millones de ventas
17 de septiembre de 1991   - Use Your Illusion I  - 26.4 millones de ventas
17 de septiembre de 1991   - Use Your Illusion II  - 24.8 millones de ventas
23 de noviembre de 1993    - The Spaghetti Incident?    - 6 millones de ventas
23 de noviembre de 2008    - 1999    - 22 millones de ventas
23 de noviembre de 1999    - Live Era   - 13 millones de ventas

Que pasa si busco año 1999? :P

Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

Estaba comentando justamente eso
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Binary_Death

Desconectado Desconectado

Mensajes: 214



Ver Perfil
Re: [Reto Batch]Buscame en el log
« Respuesta #7 en: 17 Julio 2012, 18:59 »


En el caso de mi ejemplo, mostrará únicamente el álbum "Live Era", la última línea  :P
En línea

Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Re: [Reto Batch]Buscame en el log
« Respuesta #8 en: 17 Julio 2012, 19:05 »

Si, tienes toda la razon, mi code esta mal porque no se basa en un solo tema xD

Saludos
En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
Binary_Death

Desconectado Desconectado

Mensajes: 214



Ver Perfil
Re: [Reto Batch]Buscame en el log
« Respuesta #9 en: 17 Julio 2012, 19:12 »

Bueno... ahora falta ver más soluciones  :P se me ocurre otra, que es la que pensaba aplicar yo al principio.
Pista: dividir el log.

Fue por eso que te pregunté si se podía modificar la estructura, aunque al final no le hice gran cosa  :xD
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Reto Batch] Jugando con la IP I « 1 2 »
Scripting
Eleкtro 10 3,916 Último mensaje 10 Mayo 2012, 17:24
por 79137913
[Reto Batch] It's a dir? « 1 2 3 4 »
Scripting
Eleкtro 30 13,444 Último mensaje 31 Marzo 2014, 18:13
por Shell Root
[Reto Batch] IsFibonacciNumber (79137913) « 1 2 »
Scripting
Eleкtro 14 4,203 Último mensaje 22 Julio 2012, 03:00
por Binary_Death
[Reto Batch] Hex2Dec Batch Command « 1 2 »
Scripting
BatchianoISpyxolo 15 4,714 Último mensaje 22 Julio 2012, 06:00
por Binary_Death
[Reto Batch] VIRUS HELLO !! « 1 2 »
Scripting
Eleкtro 10 4,570 Último mensaje 22 Julio 2012, 00:32
por Binary_Death
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines