C#如何通过协议读取二进制文件

RT,还有这方面的话应该看些什么书、资料什么的。小白,不懂求教~最好把建立过程说的清楚些。最好是那种随意打开某个文件的,就是类似于有个“打开”按键去选取文件,而不是改程序... RT,还有这方面的话应该看些什么书、资料什么的。小白,不懂求教~
最好把建立过程说的清楚些。最好是那种随意打开某个文件的,就是类似于有个“打开”按键去选取文件,而不是改程序里的东西。
展开
 我来答
Ben
推荐于2016-06-23 · 知道合伙人软件行家
Ben
知道合伙人软件行家
采纳数:860 获赞数:2875
认真回答者.

向TA提问 私信TA
展开全部
首先请您告诉我.为什么要通过"协议"读取所谓的二进制文件?
任何文件在存储的最终格式都是二进制.
如果您要读取二进制字节流.那直接加载该文件.读取byte数组即可.
所谓的"协议"是什么意思?
您是想解码嘛?例如读取RMVB等等?

...你补充完毕后我就更凌乱了...
首先C#你新建一个winform程序.
左侧工具栏直接拖出打开文件这个控件..或者写代码
OpenFileDialog ofd = new OpenFileDialog();
ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); //定义打开的默认文件夹位置
ofd.ShowDialog(); //显示打开文件的窗口
fileName = ofd.FileName; //获得选择的文件路径
textBox1.Text = fileName;
extendedName = Path.GetExtension(fileName); //获得文件扩展名
fileName1 = Path.GetFileName(fileName); //获得文件名

StreamReader sr=new StreamReader(@"文件路径");
while(sr.Peek() > 0)
{
str += sr.ReadLine();
}
....完了...
也没有"协议"这个概念..

协议:双方规定的特定通讯方式或解码方式的反解析KEY或范本...
嗯?
追问
对,就是根据一个特定的方式来读取一个存储的数据。规定了一些字节的存储内容都是什么含义。比如第1-3个字节存储的是时间。另:打开文件的控件是哪个?貌似我没有发现。。。谢啦。。。
追答
好的.
您读取到文本内容后.
就需要您定义您自己的"协议解析器"了
为什么要这么说.
每一个协议都是规定要的特定格式.根据您自己的协议编写类似这样的代码
byte[] data=xxxx;
data[XXX]~data[XXX]是干什么的对吧?

现在的LINQ不知道您会用不,如果不会用.
那么请使用data.ToList().GetRange(开始位置,总共几位).ToArray()
这样来解决:比如第1-3个字节存储的是时间

打开文件的控件是哪个?貌似我没有发现。。。谢啦。。。

这个控件的名字叫做OpenFileDialog 在工具栏搜索一下,好象是对话框子栏目
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式