找回密码
 立即注册
搜索
查看: 706|回复: 23

[软件] 求教一个编辑gamelist.xml比较方便的方法

[复制链接]
发表于 2024-12-20 19:23 | 显示全部楼层 |阅读模式
最近在搞一个复古游戏的中文包,涉及到编辑gamelist.xml文件,遇到这样一个问题

首先,gamelist.xml里面的结构大概是这样的


<game>
                <path>./Sky Destroyer [红巾特攻队].nes</path>
                <name>Sky Destroyer</name>
                <desc>Sky Destroyer is an aerial combat game. Players take the role of a warplane that has to defeat various enemy combatants in the air and in the sea. The player's warplane is equipped with machine guns and can also fire off torpedoes. The main goal is to destroy a fortified island at the end of each scene by firing a torpedo at it.</desc>
                <releasedate>19851114T000000</releasedate>
                <developer>Taito</developer>
                <publisher>Taito</publisher>
                <genre>Shoot'em Up</genre>
                <players>1-2</players>
        </game>




我需要批量的把 <path>./Sky Destroyer [红巾特攻队].nes</path>里面[]部分的中文内容,复制替换掉<name>Sky Destroyer</name>,变成

<game>
                <path>./Sky Destroyer [红巾特攻队].nes</path>
                <name>红巾特攻队</name>
                <desc>Sky Destroyer is an aerial combat game. Players take the role of a warplane that has to defeat various enemy combatants in the air and in the sea. The player's warplane is equipped with machine guns and can also fire off torpedoes. The main goal is to destroy a fortified island at the end of each scene by firing a torpedo at it.</desc>
                <releasedate>19851114T000000</releasedate>
                <developer>Taito</developer>
                <publisher>Taito</publisher>
                <genre>Shoot'em Up</genre>
                <players>1-2</players>
        </game>

我应该怎么用什么编辑软件怎么做的才能避免上千次的重复劳动?

我现在用的编辑软件是sublimetext
回复

使用道具 举报

     
发表于 2024-12-20 19:28 | 显示全部楼层
让ai写个正则表达式
回复

使用道具 举报

     
发表于 2024-12-20 19:29 | 显示全部楼层
用正则表达式,怎么写问一下ai吧。
vscode最新版已经整合copilot,免费的。
回复

使用道具 举报

 楼主| 发表于 2024-12-20 19:52 | 显示全部楼层
精钢魔像 发表于 2024-12-20 19:29
用正则表达式,怎么写问一下ai吧。
vscode最新版已经整合copilot,免费的。

它让我用Python脚本,可惜我不会
回复

使用道具 举报

     
发表于 2024-12-20 19:59 | 显示全部楼层
本帖最后由 dccif 于 2024-12-20 20:14 编辑
赞美太阳啊 发表于 2024-12-20 19:52
它让我用Python脚本,可惜我不会


vscode下测试的

搜索模式:正则
  1. <path>(\./[^[]*\[(.*?)\].*?)</path>[\s\n]*<name>[^<]*</name>
复制代码


替换:
  1. <path>$1</path>\n\t<name>$2</name>
复制代码
回复

使用道具 举报

发表于 2024-12-20 20:02 来自手机 | 显示全部楼层
如果方括号只在这一个场景出现且name固定在path下一行的话应该可以用vim宏录制解决。
回复

使用道具 举报

发表于 2024-12-20 20:11 | 显示全部楼层
赞美太阳啊 发表于 2024-12-20 19:52
它让我用Python脚本,可惜我不会

可以先从配置运行环境开始,配置Python运行所需要的环境;
然后在gpt的辅助下 先实现文件的读入--->匹配你想要的内容--->替换并重新输出到文件
每个阶段都可以在前一个阶段的基础上改进,所以可以直接把代码复制扔给gpt,主要是花时间,应该不难
回复

使用道具 举报

     
发表于 2024-12-20 20:22 | 显示全部楼层
赞美太阳啊 发表于 2024-12-20 19:52
它让我用Python脚本,可惜我不会

不是,现在的编辑器的查找替换都支持用正则了
回复

使用道具 举报

 楼主| 发表于 2024-12-20 20:27 | 显示全部楼层
精钢魔像 发表于 2024-12-20 20:22
不是,现在的编辑器的查找替换都支持用正则了


厚颜无耻的想问问可以帮我直接改改吗?

gamelists.zip (471.59 KB, 下载次数: 7)


回复

使用道具 举报

     
发表于 2024-12-20 20:35 | 显示全部楼层
赞美太阳啊 发表于 2024-12-20 20:27
厚颜无耻的想问问可以帮我直接改改吗?

老兄,你这就过分了吧。。
回复

使用道具 举报

 楼主| 发表于 2024-12-20 20:36 | 显示全部楼层
谎称 发表于 2024-12-20 20:35
老兄,你这就过分了吧。。

可以死鱼酬谢,现金也可以
回复

使用道具 举报

发表于 2024-12-20 20:44 来自手机 | 显示全部楼层
你随便找一个稍微有点名气的文本编辑软件都应该支持正则表达式了啊
实在不行就用vsc
回复

使用道具 举报

 楼主| 发表于 2024-12-20 20:52 | 显示全部楼层
蜇灵 发表于 2024-12-20 20:44
你随便找一个稍微有点名气的文本编辑软件都应该支持正则表达式了啊
实在不行就用vsc ...

啊,我好像瞎**捣鼓出来了?原来是这样操作的啊,万分感谢楼上坛友
QQ图片20241220205140.png
回复

使用道具 举报

 楼主| 发表于 2024-12-20 21:27 | 显示全部楼层
本帖最后由 赞美太阳啊 于 2024-12-20 21:28 编辑
dccif 发表于 2024-12-20 19:59
vscode下测试的

搜索模式:正则

再请教一下,类似<path>./[0001]F-Zero for Game Boy Advance (Japan)[零式赛车极速传说[TGB](简)(JP)(128Mb)].gba</path>

不要第一个[]里面的编号,只保留最后一个怎么写?我问了ai半天他也讲不出所以然


还有类似<path>./007 Shitou-The Duel(Japan) [MD][007死斗] .md</path>这样想把两个[]都保留下来呢?
回复

使用道具 举报

     
发表于 2024-12-20 21:40 | 显示全部楼层
赞美太阳啊 发表于 2024-12-20 21:27
再请教一下,类似./[0001]F-Zero for Game Boy Advance (Japan)[零式赛车极速传说[TGB](简)(JP)(128Mb)].g ...

你看[0001],方括号里面的是0-9范围的字符
你要问正则删除方括号内0-9范围的字符
回复

使用道具 举报

     
发表于 2024-12-20 21:42 | 显示全部楼层
话说整理rom数据库我也挺喜欢玩,做这些最好还是先转成数据库来存放各种中间数据,这样才方便整理。
其实就是数据公司说的洗数据。
回复

使用道具 举报

     
发表于 2024-12-20 21:52 | 显示全部楼层
赞美太阳啊 发表于 2024-12-20 21:27
再请教一下,类似./[0001]F-Zero for Game Boy Advance (Japan)[零式赛车极速传说[TGB](简)(JP)(128Mb)].g ...

1 最后一个[]是 [TGB],还是 零式赛车极速传说[TGB](简)(JP)(128Mb) ?
这属于嵌套了,如何为了省事,应该只选择第二个[]中所有的内容

  1. <path>(.*?(?:\[.*?\]).*?\[(.*)\].*?)</path>[\s\n]*<name>[^<]*</name>
复制代码


替换的和上面的一样

2 不懂什么叫两个都保留
回复

使用道具 举报

 楼主| 发表于 2024-12-20 21:55 | 显示全部楼层
本帖最后由 赞美太阳啊 于 2024-12-20 21:58 编辑
dccif 发表于 2024-12-20 21:52
1 最后一个[]是 [TGB],还是 零式赛车极速传说[TGB](简)(JP)(128Mb) ?
这属于嵌套了,如何为了省事,应 ...
GBA的那个非常ok了,细节部分我自己手改就好了


MD哪个就是替换成md 007死斗这样或者最好是[MD]007死斗 这样,最好是后一种
回复

使用道具 举报

     
发表于 2024-12-20 22:00 | 显示全部楼层
旁友你这个格式很缺德啊,折腾了我半个小时


gamelists.zip (975.88 KB, 下载次数: 3)

回复

使用道具 举报

     
发表于 2024-12-20 22:00 | 显示全部楼层
赞美太阳啊 发表于 2024-12-20 21:55
GBA的那个非常ok了,细节部分我自己手改就好了
  1. <path>(.*?(\[(.*)\]).*?\[(.*)\].*?)</path>[\s\n]*<name>[^<]*</name>
复制代码


替换

  1. <path>$1</path>\n\t<name>$3-$4</name>
复制代码

要[],自己替换里包,[$3]
回复

使用道具 举报

 楼主| 发表于 2024-12-20 22:03 | 显示全部楼层

太棒了,虽然是不[MD]007死斗这种,但剩下的部分我自己手工替换就OK,万分感谢
回复

使用道具 举报

 楼主| 发表于 2024-12-20 22:05 | 显示全部楼层
john 发表于 2024-12-20 22:00
旁友你这个格式很缺德啊,折腾了我半个小时

啊,感谢版主

我这个是类似batocera的前端刮削封面元数据后自动生成的xml,我也不知道它为什么这么拧巴

大恩不言谢,等我把ROM包弄好了,在游戏区发出来回馈坛友吧
回复

使用道具 举报

     
发表于 2024-12-20 22:11 | 显示全部楼层
赞美太阳啊 发表于 2024-12-20 22:03
太棒了,虽然是不[MD]007死斗这种,但剩下的部分我自己手工替换就OK,万分感谢 ...
  1. <name>$3-$4</name>
复制代码

替换中的$3,$4就是 捕获到的值,你要什么格式可以自己改
比如  [$3]$4,上面是我随便写的
回复

使用道具 举报

发表于 2024-12-20 22:20 来自手机 | 显示全部楼层
有没有像编辑电子表格一样,编辑XML的软件?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-12-21 22:33 , Processed in 0.122078 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表