百思不得其解的问题

nibaotiao 2010-03-17 03:07:22
const TUint32 KSart = '/';
const TUint32 KEnd = '.';
TInt start = aUrl.LocateReverse(KSart)+1;
TInt end = aUrl.LocateReverse(KEnd);
TPtrC8 ptr = aUrl.Mid(start, (end - start));//这里的ptr是xysh.mp3
TBuf<256> url;
url.FillZ();
url.Copy(ptr);//这里拷贝后,就变成xysh,然后后面是脏字符了。
TPtrC str = url.PtrZ();//这里彻底变成xysh了,泪奔!
iFName.Format(_L("c:\\%S"), &str);

http://2009bbs.yi798.com/down/xysh.mp3

上述的代码是干什么的呢?
就是想获取xysh.mp3这个歌曲名,然后保存到IFName路径下的。
不知道为什么会出现上述的问题,杯具了。
...全文
116 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
perfecttt 2010-03-22
  • 打赏
  • 举报
回复
不客气!
sxcnfly 2010-03-19
  • 打赏
  • 举报
回复
对,你自己把扩展名给去掉了。
pointerfree 2010-03-19
  • 打赏
  • 举报
回复
不知道你这代码写的什么意思,直接mid(nstart)或者Left(nStart)不就行了
nibaotiao 2010-03-19
  • 打赏
  • 举报
回复
是我自己不够细心,谢谢各位了。
pandera 2010-03-17
  • 打赏
  • 举报
回复
const TUint32 KEnd = '.';

TInt end = aUrl.LocateReverse(KEnd);

好好看清楚自己写的代码,你自己把.mp3去掉了
nibaotiao 2010-03-17
  • 打赏
  • 举报
回复
难得编译器在骗我?
bsr2009 2010-03-17
  • 打赏
  • 举报
回复
LZ只取了(end - start)最后一个/到.之间长度的数据,结果应该是xysh。
TPtrC8 ptr = aUrl.Mid(start); 用这个方法取从start开始以后的数据才是文件名。
dyw 2010-03-17
  • 打赏
  • 举报
回复
TPtrC8 ptr = aUrl.Mid(start, (end - start));//这里的ptr是xysh.mp3
改成
TPtrC8 ptr = aUrl.Mid(start);
试试。
bsr2009 2010-03-17
  • 打赏
  • 举报
回复
TPtrC8 ptr = aUrl.Mid(start, (end - start));//这里的ptr是xysh.mp3
你确定这里是xysh.mp3而不是xysh?

3,119

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧