我自己的资料整理导引(三):文本格式基础

程序之间的数据交互其实是一件非常复杂的事情,因为不同的数据有不同的格式,怎么统一起来是个很大的问题。今天我们只讨论计算机中文本的交互。总体来说,在文本数据交互的时候,要考虑以下几个问题:

  • 用户以什么方式编辑文本
  • 程序以什么方式显示文本
  • 程序以什么方式接受(一般来自剪贴板的)文本数据

文本编辑

常用的文本编辑器:

  • vim
  • 记事本(txt)
  • typora (markdown)
  • office/wps
  • latex
  • 网页(html)
  • ...

文本编辑器需要考虑的因素:

  • 用户的需求:朴实无华/花里胡哨
    • from 简单 to 复杂:vim, txt, markdown, latex, html, office/wps
  • 用户的输入习惯:虽然文本格式的底层是代码控制的,但是不是所有用户都能接受代码式的输入(不直观 ),所以不同接受程序有不同的软件
    • 所见即所得:非常直观,直接输入文本,并且用GUI控件控制底层输入,例如:wps/office, txt, vim
    • 实时编译:虽然要写一点点代码,但是很简单,而且可以实时转化成富文本:markdown
    • 直接上代码:无法实时编译,代码繁琐:latex, html

剪贴板概览

剪贴板其实是一个非常伟大的创举,为app之间的数据传输提供了标准的协议和方式。

具体而言,剪贴板中的内容有三种格式:纯文本,富文本和链接。应用剪贴板时,其会首先检查给定内容中有无链接(或者可以转化为内存中链接的内容,如图片),如果有则转换为链接,否则讨论是否是富文本。

  1. 复制/剪切操作:当用户在应用程序中执行复制或剪切操作时,程序会将选定的数据通过API调用发送到剪贴板。数据可以是文本、图像、文件引用或其他格式。程序通常需要指明数据的格式,以便接收数据的程序能够正确解析。
  2. 剪贴板存储:操作系统管理的剪贴板接收来自应用程序的数据,并将其存储在一个临时位置。如果剪贴板已经有数据,新数据会覆盖旧数据。
  3. 粘贴操作:当用户在同一应用程序或另一个应用程序中执行粘贴操作时,目标程序会通过API调用从剪贴板请求数据。程序还会指定它可以接受的数据格式,操作系统会尝试提供匹配的格式。如果数据格式兼容,剪贴板的内容就会被传输到程序中,然后程序可以根据需要处理或显示数据。
  4. 数据转换:有时,剪贴板中的数据可能需要在不同格式之间转换。例如,如果源程序复制的是富文本,而目标程序只支持纯文本,操作系统或目标程序需要将富文本转换为纯文本。当然,本质上程序之间的数据通信还是基于api的,只不过剪贴板相当于这些api之间的中介。
  5. 通知机制:许多操作系统允许程序注册监听器来获取剪贴板内容变化的通知,这样程序可以在剪贴板更新时做出响应。
相关推荐
V哥AI增长6 小时前
小红书笔记在生成式AI引擎中的可见性机制解析:从抓取原理到GEO工程化实践
大数据·人工智能·笔记
Hotchip_MEMS10 小时前
当雾化器遇上MEMS:一场从交互到制造的全链路效率提升
人工智能·笔记·物联网·电脑·制造
是上好佳佳佳呀11 小时前
【深度学习|Day02】PyTorch 深度学习笔记(下):张量运算与自动微分
pytorch·笔记·深度学习
IT古董12 小时前
【MES学习笔记系列】05 - MES 数据库设计
笔记·学习·mes
不瘦80斤不改名13 小时前
05-vibe-coding-向agentic-engineering演进
人工智能·笔记·python·prompt
九硕智慧建筑一体化厂家13 小时前
直流照明|无尘风淋室照明,高均匀无频闪,适配洁净车间高频合规工况
大数据·人工智能·笔记·智慧城市
LATASA13 小时前
【 从0到1构建 Agent Harness学习笔记】
网络·笔记·学习
FakeOccupational14 小时前
【电路笔记 仿真】SPICE仿真器软件 LTspice:绘制简单电路(新建图页+添加组件)并仿真+模型导入+SUBCKT (子电路)绘制与使用+特殊器件绘制
笔记
是上好佳佳佳呀15 小时前
【深度学习|Day01】PyTorch 深度学习笔记(上):框架认知与张量基础
pytorch·笔记·深度学习
x173880627315 小时前
目录遍历漏洞
笔记·目录遍历漏洞