起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 296|回复: 13

【结帖】汗,关于String的低级问题**

[复制链接]
发表于 2007-10-30 14:19:21 | 显示全部楼层 |阅读模式

sFileName := 123124141.jpg
//我想去掉扩展名,只取文件的名字
sName := sFileName.subString(0,sFileName.Lastindexof('.'));

这样有什么不对,为什么会报错
回复

使用道具 举报

发表于 2007-10-30 14:56:07 | 显示全部楼层
报错?报什么错,我试过,没错啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-30 15:00:02 | 显示全部楼层
Access violation at address 00000000. Read of address 00000000 类型:EAccessViolation
我也不理解 为什么怎么调都有错误
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-30 15:24:41 | 显示全部楼层
上面的错误就出现在sFileName.LastIndexOf('.');
这个问题用IndexOf('.')方法就不出错,请问为什么。。。。。。
回复 支持 反对

使用道具 举报

发表于 2007-10-30 16:39:29 | 显示全部楼层
和LastIndexof还是Indexof 无关。您先判断一下是否存在'.'当您的字符串里面不存在'.'时不要执行下面的代码,否则就会成为调用substring(0,-1).这样就会报指针错。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-30 17:18:33 | 显示全部楼层
我上面的代码中那个字符串你也看到了 存在字符'.'
并且真就是这样 同一样程序用了LastIndexOf就出错 换成IndexOf就运行通过 并且能得到相应的结果 可是我的程序里真正需要的是LastIndexOf方法
回复 支持 反对

使用道具 举报

发表于 2007-10-31 09:33:59 | 显示全部楼层
...没看到你的字符串。
你是说123124141.jpg吗?不会吧?这是什么东西?很奇怪啊,你确定编译能过?没有引号怎么会是字符串呢?楼主,好好检查下您的程序
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-31 09:55:09 | 显示全部楼层
哦 是有引号的 上面的是我手动敲上去 不是复制过来的 实际上是这样sFileName := '123124124.jpg';
我也知道LastIndexOf和LastIndexOf基本是一样的 方法签名也都是一样 可是在我的程序里就是出了这样的问题 同一处地方别的什么也没有改动 用LastIndexOf方法就出错 换成IndexOf就通过 很汗~~~
回复 支持 反对

使用道具 举报

发表于 2007-10-31 10:45:19 | 显示全部楼层
i:=sFileName.Lastindexof('.');
sName := sFileName.subString(0,i)
换成这样调试看一下是哪句出错。不存在.的话i=-1,而不应当是出错。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-31 10:48:10 | 显示全部楼层
我早就这样换过了 在No.4的时候就提出来了 呵呵 现在就逼着我用IndexOf方法呢 很无奈~~ 很崩溃~~
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-29 19:21 , Processed in 0.042369 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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