- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含“unix 风格”行尾的文本文件:每行末尾有一个 0x0A。
我正在编写一个脚本来修改该文件,以向其中添加新内容。这是在 Windows 上运行的 JScript。代码如下所示:
var fso = new ActiveXObject("Scripting.FileSystemObject"),
fs = fso.openTextFile(src),
origContent = fs.readAll();
fs.Close();
fso.MoveFile(src, dest);
// write updated content to a new file.
fs = fso.CreateTextFile(src);
fs.WriteLine("# key: " + keyvaluee);
fs.WriteLine("# group: " + groupvalue);
fs.WriteLine(origContent);
fs.Close();
修改后的文件内容是这样的:
00000000: 2320 6b65 793a 2075 6e64 6566 696e 6564 # key: undefined
00000010: 0d0a 2320 6772 6f75 703a 2069 6d61 700d ..# group: imap.
00000020: 0a23 636f 6e74 7269 6275 746f 7220 3a20 .#contributor :
00000030: 416e 6472 6577 2047 776f 7a64 7a69 6577 Andrew Gwozdziew
00000040: 7963 7a20 3c77 6562 4061 7067 776f 7a2e ycz <web@apgwoz.
00000050: 636f 6d3e 0a23 6e61 6d65 203a 2069 6d61 com>.#name : ima
00000060: 705f 6765 745f 7175 6f74 6172 6f6f 7428 p_get_quotaroot(
00000070: 2e2e 2e2c 202e 2e2e 290a 2320 2d2d 0a69 ..., ...).# --.i
00000080: 6d61 705f 6765 745f 7175 6f74 6172 6f6f map_get_quotaroo
00000090: 7428 247b 696d 6170 5f73 7472 6561 6d7d t(${imap_stream}
000000a0: 2c20 247b 7175 6f74 615f 726f 6f74 7d29 , ${quota_root})
000000b0: 2430 0d0a $0..
如您所见,使用 JScript TextStream 添加的行以 0D 0A
结尾,而现有内容的每一行仅以 0A
结尾。查看位置 0x10 处的序列并与位置 0x54 处的字节进行比较。这是一个文本文件,我只是以十六进制显示内容。
如何使修改后的文件中的行尾保持一致?无论哪种方式对我来说都很好,我只是不喜欢在同一个文件中使用这两种方式。
我可以将内存中的 origContent
字符串转换为使用“DOS 风格”行尾吗?
最佳答案
我只是用十六进制编码替换字符串。这对我有用。
var fso = new ActiveXObject("Scripting.FileSystemObject"),
fs = fso.openTextFile(src),
origContent = fs.readAll(),
re1 = new RegExp("\x0A", 'g');
fs.Close();
fso.MoveFile(src, dest);
// write updated content to a new file.
fs = fso.CreateTextFile(src);
fs.WriteLine("# key: " + keyvaluee);
fs.WriteLine("# group: " + groupvalue);
origContent = origContent.replace(re1, "\x0D\x0A");
fs.WriteLine(origContent);
fs.Close();
结果是 origContent
中的所有行尾都被转换为 CR/LF 而不仅仅是 LF。仅当 原始文件中没有 CRLF 对 时才有效 - 仅当它最初具有所有 unix 行结尾时。
关于javascript - 如何使用 Scripting.FileSystemObject 和 TextStream 将 LF 转换为 CR/LF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9858193/
我对 VBA 相当陌生,并且对如何解决执行此代码时收到的“运行时错误'5':无效的过程调用或参数”错误感到困惑。有问题的单元格有中文字符,代码似乎在英文字母上运行良好。流正在输出到文本文件。 (将来应
我成功运行下面的代码,逐行向浏览器显示文本文件: " Loop Set TextStream = nothing Set FSO = nothing %> 我想在 Set Te
为了克服 VBA 的 2GB 限制,我已经开始使用 fso 对象。就我的目的而言,一切看起来都令人满意,除了我找不到在文本流文件中向后的方法。为了继续前进,我使用了 read(no of chars)
使用RangeToHTML Ron de Bruin 的函数,我将一个范围粘贴到 Outlook 电子邮件中。但是,似乎有一个额外的空白行被粘贴到电子邮件中,如下所示: 我已经确认 Source:=T
我在 Excel 2007 中有一些 VBA 代码,用于创建、填充然后关闭 Textstream 文件对象(下面的缩写代码段)。 Set CSV = FSO.CreateTextFile(strPat
我有一个包含“unix 风格”行尾的文本文件:每行末尾有一个 0x0A。 我正在编写一个脚本来修改该文件,以向其中添加新内容。这是在 Windows 上运行的 JScript。代码如下所示:
我是一名优秀的程序员,十分优秀!