📄 小小点歌台.txt
字号:
小小点歌台
(重庆 张毅)
MP3作为一种高压缩比的音频文件,能够让你仅在一张光盘中就拥有多达
上百首的歌曲。面对如此众多的曲目,你是否希望能够快速地选择自己喜爱的
歌曲播放。现在利用Visual FoxPro 5.0强大的程序设计功能,这一设想很容
易就成为了现实。
首先进入VF5.0,为你的曲目创建自由表格(假设文件名为wf1.dbf),字
段必须包括歌名、顺序、专辑,你也可以增添歌词、作词、作曲等。现在开始
输入记录,也许你会觉得这是件苦差事,幸好VF向我们提供了添加数据的简单
途径。一般来说,MP3光盘的每个专辑各为一子目录,其下的*.txt文件即包
括了各曲目的名称、顺序。打开任一文本编辑器,将各个txt文件合并为wf.txt,
去掉多余部分,给每一项加上专辑名,形成如下格式:
顺序 歌名 专辑目录名
.
.
.
在FoxPro菜单中,选择Table->Append Record, 在type框中选择源文件
格式为Delimited,间隔符为{space},在From框输入源文件名(wf.txt),完成
选择OK。
打开菜单File->New->Project,选择code->program,单击Modify,输
入下面程序:
dimension gaMylistarray(10)
for gncount = 1 to 10
store replicate(' ',10) to gaMylistarray(gncount)
endfor
frm = createobject('frmmyform')
frm.visible=.t.
frm.cmd1.Visible =.t.
frm.cmd2.Visible=.t.
frm.cmdcmndBtn1.Visible =.t.
frm.cmdcmndBtn2.Visible =.t.
frm.cmdcmndBtn3.Visible =.t.
frm.caption=″点歌台″
_screen.visible=.f.
public st6,st7
use wf1.dbf shared&&打开歌曲数据表格
frm.show
read events
define class frmmyform as form
width=350
height=190
maxheight=200
maxwidth=350
minheight=200
minwidth=350
maxbutton=.f.
autocenter=.t.
desktop=.t.
showwindow=2
add object cmd1 as cmd1
add object cmd2 as cmd2
add object cmdcmndBtn1 as cmdMycmndBtn1
add object cmdcmndBtn3 as cmdMycmndBtn3
add object cmdcmndBtn2 as cmdMycmndBtn2
add object lbl as label with;
backstyle=0,;
caption="请输入歌名:",;
left=25,;
top=115
procedure unload
close all
clear events
endpro
procedure find
parameter st1
do while not eof()
skip+1
st2=歌名
true=this.compare(st1,st2)
if(true=.t.)
st6=专辑
st7=顺序
st3='专辑名:'+专辑名
st8='('+st7+' '+st6+')'
st4='歌名:'+歌名
frm.cmdcmndBtn1.enabled =.t.
this.cmd2.value=st3+chr(13)+st4+chr(13)+st8
return
endif
enddo
go top
this.cmd2.value=chr(13)+' 对不起,没有这首歌'
frm.cmdcmndBtn1.enabled =.F.
endpro
procedure compare
parameter source,tar
long1=len(source)
len1=long1/2
real=.f.
ka=0
for i=1 to long1 step 2
sub=substr(source,i,2)
if(sub$tar)
ka=ka+1
endif
if(ka>0.6*len1)
real=.t.
exit
endif
next
return real
endpro
enddefine
define class cmd1 as combobox
left=90
top=110
width=150
height=20
MultiSelect = .t.
autosize=.t.
RowSourcetype = 5
RowSource = 'gaMylistarray'
proce click
activate screen
clear
for ncnt = 1 to thisform.cmd1.listcount
if thisform.cmd1.Selected(ncnt)
text=thisform.cmd1.list(ncnt)
endif
endfor
endpro
procedure interactivechange
go top
frm.find(trim(frm.cmd1.text))
endpro
enddefine
define class cmd2 as textbox
left=55
top=30
width=210
height=65
enabled=.F.
fontsize=12
disabledforecolor=0
enddefine
define class cmdMycmndBtn1 as commandButton
caption = '播放\ left = 20
top = 150
height = 25
enabled=.F.
num1=1
procedure click
if(this.num1=11)
this.num1=1
endif
gaMylistarray(this.num1)=歌名
this.num1=this.num1+1
*运行你的MP3播放器,包括盘符、路径。(这里采用mp2win5)。
*假设i盘为光驱,(track)是文件名公用部分。
run/n d:\maplay\mp2win5 i:\list7\track&st6..mp3
endpro
enddefine
define class cmdMycmndBtn2 as commandButton
caption = '查找\ left = 230
top=150
height = 25
procedure click
frm.find(trim(frm.cmd1.text))
endpro
enddefine
define class cmdMycmndBtn3 as commandButton
caption='结束(《Q)'
cancel = .t.
left = 125
top = 150
height = 25
procedure click
close all
clear events
endpro
enddefine
选择program->compile,编译成功的一个‘小小点歌台’就做成了。程序
运行后,输入你所需的歌曲,计算机会进行动态查找。如果没有找到,单击查
找,继续搜索。一旦找到,单击播放按钮,所点歌曲即被播放。并且每次播放
的歌曲都会被收入列表菜单中(可多达10首),以便下次重放。怎么样,赶快
去试试吧!
--------------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -