在编程中,我常常因为程序的需要,把某个类型转换成相同类型,例如:把整型转换成字符串,在有些时候不能进行此操作?这是为什么?例如:
mediaplayer.filename:='文件名';
这个代码中,必须是一个可以被它识别的字符串文件,如果把一个整型赋给它,是用强制转换函数把它换成字符串,这种情况下,mediaplayer.filename无法识别它是一个正确的文件,也就是说它根本不认识它是什么格式的文件!为什么别的强制类型转换可以?
mediaplayer.filename:='文件名';
这个代码中,必须是一个可以被它识别的字符串文件,如果把一个整型赋给它,是用强制转换函数把它换成字符串,这种情况下,mediaplayer.filename无法识别它是一个正确的文件,也就是说它根本不认识它是什么格式的文件!为什么别的强制类型转换可以?
begin
fileName := str;
end;
procedure setValue(str : string);
begin
if Pos('.mp3',str) < 0 then
begin
Error;
Exit;
end;
fileName := str;
end;
如:
var
i:integer;
...
ShowMessage(String(i));
语法上没问题,但运行肯定出错要将integer转成string,可用:strtoint
或直接用format如:
i:=5;
mediaplayer.文件名':=format('文件名%d',[i]);
这样,format就为'文件名5'了
var
_count: integer;
_filename: string;
begin
_count := 2;
_fileName := format('%d.mp3', [_count]);
if not FileExists(_fileName) then
Exit;
mediaplayer.filename := _fileName; //此处使用的是相对路径,程需要和
//2.mp3放一个目录
mediaplayer.play;
mediaplayer1.play
根据楼主上下文,是否是你程序本身错误?
不是的话,我觉得根据楼上说的应该能解决你的问题了,结贴吧