资源描述:
《IDL中Format代码详细解释以及用法大全.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、IDL中Format代码详细解释以及用法大全Format这个关键字在IDL应用过程中无处不在,Format代码(Formatcodes)有两种:第一种用于在数据的输入输出、类型转换过程中,是最经常用到一种方法。我们常听到诸如float型小数点没有显示全、科学计数格式转换、输出的时候字符怎么对齐,字符宽度设置、二进制、8进制、10进制、16进制怎么转换等等都和这种用法有关。功能很强大,也是大家容易晕的地方。而且目前市面的IDL书和帮助介绍的都不全面,有些书还有严重的谬误。所以这里对Format做了全面整理详细全面介绍了format的
2、含义以及format的各种用法。第二种是用于嵌入到字符串中,用于字符格式控制。如字体选择、上标、下标控制等。用在直接图形发xyouts,对象IDlgrtextwidget界面组件里。以后再做介绍。一、基本语法介绍IDL的format语法结构如下:[N]FC[+][-][width]符号描述N代表格式控制的重复次数,默认是1FC即formatcodes的简写,格式控制代码+给正数加上前缀-控制输出时对齐方向WidthWidth是输出字符的宽度看着上面的语法结构,谁都有点晕。让我们来详细解释一下:1.N 代表格式控制的重复次数,默认是
3、:默认1的情况IDL>print,FORMAT=‘(I12)',[300,400,500] 300 400 500 重复3次情况IDL>print,FORMAT=‘(3I12)',[300,400,500] 300 400 5002.FC 即formatcodes的简写,格式控制代码也就是你需要实现的功能的格式控制码, 这个在下面做最详细介绍3.+ 给正数加上前缀如果是正数输出的时候在数字前面加上一个‘+’。这个+符号只有在数字的格
4、式化输出的时候才有效。不是十进制的数字输出的时候也可以加,不过没啥效果例:没有+情况 IDL>print,FORMAT=‘(I12)',[300,-300] 300 -300有+号情况 IDL>print,FORMAT='(I+12)',[300,-300] +300 -3004.– 控制输出时对齐方向 也是可选符号,加了-符号字符和数字输出的时候是左对齐,默认是右对齐,例:默认情况IDL>print,FORMAT=‘(2I12)',[300,-300] 3
5、00 -300加上- IDL>print,FORMAT=‘(2I-12)',[300,-300]300 -300 5.Width是输出字符的宽度。如果定义的宽度超出输出字符宽度,不补0或空格1.默认情况如果格式输出定义宽度超过字符宽度是补空格的IDL>print,FORMAT=‘(a10)','abc' abcIDL>print,FORMAT=‘(I10)','400' 4002.在对数字输出的时候,如果在宽度前面加0。超出部分就会补0IDL>print,FORMAT=‘
6、(I010)',‘400'00000004003.自然宽度输出:如果定义width是0的话。在值的读取和输出时候采用自然宽度,也是数字默认格式宽度是多少就按多少读取和输出。对字符宽度不定情况,非常有用。例如读取表格数据。a=[26.0001,92.555,344.2,101.0,6.123,99.845,23.723,200.02111,141.93]IDL>print,a26.0001 92.5550 344.200 101.000 6.12300 99.8450 23.7230 200.020 141.93
7、0IDL>print,FORMAT=‘(f0)',a26.00009992.555000344.200012101.0000006.12300099.84500123.723000200.020004141.929993二、Formatcodes 格式控制代码的详细介绍和用法说明IDL中支持Formatcodes代码有13种用法。如下表所示:numFormatCode描述使用范围1A用于字符的输出2:冒号用于输出时终止符号的处理3$用于禁止输出换行符4F,D,E,G用于浮点数的输入、输出5B,I,O,Z用于整形数的输入、输出的格式
8、转换。B是进制I为十进制o是八进制z为16进制6Q在进行读取时,返回每一行的字符数7字符串和H用引用字符或H直接输出字符8T定义输出字符的绝对位置9TL把当前的字符位置向后(左)移动10TR,X把当前的字符位置向前(右)移动11C()用于输出日期数