回车换行符

在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。

后来,计算机发明了,这两个概念也就被搬到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。

Unix 系统里,每行结尾只有“<换行>”,即'\n';
Windows系统里面,每行结尾是“<回车 ><换行>”,即'\r\n';
Mac系统里,每行结尾是“<回车>”。
在aardio中可使用string.crlf() 函数格式化换行为统一风格。

一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;
而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号

0x0D(asc码是13) 指的是“回车” aardio中写为'\r' 是把光标置于本行行首 
0x0A(asc码是10) 指的是“换行” aardio中写为'\n' 是把光标置于下一行的同一列 
0x0D + 0x0A 回车换行 aardio中写为'\r\n' 把光标置于下一行行首

文本模式

在windows中默认的以'\r\n'表示文本换行,如果指定文本模式读写文件时,则读取文件时会自动将回车换行转换为'\n',而在写入时又自动将'\n'转换为'\r\n'

在使用io.open函数时,可以用'b'标记指定二进制模式,而使用't'标记指定文本模式(默认设置),具体请参考:io.open 函数

在设置winform程序时,要注意普通文本框控件使用'\r\n'表示换行,而richedit控件则使用'\n'表示换行.

在字符串中表示回车换行

aardio有多种表示字符串的方法,
而这些表示方法都有预定义的回车换行解析规则。
这些规则不会受到源文件实际使用的换行字符影响,即无论你是以'\r','\n'或者'\r\n'换行。
aardio会按下面的规则解析回车换行:

在赋值语句中以段注释表示的字符串,保证换行为'\r\n'
例如:

  str = /*
  我后面是回车符
  我前面是换行符
  */

在赋值语句以行注释表示的字符串,保证没有回车换行

str = //我后面即没有回车,也没有换行

放到双引号中的字符串,保证没有回车符,但是有换行

str = "我后面是换行符
我前面是换行符"

放到单引号中的字符串,保证没有字面值的回车换行符,只能以'\r\n'来表示

str ='我后面没有回车也没有换行
我前面没有回车也没有换行'

 

一个小例子。

winform.btnClear.oncommand = function(id,event){
    if(win.msgbox("窗口将进行初始化"++'\r\n'++"窗口数据将被清除!","确认",0x1/*_MB_OKCANCEL*/) = 2){
    	return ;
}

【aardio】回车换行符的更多相关文章

  1. 【转】去掉Sqlite3 数据库中的前后回车换行符(newline)

    原文: http://www.blogjava.net/pts/archive/2013/06/10/400... 时间: 2013-06-10 转自:http://www.ityuedu.com/a ...

  2. ruby正则匹配回车换行符

    如果你使用/^.*$/这种正则是匹配不到回车换行符的. 所以应该像下面这么写: /^[\s\S]*$/

  3. linux与windows回车换行符的区别

    转自:http://www.cnblogs.com/dartagnan/archive/2010/12/14/2003499.html “回车”(carriage return)VS  “换行”(li ...

  4. JS替换空格回车换行符

    JS替换空格回车换行符 str=str.replace(/\r/g," ") str=str.replace(/\n/g,"<br />")  或 ...

  5. PHP清除HTML代码、空格、回车换行符的函数

    清除HTML代码.空格.回车换行符的函数如下 function DeleteHtml($str) { $str = trim($str); $str = strip_tags($str,"& ...

  6. C# 中的回车换行符

    在 C# 中,我们用字符串 "\r\n" 表示回车换行符. string str = "第一行\r\n第二行"; 但是我们更推荐 Environment.New ...

  7. oracle如何去除字段的回车换行符

    oracle如何去除字段的回车换行符? 可以用trim也可以用replace.区别在于,trim处理字符串两端,而replace中间也可以处理. trim select '全世界无产者 ' || '联 ...

  8. java 去html标签,去除字符串中的空格,回车,换行符,制表符

    public static String getonerow(String allLine,String myfind)     {                           Pattern ...

  9. windows下sed回车换行符处理

    windows下sed回车换行符处理如果用sed for windows对整个文件进行了编辑,编辑之后一般需要处理回车换行符:rem windows的回车换行符是\r\n,linux的是\n,所以要替 ...

随机推荐

  1. SOD框架的Model、连接数据库及增删改查

    using PWMIS.DataMap.Entity; using System; using System.Collections.Generic; using System.Linq; using ...

  2. Android开发 集成极光推送中的问题

    AndroidManifest.xml清单文件报错: cn.jpush.android.service.DataProvider@exported value=(true)报错,解决如下: 根据报错行 ...

  3. 【学习】数据处理基础知识(缺失值处理)【pandas】

    缺失数据(missing data)大部分数据分析应用中非常常见.pd设计目标之一就是让缺失数据的处理任务尽量轻松. pd 使用浮点值NaN(Not a Number) 表示浮点和非浮点数组中的缺失数 ...

  4. upload三种上传方式(上)---Servlet---post---commons-fileupload.1.2.1.jar方式请求上传文件

    上传前进行的配置选项: 1.在下方的Servers中,右键你的tomcat--open,选中下面两个配置. 第一个:Serve modules without publishing 作用:tomcat ...

  5. 在Kali Linux中下载工具Stegsolve

    关键字:Java,Stegsolve,Write Up 一.首先需要配置Java环境. 1.下载最新的Java JDK. 注意选择Accept License Agreement,并下载.tar.gz ...

  6. C++builder Tokyo 调用com 不正确的变量类型

    C++builder Tokyo 调用com 不正确的变量类型 tt.OleFunction("interface_call","MS01",&erro ...

  7. 可视化n次贝塞尔曲线及过程动画演示--大宝剑

    起因 研究css中提供了2次.3次bezier,但是没有对n次bezier实现.对n次的实现有很大兴趣,所以就用js的canvas搞一下,顺便把过程动画模拟了一下. 投入真实生产之中,偏少. n次be ...

  8. Java开发经常容易犯的错误

    调用Set.addAll()方法时抛UnsupportedOperationException异常 上面的Set是Map中keySet的返回结果. 程序中这样两句代码运行时,抛UnsupportedO ...

  9. python day10 函数(第二篇)

    2019.4.10 S21 day10笔记总结 一.内容回顾 1.面试题相关: 1.py2和py3的区别 2.运算符的计算 :3 or 9 and 8 3.字符串的反转 4.is和==的区别 5.v1 ...

  10. CAS 无锁队列

    队列是常用的数据结构,采用的FIFO(first in firstout)原则,新元素(等待进入队列的元素)总是被插入到尾部,而读取的时候总是从头部开始读取.在计算中队列一般用来做排队(如线程池的等待 ...