求助c#16进制写入文件问题

问题描述

本来要对一个2进制文件进行改写。计划采用如下方法。byte[]buffer=newbyte[139]FileStream.Seek(offset,SeekOrigin.Begin);//文件流定位FileStream.Write(buffer,0,140);//将buffer数组内数据写入文件现在头痛的是buffer赋值的问题。。这个buffer为16进制的类似下面这样共有100多个字节。2E00310032003500252003100380036002F0073006500620075006B006100请问有什么好办法能解决这个问题。或是其它方法重写文件!感谢赐教,不胜感激!!

解决方案

解决方案二:
问题不明确,你是要写入文本内容,类似FF0E12FE这样的?
解决方案三:
System.IO.StreamWritersw=newSystem.IO.StreamWriter("d:\1.txt",false);for(inti=0;i<buf.Length;i++){sw.Write(buf[i].ToString("X2"));}sw.Close();sw.Dispose();

解决方案四:
引用1楼的回复:

问题不明确,你是要写入文本内容,类似FF0E12FE这样的?

不是写入文本我要写入16进制文件也就是可执行文件这个buffer为16进制的类似下面这样共有100多个字节。2E00310032003500250003100380036002F0073006500620075006B006100我想实现的效果是buffer[0]=0x2Ebuffer[1]=0x00buffer[2]=0x31buffer[3]=0x00buffer[4]=0x32buffer[5]=0x00以此类推再举个例子有一个可执行文件从某个offset开始的16进制如下22003f0036003700282003200310036002F0073006400620075006A006F00然后我用新的16进制值改写文件就假设是下面的16进制值改写2E00310032003500252003100380036002F0073006500620075006B006100有100多个字节一个一个赋值累死了!
解决方案五:
我晕,你还是没弄明白byte是什么东西,什么十六进制,二进制,十进制你先百度byteintcharuintuchar是什么意思,内存分布是什么样子就不会有这个问题了。没有所谓的十六进制文件

时间: 2025-01-05 23:53:03

求助c#16进制写入文件问题的相关文章

加密-php中存在16进制内容文件

问题描述 php中存在16进制内容文件 在网上找了个开源代码,安装成功访问提示"Incompatible file format: The encoded file has format major ID 4, whereas the Loader expects 5"报错文件是因为该文件内容为16进制内容,这个是加密了的吗?有没办法可以解决哦 解决方案 将16进制内容的txt文件写成其他文件php 16进制压缩---------------------- 解决方案二: [http:/

winrar 加壳-如何把自解压文件右键的“用winrar打开”去掉?我看了网上的改16进制码的方法,但我试了不行!

问题描述 如何把自解压文件右键的"用winrar打开"去掉?我看了网上的改16进制码的方法,但我试了不行! 这是我从网上找来的: 先做好自解压程序,然后使用 C32asm 或者其它二进制编辑工具打开该exe文件,搜索十六进制526172211A07,把其中的61改成其它数值,或者改72为其它数值.我这里把61改为00.如果你改的是61的话,再搜索807A0161,把61改成之前改的值;如果你之前改的72话,那么这里再搜索807A0272,把72改成之前改的值就可以了. 我试了不行,我用

C/C++ 读取16进制文件

1.为什么有这种需求 因为有些情况需要避免出现乱码.不管什么编码都是二进制的,这样表示为16进制就可以啦. 2.如何读取16进制文件 最近编程用这一问题,网上查了一下,感觉还是自己写吧. 16进制数据一般是:text=0x340xb5...,就是0x开头,之后是两个数字十六进制数. 如果直接使用sscanf(text,"0x",&num),会把连续的数字读进去直到遇到'x'. 如使用sscanf读取text第一个读到的十六进制数是0x340,误判啦.最后,因为是4个一组,就先把

如何打开一个16进制的文档

问题描述 由于开发需要使用VB.NET制作16进制文本读取器,之前有用VB6.0开发了一个,可是NET与6.0差异比较大,请各位帮忙修改一下,使其可以正确读取!如下为VB6.0代码供各位前辈参考!PrivateSubCommand3_Click()Dimss()AsByte,iAsLongText1.Text=""Open"d:S30012"ForBinaryAs#1ss=InputB(LOF(1),#1)Close#1Fori=0ToUBound(ss)Ifi&g

【★】假如人类使用16进制

  十进制一直是我心中过不去的一道坎.. 人类社会使用十进制已经几十万年的历史了,追根到底它源于远古智人的手指计数:当十只手指记不下时就会找其他记号标记一个"十",接着从1开始再次用手指记录,以此循环.当十根可爱的手指头在眼前不停晃动,重复最末位的计数,人们也慢慢习惯上了这种进位方式,代代相传. 可不幸的是,现代计算机和二进制密不可分.无论是内存地址,硬盘数据,总线信号还是无线电磁波,都遵循着二进制排列组合的规则.因为种种原因,两级对立的普遍性和稳定性存在于这个物质世界的许多地方:晶体

javascript-js 如何将16进制数据转浮点数

问题描述 js 如何将16进制数据转浮点数 js 如何将16进制数据转浮点数 我想 把str ='AB23FF12E1' 这个转成浮点数 解决方案 http://blog.csdn.net/yin138/article/details/13504441 解决方案二: 补充一句,123.456(float) = '79 E9 F6 42'; 如何把 '79 E9 F6 42'; 还原回 123.456呢? 解决方案三: 补充一句,123.456(float) = '79 E9 F6 42'; 如何

JavaScript中的16进制字符(改进)_javascript技巧

原始的代码: 复制代码 代码如下: //将文字转换为16进制 function textToSix(str) { return escape(str).replace(/%/g, function () { return "\\"; }).toLowerCase(); } 改进后的: 复制代码 代码如下: //将文字转换为16进制 function textToHex(str) { //escape对0-255以外的unicode值进行编码时输出%u****格式,例如:%u6267%u

技术-如何将sourceFile.rdbuf()输出的字符变成可以识别的二进制或16进制

问题描述 如何将sourceFile.rdbuf()输出的字符变成可以识别的二进制或16进制 因为输出的时候都是乱码,我想变成二进制或其他进制,之后还可以再还原,不知道是否有技术可以实现.并没有开玩笑,真心请教. 解决方案 一个办法是转换成base64编码,一个办法是转换成16进制字符的ascii字符串(相当于base16编码) 解决方案二: base64编码之后 就是可以正常识别的内容(就是不出现乱码的情况啦) 然后再通过base64解码 还原成之前 那个乱码的状态 然后可以通过std::of

vb.net 字符串转16进制

问题描述 字符串1:sd13A你好字符串2:2014年08月23日星期六8:59:23把字符串转16进制---------求代码!再把16进制转回中文---求代码!额,就是求互转代码!新手求助! 解决方案 解决方案二:"字符串转16进制"这个说法缺乏必要的逻辑性.只有一个整数才能表现为2进制.8进制.10进制.16进制之类的概念.字符串是一个高级的概念,那么你的逻辑就应该稍微高级一点.比如说"unicode编码的byte[]数组"."byte[]数组的ba