明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1137|回复: 4

[函数] write-line函数插入写入(如何实现在已有文本第一行写入,原第一行递延为第二行)

[复制链接]
发表于 2018-5-21 10:12:46 | 显示全部楼层 |阅读模式
本帖最后由 zzl9105 于 2018-5-21 10:21 编辑

如题:write-line函数插入写入(如何实现在已有文本第一行写入,原第一行递延为第二行,后面的类推),其实就是相当于在txt文件第一行中插入要写入的文本。
能实现这样的功能吗?谢谢
发表于 2018-5-21 11:04:13 | 显示全部楼层
本帖最后由 yxp 于 2018-5-21 11:13 编辑

是的,也可倒一遍原数据实现。测试插入一行: (test "abcd")
插入两行文本:(test "abcd\n1234")
  1. ;;在 txt 文本第一行插入数据;成功返回 nil  失败返回传入参数
  2. (defun test(s / f ss)
  3. (setq fpath (getfiled  "打开" (if fpath fpath "" ) "txt" 0))
  4. (if fpath (progn
  5.         (setq f (open fpath "r"))
  6.         (while (setq ss (cons s ss) s (read-line f)))
  7.         (close f)
  8.         (setq f (open fpath "w"))
  9.         (foreach x (reverse ss) (write-line x f))
  10.         (close f)
  11. ) s)
  12. )



回复 支持 1 反对 0

使用道具 举报

发表于 2018-5-21 10:35:49 | 显示全部楼层
流式文件 不支持随机读写 只能顺序
考虑在内存中处理好 一次性写入
 楼主| 发表于 2018-5-21 15:47:40 | 显示全部楼层
yxp 发表于 2018-5-21 11:04
是的,也可倒一遍原数据实现。测试插入一行: (test "abcd")
插入两行文本:(test "abcd\n1234")

谢谢你提供的思路,可是我的文本中有好多行文字,我只想插入第一行。其它行都不动
发表于 2018-5-21 20:29:15 | 显示全部楼层
zzl9105 发表于 2018-5-21 15:47
谢谢你提供的思路,可是我的文本中有好多行文字,我只想插入第一行。其它行都不动

原内容只是提取出来,然后和新行合并后,再全部写入。可以认为原内容是没有变化的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-19 12:44 , Processed in 0.168660 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表