回车换行符

在计算机还没有出现之前,有一种叫做电传打字机(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. 记录添加mvn命令,以及安装jar包到本地仓库

    安装版的maven,没有mvn命令,需要先设置环境变量,添加%MAVEN_HOME% =D:\apache-maven-3.3.9path 中添加 %MAVEN_HOME%/bin即可 安装下载好的j ...

  2. Teradata简介

    Teradata是受欢迎的关系数据库管理系统之一. 它主要适用于构建大规模数据仓库应用程序.Teradata通过并行性的概念实现了这一点. 它是由Teradata公司开发的. 无限并行化-  Tera ...

  3. 7款不错的 CI/CD工具

    时至今日,越来越多的工程团队开始实行敏捷开发,借以推动更短.更快的发布周期.而代码库的增长与更高的生产构建频率,也带动持续集成与持续部署/交付工具快速兴起.如果您有意提升发布频率,或者是不太清楚哪些工 ...

  4. Monkey测试简介

    1.Monkey测试简介monkey是安卓命令行工具,它向系统发送伪随机的用户事件,例如:按键的输入.触摸屏的输入.手势输入等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常.因此,mo ...

  5. 读取tensorflow的checkpoint里保存的参数

    import tensorflow as tf from tensorflow.python import pywrap_tensorflow import os checkpoint_path = ...

  6. TIMESTAMP(6)类型的时间差

    TIMESTAMP 数据类型 它包括了所有DATE数据类型的年月日时分秒的信息,而且包括了小数秒的信息. 以分钟为单位查询时间差 select ROUND(TO_NUMBER(to_date(to_c ...

  7. leetcode答案 有效的括号(python)

    def isValid(s): if s and len(s) % 2 is 0: a = {')': '(', ']': '[', '}': '{'} l = [None] for i in s: ...

  8. 3.Telnet探测端口后怎么退出

    使用 'Ctrl' +  ' ] ' 一起按退出

  9. js导出excel文件

    <div id="tablesDiv"> <table id="tabDiv1"> <tbody><tr> &l ...

  10. 修改jupyter notebook主题、字体和启动路径

    目录 1.安装主题 2.切换 3.字体 4.启动路径 1.安装主题 window在cmd中输入 pip install --upgrade jupyterthemes 完成后输入查看 jt -l 就提 ...