我用FILEREAD()行模式读取TXT文件(定长字符串length),非汉字读取正确,如果读取字符串中包含汉字,那结果末尾是乱码,应该是多读了几位。请问该如何解决?给分哦 

解决方案 »

  1.   

    我用FILEREAD()行模式读取TXT文件(定长字符串length)不是很明白楼主的行模式读取是个什么概念。FileRead函数是根据指定的字节数来读取文件内容的, TXT文件中的一行有多长, 不知楼主是如何获取的? 只要这个行长度获取正确, FileRead就会读取正确。可以这么说,楼主的这个问题应该与FileRead读取部分无关,而与行长度判断部分有关。如果楼主的意思是TXT文件中每行的字符所占字节数是固定的话,则指定给FileRead的长度应该是:(1) DOS环境中的文本文件(包括Windows环境): 字符所占字节数 + 2,因为文本文件的每一行末尾会有一个回车符和一个换行符。(2) Uninx环境中的文本文件: 字符所占字节数 + 1,因为文本文件的每一行末尾只有一个回车符。
      

  2.   

    我是用delphi里的FileRead(iFileHander,pchars^,长度)这里的长度是原本就已经存储好的。如何读的字符串都是英文的话就都没有错。但是字符串带有汉字的话就经常会出错。而且出错的地方是在末尾几位(乱码),我验证得出是每次都多读了几位,但这到底几位却没法确定。原来存储的长度是用string类型的length()来获得 。在windows下。请高手们帮忙啊,急用啊。谢谢了!