aardio回车换行符

Posted lokiey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了aardio回车换行符相关的知识,希望对你有一定的参考价值。

回车换行符

在计算机还没有出现之前,有一种叫做电传打字机(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回车换行符的主要内容,如果未能解决你的问题,请参考以下文章

Java字符代码中干掉制表符回车符和换行符

如何在复制/粘贴web.config XML节点后阻止自动回车(换行)?

aardio窗体半透明文字不透明

aardio为啥不火

如何去掉文本中的回车换行符或任意字符

java识别回车改为换行