GrADS學習筆記之一:讀寫ASCII文本文件+自定義函數

GrADS學習筆記之一:讀寫ASCII文本文件+自定義函數,廢話少說,千里之行始於足下:

"reinit"
"set display color white";*設置背景色爲白色,默認爲黑色
"c"

"open model.ctl"
"set lon -180 180"
"Set lat -90 90"
"set z 5"
"Set t 1"
"set gxout contour"
"d ps"
*
*演示如何讀取ASCII文本文件中的內容
rf=read('testshp.gs');*只能每次讀一行
line1=sublin(rf,2);*rf第一行爲狀態碼,第二行纔是真正的文本
say 'line1 = 'line1
*
*演示如何讀取文件狀態碼
fileio=subwrd(rf,1);*rf第一個字符爲狀態碼,爲0表示讀寫正確
say 'fileio must be 0: ' fileio
*

"q dims"
say result;*查看維數

;*演示如何使用函數
FileName='test_ascii.txt'
n=readfile(FileName)
say 'Number Of Lines: ' n

;*演示如何定義函數
function readfile(FileName)
*演示讀取整個ASCII文本文件,最多讀10行
say '---------------Start of File-------------------'
num=0;*Number Of Lines
while(num<=10000);*最多讀10000行
    r=read(FileName)
    temp=subwrd(r,1);*提取第一行的狀態碼,讀取無錯誤應狀態碼爲0
    if (temp != 0);break;endif;*如果讀取有誤或讀到EOF就退出
*顯示文件
    line=sublin(r,2);*提取該行字符串
    say line;*打印該行信息
*	
    num=num+1
endwhile
say '---------------End of File---------------------'
*返回文件行數
return(num)
;

將整個文件讀到一個字符串中的方法,我目前還在困惑中.下面的方法雖返回一個字符串,但是字符串中的換行符添加無效:

"reinit"
"set display color white";*設置背景色爲白色,默認爲黑色
"c"

"open model.ctl"
"set lon -180 180"
"Set lat -90 90"
"set z 5"
"Set t 1"
"set gxout contour"
"d ps"
*
;*演示如何使用函數
FileName='test_ascii.txt'
rf=readfile(FileName)
say rf

*演示如何讀取ASCII文本文件中的內容
num=subwrd(rf,1);*提取文件總行數
say 'Number Of Lines: ' num
*
say '---------------Start of File-------------------'
ni=1
while(ni<=num)
    line=sublin(rf,ni);*提取該行字符串
    say 'Line ' ni ' : 'line;*打印該行信息
    ni=ni+1
endwhile
say '---------------End of File---------------------'
*
;*演示如何定義函數
function readfile(FileName)
*演示讀取整個ASCII文本文件,最多讀10行
num=0;*Number Of Lines
Lines='\n'
while(num<=10000);*最多讀10000行
    r=read(FileName)
    temp=subwrd(r,1);*第一行僅有一個單詞,爲狀態碼,讀取無錯誤應狀態碼爲0
    if (temp != 0);break;endif;*如果讀取有誤或讀到EOF就退出
*顯示文件
    line=sublin(r,2);*提取該行字符串
    tlines=Lines
    Lines=tlines' ' line '\n'
*	
    num=num+1
endwhile
*返回文件行數和文本字符串
return(num' 'Lines)
;
結果如下,看到沒有,返回的字符串只有一行:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章