10 个解决方案
#1
比较下读取完全的和不完全的文件之间的区别,大小或者带有特殊符号。
#2
有可能与TXT文件的换行格式有关,可以分别试一下读DOS格式、UNIX格式和MAC格式的情况,然后再试一下混合格式
如没问题的话在检查一下有没有特殊字符
如没问题的话在检查一下有没有特殊字符
#3
找到原因,只在之前中间有\0,用记事本打开在保存,这些\0就没了,有什么办法替换掉这些\0吗
#4
文本文件里没结束就出现了结束符\0,这个要怎么样替换掉呢?
#5
你这个文件不是文本文件吧,要不然里面怎么会有\0呢,或者编码不对?
#6
文件后半部分还没有保存
#7
这个是别人导出的文本文件,里面有我需要的描述信息,用十六进制查看的时候在中间地方就是有\0的存在,所以我用TStringList加载的时候只加载了前半部分,有什么办法解决吗?
#8
先读取到 TMemoryStream 流,逐个字节判断是否 0x00 就改为 0x20 (空格),
再 TStringList-〉LoadFromStream 装入这个流。
再 TStringList-〉LoadFromStream 装入这个流。
#9
谢谢楼上的回复,我现在就是这么做的,循环流判断的时候怎么直接替换流里的内容呢?比如流长度20,10的位置就是\0
我现在的做法是,循环判断不是\0就加到另一个字符串,然后最后显示另一个字符串。有什么办法直接修改流里的内容呢?
我现在的做法是,循环判断不是\0就加到另一个字符串,然后最后显示另一个字符串。有什么办法直接修改流里的内容呢?
#10
打开文件,直接都读到内存中,然后进行替换,把'\0'都替换成空格,然后在用TStringList去读进行了,或者不用TStringList,直接处理也行
#1
比较下读取完全的和不完全的文件之间的区别,大小或者带有特殊符号。
#2
有可能与TXT文件的换行格式有关,可以分别试一下读DOS格式、UNIX格式和MAC格式的情况,然后再试一下混合格式
如没问题的话在检查一下有没有特殊字符
如没问题的话在检查一下有没有特殊字符
#3
找到原因,只在之前中间有\0,用记事本打开在保存,这些\0就没了,有什么办法替换掉这些\0吗
#4
文本文件里没结束就出现了结束符\0,这个要怎么样替换掉呢?
#5
你这个文件不是文本文件吧,要不然里面怎么会有\0呢,或者编码不对?
#6
文件后半部分还没有保存
#7
这个是别人导出的文本文件,里面有我需要的描述信息,用十六进制查看的时候在中间地方就是有\0的存在,所以我用TStringList加载的时候只加载了前半部分,有什么办法解决吗?
#8
先读取到 TMemoryStream 流,逐个字节判断是否 0x00 就改为 0x20 (空格),
再 TStringList-〉LoadFromStream 装入这个流。
再 TStringList-〉LoadFromStream 装入这个流。
#9
谢谢楼上的回复,我现在就是这么做的,循环流判断的时候怎么直接替换流里的内容呢?比如流长度20,10的位置就是\0
我现在的做法是,循环判断不是\0就加到另一个字符串,然后最后显示另一个字符串。有什么办法直接修改流里的内容呢?
我现在的做法是,循环判断不是\0就加到另一个字符串,然后最后显示另一个字符串。有什么办法直接修改流里的内容呢?
#10
打开文件,直接都读到内存中,然后进行替换,把'\0'都替换成空格,然后在用TStringList去读进行了,或者不用TStringList,直接处理也行