读取文件遇到了一个问题

lijunfeng 2003-12-10 05:20:49
记事本写的文本文件是以什么编码存的?
我从文件中读取一个ushort 值到变量C中,
然后 textBox1.Text=((char)C).ToString();
显示的是乱码。
但是
ushort C;
C=(ushort)'李';
textBox1.Text=((char)C).ToString();
显示为“李”;

还有:在C#中怎么一次读一个结构读取文件。
如一个结构体 struct a
{
public int x;
public char[10] s;
}
怎么样一次把文件中的数据读到这个结构体中?
...全文
37 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
13880079673 2003-12-15
  • 打赏
  • 举报
回复
你直接使用Encoding.Default就是,系统知道把你读取的信息转为本机默认的编码格式
lijunfeng 2003-12-12
  • 打赏
  • 举报
回复
自己顶
lijunfeng 2003-12-11
  • 打赏
  • 举报
回复
ANSI跟Unicode 之间怎么转换呢?
13880079673 2003-12-11
  • 打赏
  • 举报
回复
只要你不改,一般是ANSI
lijunfeng 2003-12-11
  • 打赏
  • 举报
回复
我没有表错意思,我读的不是文本文件,是二进制文件:
在VB 6.0里可以这样读一个文件:
Type MyStruct
a As String * 10
b As Long
c As Byte
End Type

Dim tmpMyStruct As MyStruct
tmpMyStruct.a = "1234567890"
tmpMyStruct.b = 1234567
tmpMyStruct.c = 255

Open "temp.dat" For Binary As #1
Put #1,,tmpMyStruct
Get #1,0,tmpMyStruct
Close #1

在C #里怎么这样读文件?

另外:
在C #里这样读一个由记事本保存的文本文件

Stream temp_file;
byte[] buf_byte = new byte[2];
temp_file = new FileStream( "aa.txt" , FileMode.Open , FileAccess.Read );
temp_file.Read( buf_byte , 0 , 2 );
temp_file.Close();
temp_file = null;
textBox1.Text = ((char)((buf_byte[0] << 8) + buf_byte[1])).ToString();

显示的不是我保存的那个字符。记事本保存的文本是用什么编码方式保存的?
(因为是在网吧里写的,所以有可能有部分语法错误,请见谅,但逻辑上应该没错)
13880079673 2003-12-10
  • 打赏
  • 举报
回复
读文件的时候要使用

private ArrayList infomore = new ArrayList();
StreamReader srReadLine;
srReadLine = new StreamReader((Stream)File.OpenRead("x.txt"),Encoding.Default);

也就是要改变读取文件时的编码格式

srReadLine.BaseStream.Seek(0, SeekOrigin.Begin);
while (srReadLine.Peek() > -1)
{
a tmp;
tmp.x = ?
tmp.x = srReadLine.ReadLine();
infomore.add(tmp)
}
srReadLine.Close();

还有:在C#中怎么一次读一个结构读取文件。
如一个结构体 struct a
{
public int x;
public char[10] s;
}
怎么样一次把文件中的数据读到这个结构体中?

你的意思应该是怎么把文件按行读到一个结构体数组才对

110,549

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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