设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1769|回复: 3
打印 上一主题 下一主题

[RMXP发布] TXT歌词文件拆分

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

跳转到指定楼层
1
发表于 2013-12-15 04:47:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
  1. def lrckill
  2. #$lrc=load_data("Data/Gtlrc.rxdata").to_s
  3. $lrc=File.open ("文件名称.txt").readlines.to_s
  4. $lrctime=[]#时间轴
  5. $lrcword=[]#歌词
  6. $lrcwords=[]#带#分割的歌词
  7. (0...$lrc.split("[").size).each{|i|$lrctime[i]=""}
  8. (0...$lrc.split("]").size).each{|i|$lrcword[i]=""}
  9. (0...$lrc.split("]").size).each{|i|$lrcwords[i]=""}
  10. $lrcsize=$lrc.split("[").size
  11. for i in 1...$lrcsize
  12. $lrc1=$lrc.split("[")[i].to_s
  13. $lrc2=$lrc1.split("]")[0].to_s
  14. $lrctime[i]="["+$lrc2.split("]")[0].to_s+"]"
  15. $lrcword[i]=$lrc1.split("]")[1].to_s
  16. $lrcwords[i]="#"+$lrc1.split("]")[1].to_s
  17. end
  18. file=File.new('lrctime.txt','w')
  19. file.puts($lrctime)
  20. save_data($lrctime,"Data/lrctime.rxdata")

  21. file=File.new('lrcword.txt','w')
  22. file.puts($lrcword)
  23. save_data($lrcword,"Data/lrcword.rxdata")

  24. file=File.new('lrcwords.txt','w')
  25. file.puts($lrcwords)
  26. save_data($lrcwords,"Data/lrcwords.rxdata")
  27. end
复制代码
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png

Lv1.梦旅人

梦石
0
星屑
117
在线时间
552 小时
注册时间
2012-8-18
帖子
1429
2
发表于 2013-12-15 10:10:20 | 只看该作者
我们呼唤正则表达式
我要填坑!我要背单词!我要学日语!我要每天锻炼!
好吧呵呵= =
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
41091
在线时间
7567 小时
注册时间
2009-7-6
帖子
13498

开拓者贵宾

3
发表于 2013-12-15 16:37:09 | 只看该作者
看到这玩意真怀念啊,我以前也写过一个。
RUBY 代码复制
  1. class String
  2.   @@MultiByteToWideChar  = Win32API.new('kernel32', 'MultiByteToWideChar', 'ilpipi', 'i')
  3.   @@WideCharToMultiByte  = Win32API.new('kernel32', 'WideCharToMultiByte', 'ilpipipp', 'i')
  4.   def s2u
  5.     i = @@MultiByteToWideChar.call(0, 0, self, -1, nil, 0)
  6.     buffer = "\0" * (i*2)
  7.     @@MultiByteToWideChar.call(0, 0, self, -1, buffer, buffer.size / 2)
  8.     i = @@WideCharToMultiByte.call(65001, 0, buffer, -1, nil, 0, nil, nil)
  9.     result = "\0" * i
  10.     @@WideCharToMultiByte.call(65001, 0, buffer, -1, result, result.size, nil, nil)
  11.     result.chop!
  12.     return result
  13.   end
  14. end
  15.  
  16. class Lrc
  17.  
  18.   Terms = ["歌名:","歌手:","专辑:","制作:"]
  19.  
  20.   attr_accessor :title
  21.   attr_accessor :singer
  22.   attr_accessor :album
  23.   attr_accessor :timeline
  24.   attr_accessor :contents
  25.   attr_accessor :author
  26.  
  27.   def initialize(filename)
  28.     self.load(filename)
  29.   end
  30.  
  31.   def load(filename)
  32.     ori_lrc = File.open(filename,"r").read
  33.     @timeline = ori_lrc.scan(/(?<=\[)\d{2}:\d{2}:\d{2}(?=\])/)
  34.     @contents = ori_lrc.scan(/(?<=\d\])[^\[\]]*(?=\n)/).map{|l| l.s2u}
  35.     @title = $1.s2u if ori_lrc[/\bti:(.+)\b/]
  36.     @singer = $1.s2u if ori_lrc[/\bar:(.+)\b/]
  37.     @album = $1.s2u if ori_lrc[/\bal:(.+)\b/]
  38.     @author = $1.s2u if ori_lrc[/\bby:(.+)\b/]
  39.   end
  40.  
  41.   def to_s
  42.     ret = ""
  43.     ret += Terms[0]+@title+"\n" if @title
  44.     ret += Terms[1]+@singer+"\n" if @singer
  45.     ret += Terms[2]+@album+"\n" if @album
  46.     ret += Terms[3]+@author+"\n" if @author
  47.     @contents.each{|l| ret += l+"\n"}
  48.     return ret
  49.   end
  50.  
  51. end
  52.  
  53. a = Lrc.new("1.lrc")
  54. File.open("lrc.txt","w"){|file| file<<a.to_s}
  55. p a.to_s
  56. msgbox a.to_s if defined?(msgbox)
  57. exit

点评

话说你做的这个要怎么用···时读取LRC?  发表于 2013-12-16 15:01
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

4
 楼主| 发表于 2013-12-16 14:56:32 | 只看该作者
fux2 发表于 2013-12-15 16:37
看到这玩意真怀念啊,我以前也写过一个。
class String
  @@MultiByteToWideChar  = Win32API.new('kernel3 ...

话说你是想让我抓虫吗···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-23 07:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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