记事本里字符串包括很多$00 结束符 如何去掉

chinawcs 2018-01-15 09:30:47
记事本文件是 其它软件导出的, 用ue查看里面包含很多$00 (16进制) 结束符

打开记事本 复制粘贴 截断字符了


TStrings LoadFromFile 一样也被截断
...全文
1602 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tp26021340 2018-04-03
  • 打赏
  • 举报
回复
引用 2 楼 chinawcs 的回复:
记事本 里面内容很多 几十M 要如何优化处理呢 ? 一次装载 替换字符 速度可行 ?
chinawcs 请教一下,https://bbs.csdn.net/topics/390554303#new_post,这个问题你是怎么解决的,我现在用Chromium 内存还是在不断的增加,就是二个页面不停的切换。测试内存有没有泄露。看到你解决,得来请教。 经测试 现在完全没有问题了 内存不再增大 软件稳定运行 。 确实是 mshtml 的问题 感谢 武稀松 技术指导 这里不得不说 王哥的代码 一级棒。
doloopcn 2018-01-17
  • 打赏
  • 举报
回复
记事本中出现$00字符,一般都是导出的时候的编码与记事本的默认编码不一致,可以试试用XE版的MEMO控件,直接打开文件然后,再指定相应的编码另存
SupermanTm 2018-01-16
  • 打赏
  • 举报
回复
不能随便删的哦,你看编码是 ANSI 的还是 UNICODE 还是 UTF8 的,不同的编码对 $00 的理解是不一样的 BTW, 如果编个程序解决,用文件流就很方便可以处理掉了
  • 打赏
  • 举报
回复
几十MB,对20年以来的电脑都属于小数据,一次处理完就可以了。 var f: file; fsize, n: integer; buf: array of byte; begin AssignFile(f, 'xxx.txt'); Reset(f, 1); fsize := FileSize(f); SetLength(buf, fsize); BlockRead(f, Buf[0], fsize, n); for n := 0 to fsize - 1 do if buf[n] = 0 then buf[n] := 32; Rewrite(f, 1); BlockWrite(f, buf[0], fsize, n); CloseFile(f); end; 注意没有做异常处理,你看情况加上就好了。
  • 打赏
  • 举报
回复
用二进制方式打开,把$00删除或者替换为空格($20)即可。
chinawcs 2018-01-15
  • 打赏
  • 举报
回复
记事本 里面内容很多 几十M 要如何优化处理呢 ? 一次装载 替换字符 速度可行 ?
在Windows系统中,notepad.exe(记事本)是一个“经典的”、“简洁的”文本编辑器。这个软件,没有华丽的外观,也没有繁杂的功能,仅仅是一个文本编辑小软件。虽然经过Windows系统数十年的变换,但它却保持着永恒姿态,数十年来几乎不曾改变过。曾经,VS中的经典DEMO中,就有它的身影,一个新建的项目,就藏有一个新建的“记事本”。然而,在WPF的项目中,“记事本”却消失的无影无踪,也许是很容易实现,也许是为了革新,而不愿再传承“经典”。确实,使用WPF技术再次让“记事本”复活,确实也是一件非常容易的事情。但是,如果,使用WPF技术,再搭配当下非常流行的MVVM模式呢?复活“记事本”的难度却陡然上升至很多WPF程序员为之默默叹气。而,MVVM模式是掌握WPF的最顶级技术,MVVM模式拥有的无尽的优势,让WPF相对于过往的编程模式来说,是一种革命性的创新,从而也成为大中型WPF项目中必须的模式。但,学习难度。。。。。。在这个《WPF记事本开发详解》的课程中,赵老师带领你在WPF中,从零开始一步步构建MVVM模式,直到让你亲自以WPF+MVVM的方式,让这个经典的“记事本”软件从你的手中“复活”。在课程中,赵老师会详细讲解WPF和MVVM中的各种技巧,让你从此爱上WPF+MVVM编程。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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