VC++学习:字符串黑箱的背后

2016-02-19 14:27 7 1 收藏

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享VC++学习:字符串黑箱的背后教程,希望对大家能有一点小小的帮助。

【 tulaoshi.com - 编程语言 】

  去年的时候,由于某种原因,我需要将一个文件的二进制形式以文本的格式输出到一个文本文件中,类似下面这个样子:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00
  B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  00 00 00 00 00 00 00 00 00 00 00 00 D0 00 00 00
  0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68
  69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F
  74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20
  6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 00
  ......
  我想的很简单:打开文件,读取文件,用一个循环,对每个字节使用wsprintf,然后用lstrcat连接起来,写文件,搞定。于是我很容易地得到了以下这段毫无语法错误的代码:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  // 注1:你可以将其中的几个未定义变量理解为全局变量。
  // 注2:NEW是我定义的一个宏函数,仿照了C++ 的operator new。
  // #define NEW(type, count) (type *)(malloc(sizeof(type) * (count)))
  void Save(void)
  {
  DWORD dwSize, dwReaded, i;
  TCHAR szByte[5];
  // 读取源文件
  hFileSrc = CreateFile(szFileSrc, GENERIC_READ, 0, NULL, OPEN_ALWAYS, 0, NULL);
  dwSize = GetFileSize(hFileSrc, NULL);
  lpbySrc = NEW(BYTE, dwSize);
  ReadFile(hFileSrc, (LPVOID)lpbySrc, dwSize, &dwReaded, NULL);
  // 下面的MYSIZE是一个指示缓冲区大小的宏,由于计算大小较为繁琐且与本文无关,所以此处略去
  lpDst = NEW(TCHAR, MYSIZE);
  *lpDst = '

来源:http://www.tulaoshi.com/n/20160219/1607009.html

延伸阅读
标签: Web开发
去掉字符串中匹配 的字符串 代码如下: /** * 去掉字符串中匹配 的字符串 * * @author zhujie * @return String regex 要替换的内容 value 字符串 state 替换的内容变成什么 */ public static String toRegex(String regex, String value, String state) { Pattern p = Pattern.compile(regex); Matcher m = p.matcher(value); String...
标签: Web开发
a href="1.htm"251/a 怎么用JS把251替换为 span style='background-color: #99FF99'251/span [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
SELECT   SUBSTR (T.RPT_ID,                 INSTR (T.RPT_ID,',',1,C.LV)+ 1,                 INSTR (T.RPT_ID,',',1,C.LV + 1)- (INSTR (T.RPT_ID,',',1,C.LV)+ 1)) &n...
标签: ASP
  '*************测字符串长度************** Function CheckStringLength(txt) txt=trim(txt) x = len(txt) y = 0 for ii = 1 to x if asc(mid(txt,ii,1)) < 0 or asc(mid(txt,ii,1)) 255 then '如果是汉字 y = y + 2 else y = y + 1 end if next CheckStringLength = y End Function '************* 截取字符串 ************** f...
标签: Web开发
一、概述     字符串在javascript中几乎无处不在,在你处理用户的输入数据的时候,在读取或设置DOM对象的属性时,在操作cookie时,当然还有更多...。JavaScript的核心部分提供了一组属性和方法用于通用的字符串操作,如分割字符串,改变字符串的大小写,操作子字符串等。     当前的大部分浏览器也能从强大的...

经验教程

413

收藏

39
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部