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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Substitución de texto a partir de etiquetas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Substitución de texto a partir de etiquetas  (Leído 3,809 veces)
faddlenope

Desconectado Desconectado

Mensajes: 16



Ver Perfil
Substitución de texto a partir de etiquetas
« en: 2 Diciembre 2014, 20:58 pm »

Apreciados lectores,

Voy un poco perdido para realizar un script que aparentemente no creo que tenga complicación. Sin embargo, expongo mi problemática y a partir de allí buscamos una solución factible.

El formato de archivo es .pgn este formato es usado para almacenar partidas de ajedrez.
El archivo 1 contiene las partidas con el nombre, la ronda, la fecha, el evento... tal que así:

Código:
[Event "BALI A 2014"]
[Site "?"]
[Date "2014.12.02"]
[Round "5.2"]
[White "Jugador, 1"]
[Black "Jugador, 2"]
[Result "1-0"]
[LiveChessVersion "1.4.2"]
[BlackElo "2236"]
[WhiteElo "2228"]
[ECO "C05"]

1. e4 e6 2. d4 d5 3. Nd2 Nf6 4. e5 Nfd7 5. f4 c5 6. c3 Nc6 7. Ndf3 Qb6 8. g3 cxd4
9. cxd4 Bb4+ 10. Kf2 f6 11. Kg2 Be7 12. Bd3 Nf8 13. Ne2 Bd7 14. a3 O-O-O 15. b4
Be8 16. Be3 Bg6 17. Nc3 Bxd3 18. Qxd3 fxe5 19. fxe5 Ng6 20. Rac1 Kd7 21. Rhf1
Rdf8 22. h4 Re8 23. b5 Nd8 24. Bd2 Nf7 25. Nxd5 exd5 26. Qf5+ Qe6 27. Rc7+ Kxc7
28. Qxe6 1-0

[Event "BALI A 2014"]
[Site "?"]
[Date "2014.12.02"]
[Round "5.3"]
[White "Jugador, 3"]
[Black "Jugador, 4"]
[Result "1-0"]
[LiveChessVersion "1.4.2"]
[BlackElo "2192"]
[WhiteElo "2181"]
[ECO "B44"]

1. e4 c5 2. Nf3 Nc6 3. d4 cxd4 4. Nxd4 e6 5. Nb5 Nf6 6. N1c3 d6 7. Bf4 e5 8. Bg5
a6 9. Na3 Be7 10. Nc4 Be6 11. Bxf6 gxf6 12. Ne3 Bf8 13. Qh5 Nd4 14. Bd3 Rc8 15.
O-O Rg8 16. Kh1 Rg6 17. Ncd5 Nc6 18. f4 exf4 19. Nxf4 Ne5 20. Nxg6 hxg6 21. Qh8
Qb6 22. Nd5 Bxd5 23. exd5 f5 24. b3 Rc5 25. Rfe1 Rxd5 26. Bc4 Rd2 27. Qf6 Qc7 28.
Rad1 Rxd1 29. Rxd1 Be7 30. Qh8+ Kd7 31. Qxe5 1-0


Mi intención es crear un script que coja el apartado [Result], y así como las jugadas de cada partida y lo substituya en el archivo 2 que tiene el mismo formato pero completo: Un ejemplo:

Código:
[Event "TORNEO X"]
[Site "BARCELONA"]
[Date "2014.12.02"]
[Round "5.1"]
[White "Jugador, 1"]
[Black "Jugador, 2"]
[Result "*"]
[ECO "A00"]
[WhiteElo "2270"]
[BlackElo "2258"]
[PlyCount "0"]
[EventDate "2014.11.28"]

*

[Event "TORNEO X"]
[Site "BARCELONA"]
[Date "2014.12.02"]
[Round "5.2"]
[White "Jugador, 3"]
[Black "Jugador, 4"]
[Result "*"]
[ECO "A00"]
[WhiteElo "2228"]
[BlackElo "2236"]
[PlyCount "0"]
[EventDate "2014.11.28"]

*


Como podéis ver, el nombre de los jugadores ya esta puesto solo falta los apartados que tienen asterisco, el asterisco ya viene en el archivo 2 de serie, así que hay que COPIAR la parte del archivo 1 que corresponde a los asteriscos del archivo 2.

Tengo conocimientos de Batch, HTML5, CSS3, PHP, y algo de Phyton.
Sin embargo no soy capaz de idear el script.

Puede haber infinitas partidas. Cada partida tiene el los campos:
Código:
[Event "TORNEO X"]
[Site "BARCELONA"]
[Date "2014.12.02"]
[Round "5.2"]
[White "Jugador, 3"]
[Black "Jugador, 4"]
[Result "*"]
[ECO "A00"]
[WhiteElo "2228"]
[BlackElo "2236"]
[PlyCount "0"]
[EventDate "2014.11.28"]

Siento no poder aportar mas conocimientos o información, si me podeis iluminar un poco lo agradecería.

Atentamente:

Faddlenope


En línea

daryo


Desconectado Desconectado

Mensajes: 1.070



Ver Perfil WWW
Re: Substitución de texto a partir de etiquetas
« Respuesta #1 en: 2 Diciembre 2014, 21:13 pm »

te serian muy utiles las expresiones regulares
http://mundogeek.net/archivos/2008/04/09/python-expresiones-regulares/


En línea

buenas
faddlenope

Desconectado Desconectado

Mensajes: 16



Ver Perfil
Re: Substitución de texto a partir de etiquetas
« Respuesta #2 en: 3 Diciembre 2014, 12:25 pm »

Muchas gracias por la información.  ;D

Más ideas?  ;-) ;-) ;-) ;-)
En línea

explorer

Desconectado Desconectado

Mensajes: 101


Analista/Programador Perl


Ver Perfil
Re: Substitución de texto a partir de etiquetas
« Respuesta #3 en: 3 Diciembre 2014, 13:08 pm »

Con el módulo Chess::Png de Perl lo tienes muy sencillo:

Código
  1. use Chess::Pgn;
  2. $p = new Chess::Pgn("2KTSDEF.PGN" ) || die "2KTSDEF.PGN not found";
  3. while ( $p->ReadGame )
  4. {
  5.  print $p->white ,"<=>",$p->black, "\n";
  6. }
  7. $p->quit();
  8.  
  9. $p->white(Kouatly);
  10. $p->black(Kasparov);

Por ejemplo, para sacar el resultado, sería tan sencillo como

Código
  1. print $p->result;
« Última modificación: 4 Diciembre 2014, 13:00 pm por explorer » En línea

faddlenope

Desconectado Desconectado

Mensajes: 16



Ver Perfil
Re: Substitución de texto a partir de etiquetas
« Respuesta #4 en: 3 Diciembre 2014, 20:39 pm »

Lo siento pero de Pearl voy muy perdido.

Me podrias realizar un pequeño esbozo?

Creo que el link está caido.

Muchas gracias por vuestros comentarios.

Saludos.
En línea

fary


Desconectado Desconectado

Mensajes: 1.062



Ver Perfil WWW
Re: Substitución de texto a partir de etiquetas
« Respuesta #5 en: 3 Diciembre 2014, 20:49 pm »

http://search.cpan.org/~maire/Chess-Pgn-0.03/Pgn.pm

Es ese el enlace.

En línea

Un byte a la izquierda.
faddlenope

Desconectado Desconectado

Mensajes: 16



Ver Perfil
Re: Substitución de texto a partir de etiquetas
« Respuesta #6 en: 9 Diciembre 2014, 17:31 pm »

No me aclaro con Pearl, alguna idea?  :(
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.813



Ver Perfil
Re: Substitución de texto a partir de etiquetas
« Respuesta #7 en: 9 Diciembre 2014, 18:37 pm »

Te sería mucho más sencillo si en lugar de usar asteriscos, los reemplazases por palabras clave (keywords):

Código:
[Result "%RESULT%"]
[ECO "%ECO%"]

%JUGADA%
...etc

Y así, después de haber capturado los valores del archivo 1 con una o varias expresiones regulares, solo tendrías que hacer un simple reemplazamiento de palabras en el archivo 2, consiguiendo una notable mejora de rendimiento.

Saludos!
En línea

faddlenope

Desconectado Desconectado

Mensajes: 16



Ver Perfil
Re:
« Respuesta #8 en: 16 Enero 2015, 22:10 pm »

Gracias Elektro!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Crear una lista a partir de un texto
Programación Visual Basic
Snort 7 2,298 Último mensaje 19 Noviembre 2006, 11:05 am
por Snort
Sobre la substitucion del canon en España
Foro Libre
crazykenny 0 1,333 Último mensaje 26 Agosto 2011, 18:55 pm
por crazykenny
Crea carpetas en Windows a partir de un archivo de texto con Text 2 folder
Noticias
wolfbcn 0 2,150 Último mensaje 30 Octubre 2011, 02:03 am
por wolfbcn
Formulario con efecto interesante de Etiquetas sobre los campos de texto
PHP
Graphixx 1 2,044 Último mensaje 22 Marzo 2012, 03:49 am
por Shell Root
meter datos en una tabla a partir de texto con PHP « 1 2 »
Scripting
santi810 10 5,846 Último mensaje 8 Junio 2014, 20:20 pm
por daryo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines