Autor Tema: Buscar cadena en archivo de texto y duplicarla  (Leído 2304 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado cubelindo

  • VIP
  • *
  • Mensajes: 367
  • Gracias 36
  • AYB Society
  • Ciudad: Madrid
  • Pais: España
Buscar cadena en archivo de texto y duplicarla
« en: Diciembre 31, 2016, 01:08:00 pm »
Advertisement

Hola! A ver si alguien puede echarme una mano.

Estoy modificando los archivos gamelist.xml de RetroPie. En concreto quiero sacar del .Dat del romset el nombre de la rom, nombre completo, algunos datos como fecha, fabricante, etc... y poner el link a la imagen in-game.

Pues ya tengo "casi" todo utilizando algunos programas como datutil, al final me queda algo como:

Código: [Seleccionar]
<game>
<path>./11beat.zip</path>
<name>Eleven Beat</name>
</game>

lo que necesito es automatizar la búsqueda de la cadena <path>./CADENA_ALFANUMERICA.zip</path>

y una vez la encuentre, pegue a continuación de </path>

Código: [Seleccionar]
<image>./boxart/CADENA_ALFANUMERICA.png</image>
y siga la búsqueda recurrente hasta el final. Cada conjunto <game> debe quedar:

Código: [Seleccionar]
<game>
<path>./11beat.zip</path>
<name>Eleven Beat</name>
                <image>./boxart/11beat.png</image>
</game>

Con editores con búsqueda de expresiones regulares es muy fácil detectar la cadena, pero no sustituirla por algo "variable"

A ver si a alguien se le ocurre algo  :(


Member of AYB Society

Desconectado Josepzin

  • VIP
  • *
  • Mensajes: 2219
  • Gracias 38
  • Habitacus!
    • Blog
  • Ciudad: Carthago Miriya
  • Pais: Argentina
Re:Buscar cadena en archivo de texto y duplicarla
« Respuesta #1 en: Diciembre 31, 2016, 01:20:05 pm »
Con cualquier lenguaje se podría hacer facilmente, por ejemplo PHP que lo uso para web.

Si nadie te da una solución ya veo qué puedo hacer.

Desconectado cubelindo

  • VIP
  • *
  • Mensajes: 367
  • Gracias 36
  • AYB Society
  • Ciudad: Madrid
  • Pais: España
Re:Buscar cadena en archivo de texto y duplicarla
« Respuesta #2 en: Diciembre 31, 2016, 01:54:06 pm »

Pues un programita que pueda invocar con línea de comando tipo:

duplicar.exe gamelist.xml gamelist-mod.xml

sería fantástico, después de todo siempre es buscar <path>./CADENA_ALFANUMERICA.zip</path>


En MAME y FB no pasa, pero si te pones que la cadena pueda tener ()[].- y cosas así
Member of AYB Society

Desconectado hechelion

  • El amo de los recres
  • ****
  • Mensajes: 1371
  • Gracias 88
    • feudo
  • Ciudad: Houston
  • Pais: USA
  • Iniciales nick: HEC
Re:Buscar cadena en archivo de texto y duplicarla
« Respuesta #3 en: Enero 02, 2017, 08:18:34 am »
Asumo que esto es para windows y además no tienes Python instalado. no?

si es para linux o si tienes python (2.7 o 3.4) te puedo pasar un script para eso.

Desconectado Oberworld

  • Jugando Partida
  • ***
  • Mensajes: 236
  • Gracias 29
  • Ciudad: Sur de España
  • Pais: España
  • Iniciales nick: NIS
Re:Buscar cadena en archivo de texto y duplicarla
« Respuesta #4 en: Enero 02, 2017, 11:07:18 am »
Código: [Seleccionar]
$doc = [xml] (Get-Content -raw gamelist.xml)

foreach ($gameEl in $doc.DocumentElement.game) {
  # Use -replace to extract the filename without extension from the
  # path contained in the <path> element.
  $gameName = $gameEl.path -replace '^.*/(.*)\..*$', '$1'
  # Append elements 'image', but only if they don't already
  # exist.
  if ($null -eq $gameEl.video) {
    $gameEl.AppendChild($doc.CreateElement('image')).InnerText = "./boxart/${gameName}.png"
  }
}

$writer = [System.IO.StreamWriter] "newFile.xml"
$doc.Save($writer)
$writer.Close()

Renombras la extensión a ps1 y luego le das con el botón derecho del ratón y ejecutar con powershell.

Debe estar en la misma carpeta que el gamelist, te creará un archivo newFile.xml con los cambios.

Creo que es mejor que nada. Es lo que yo uso para añadir los videos en mis gamelist.

Ah, y solo añadirá el tag image si no existe ya.
« Última modificación: Febrero 11, 2017, 12:23:26 am por Oberworld »

Desconectado cubelindo

  • VIP
  • *
  • Mensajes: 367
  • Gracias 36
  • AYB Society
  • Ciudad: Madrid
  • Pais: España
Re:Buscar cadena en archivo de texto y duplicarla
« Respuesta #5 en: Enero 02, 2017, 11:20:57 pm »

FANTÁSTICO!!!!

Feliz no, lo siguiente!

Con la cantidad de usuarios de RetroPie que hay por ahí y que esto no esté resuelto!  ???
Member of AYB Society

Desconectado Oberworld

  • Jugando Partida
  • ***
  • Mensajes: 236
  • Gracias 29
  • Ciudad: Sur de España
  • Pais: España
  • Iniciales nick: NIS
Re:Buscar cadena en archivo de texto y duplicarla
« Respuesta #6 en: Enero 02, 2017, 11:54:49 pm »
Lo he posteado en el foro de retropie uk, mi nombre allí es nismo, pero aquí ya estaba ocupado.

Me alegro de que te sirva. Y no, no tengo raspberry pí, uso emulationstation para windows.

Un saludo.

Desconectado cubelindo

  • VIP
  • *
  • Mensajes: 367
  • Gracias 36
  • AYB Society
  • Ciudad: Madrid
  • Pais: España
Re:Buscar cadena en archivo de texto y duplicarla
« Respuesta #7 en: Enero 03, 2017, 02:12:36 pm »
Lo he posteado en el foro de retropie uk, mi nombre allí es nismo, pero aquí ya estaba ocupado.

Me alegro de que te sirva. Y no, no tengo raspberry pí, uso emulationstation para windows.

Un saludo.

Pues no sabes el tiempo que llevaba dándole vueltas a este asunto. Habré probado, sin exagerar, 27000 scrapers.
El propio MAME te genera un DAT con el nombre completo de todas las roms, con clones y parents, pero parece que eso no lo utiliza nadie ¿? Yo he tenido que partir de eso, utilizar una aplicación (datutil) para convertirlo a un XML estándar ordenado alfabéticamente y sin clones, luego modificarlo para ajustarlo a la sintaxis correcta con NotepadRE, luego el Machimatch para seleccionar las snaps de un pack completo, y luego tu script para poner esa línea de la imagen.
Member of AYB Society

Desconectado Oberworld

  • Jugando Partida
  • ***
  • Mensajes: 236
  • Gracias 29
  • Ciudad: Sur de España
  • Pais: España
  • Iniciales nick: NIS
Re:Buscar cadena en archivo de texto y duplicarla
« Respuesta #8 en: Enero 03, 2017, 02:33:47 pm »
Pues nada me alegro que al final hayas logrado lo que buscabas y que te haya sido útil.

Desconectado cubelindo

  • VIP
  • *
  • Mensajes: 367
  • Gracias 36
  • AYB Society
  • Ciudad: Madrid
  • Pais: España
Re:Buscar cadena en archivo de texto y duplicarla
« Respuesta #9 en: Enero 04, 2017, 08:52:41 pm »

Bueno el script de Oberworld es estupendo!

Ya me he puesto imágenes en MAME y FBA. He detectado una situación en la que no funciona bien, y es cuando en el campo <name> hay un caracter "&"

Basta con sustituirlo (yo lo hice por !AND! para poder recuperarlo bien luego) pasar el script y volverlo a poner (con el típico search and replace)
 
Member of AYB Society

Desconectado Oberworld

  • Jugando Partida
  • ***
  • Mensajes: 236
  • Gracias 29
  • Ciudad: Sur de España
  • Pais: España
  • Iniciales nick: NIS
Re:Buscar cadena en archivo de texto y duplicarla
« Respuesta #10 en: Enero 04, 2017, 09:26:33 pm »
Me alegro que lo hayas solucionado, siento no haber tenido tiempo de mirartelo antes... soy nuevo en el foro y no me doy cuenta cuando tengo un privado...

El script no lo hice yo, lo hicieron para mí, pero vamos es bastante claro como funciona así que lo adapté para tus imagenes, como ya dije yo lo uso para agregar los videos a los gamelist de emulationstation...
« Última modificación: Enero 04, 2017, 09:37:46 pm por Oberworld »

Desconectado cubelindo

  • VIP
  • *
  • Mensajes: 367
  • Gracias 36
  • AYB Society
  • Ciudad: Madrid
  • Pais: España
Re:Buscar cadena en archivo de texto y duplicarla
« Respuesta #11 en: Enero 05, 2017, 10:58:11 am »
siento no haber tenido tiempo de mirartelo antes... soy nuevo en el foro y no me doy cuenta cuando tengo un privado...


Vamos no te preocupes lo más mínimo, todos tenemos una vida y a estas cosas le podemos dedicar un ratito si acaso. Yo pregunto pero sigo buscando porque soy un cagaprisas  ;)
He puesto el comentario por si alguien más usa tu script, para que tome precauciones.
Member of AYB Society

Desconectado Oberworld

  • Jugando Partida
  • ***
  • Mensajes: 236
  • Gracias 29
  • Ciudad: Sur de España
  • Pais: España
  • Iniciales nick: NIS
Re:Buscar cadena en archivo de texto y duplicarla
« Respuesta #12 en: Febrero 11, 2017, 12:25:31 am »
Bueno el script de Oberworld es estupendo!

Ahora está mejor, he editado el post que contiene el script y ahora está solucionado el error que se "comia" los caracteres después del un punto en el nombre del archivo.

Si aún utilizas el script o lo tienes guardado por ahí seguro que querrás actualizarlo.

Un saludo.

 


* iojukebox Theme, un JukeBox para Attract-Mode  Autor: gucaza Foro: Themes AM 04/05/2024 (02:47)
* Salón Recreativo #55 (27-04-2024 / 26-05-2024)  Autor: jordani11 Foro: Salón Recreativo FaseBonus 03/05/2024 (23:29)
* Nuevo miniPc para mi vieja recre y juegos Windows compatibles formato 4:3  Autor: jmpuk Foro: Offtopic 02/05/2024 (23:31)
* Homenaje a Locomalito  Autor: beaches Foro: Otros programas 02/05/2024 (23:03)
* La inteligencia artificial ha llegado a la música  Autor: jmpuk Foro: Offtopic 02/05/2024 (21:45)
* [N3DS] Red Viper - Emulando Virtual Boy como Dios manda  Autor: Zael Foro: Noticias de emuladores 02/05/2024 (21:06)
* [Recomendación] Cine para los findes en casa (bueno, bonito y barato)  Autor: arquillos Foro: Offtopic 02/05/2024 (09:39)
* ¿A qué estáis jugando ahora mismo?  Autor: joselopez Foro: Offtopic 02/05/2024 (04:07)
* [Recomendacion] Series para ver  Autor: jmpuk Foro: Offtopic 01/05/2024 (21:54)
* Etpa8: El Reino Subterráneo  Autor: jmpuk Foro: ZX Spectrum 01/05/2024 (21:49)
* Stop the express  Autor: jmpuk Foro: ZX Spectrum 01/05/2024 (21:29)
* Amiga Games + 1.9.2  Autor: empardopo Foro: Emuladores 01/05/2024 (20:58)
* West Bank para ZX Spectrum  Autor: empardopo Foro: ZX Spectrum 01/05/2024 (20:07)
* Recopilatorio Retos: Desde el 1 hasta .....  Autor: Zael Foro: Competiciones y concursos 29/04/2024 (23:59)
* Info sobre MARP  Autor: Zael Foro: Records y wolfmame 29/04/2024 (23:45)
* Patrocinador para el foro ArcadeSpain  Autor: empardopo Foro: Noticias 29/04/2024 (19:37)
* Retro 320 - Wizard of wor  Autor: empardopo Foro: Competiciones y concursos 29/04/2024 (19:29)
* Aprende a hacerte un PORTABLE de tu juego arcade favorito  Autor: empardopo Foro: Records y wolfmame 29/04/2024 (19:27)
* Screenshot de empardopo  Autor: empardopo Foro: Otros programas 24/04/2024 (19:42)
* Concurso Bytemaniacos 2025  Autor: empardopo Foro: Creación de juegos 23/04/2024 (21:46)
* Retro Portable Maker ArcadeSpain (RPMA)  Autor: empardopo Foro: Otros programas 21/04/2024 (19:16)
* Van dos y se cae el del medio - Hilo de cachondeo general  Autor: empardopo Foro: Offtopic 21/04/2024 (18:47)
* Hacer fondos de pantalla con Excel para Spectrum  Autor: empardopo Foro: Creación de juegos 18/04/2024 (19:33)
* Salón Recreativo FaseBonus - Preparativos y Sugerencias  Autor: Zael Foro: Salón Recreativo FaseBonus 17/04/2024 (00:17)
* Retropixel 2024  Autor: Zael Foro: Eventos Arcades 14/04/2024 (12:24)
* Ofertas Amazon  Autor: empardopo Foro: Offtopic 11/04/2024 (20:29)
* Restauración Terminator 2 + LightGun Gun4IR  Autor: HeroTonma Foro: Diario de construccion de tu arcade 04/04/2024 (14:18)
* Ojo con telegram  Autor: Zael Foro: Noticias 29/03/2024 (19:30)
* Galería de fotos en ArcadeSpain - sube las fotos a nuestro servidor -  Autor: empardopo Foro: Noticias 24/03/2024 (16:49)
* Flipando con la desinformación en el caso del emulador Yuzu  Autor: Zael Foro: Offtopic 22/03/2024 (20:13)

Countdown
Buscaunchollo.click