主頁 > 知識(shí)庫 > perl 文件操作總結(jié)

perl 文件操作總結(jié)

熱門標(biāo)簽:邯鄲外呼調(diào)研線路 真人語音電銷機(jī)器人系統(tǒng) 開封百應(yīng)電銷機(jī)器人聯(lián)系方式 北京語音電銷機(jī)器人價(jià)格 電話機(jī)器人電話卡封號(hào)怎么辦 買了外呼系統(tǒng)不想用了怎么辦 武漢呼叫中心外呼系統(tǒng)線路商 浦東上海400開頭的電話申請(qǐng) 樂昌電話機(jī)器人

一、打開、關(guān)閉文件

    open的返回值用來確定打開文件的操作是否成功,當(dāng)其成功時(shí)返回非零值,失敗時(shí)返回零,因此可以如下判斷:
    if (open(MYFILE, "myfile"))
    {
        # here is what to do if the file opened successfully
    }
    當(dāng)文件操作完畢后,用close(MYFILE); 關(guān)閉文件。
    讀:open(文件句柄,"文件名")  open(文件句柄,"文件名")   前提文件必須已經(jīng)存在,否則會(huì)返回0,出錯(cuò)信息在!中
    寫:open(文件句柄,">文件名"),文件如果不存在,那么創(chuàng)建之,如果存在,內(nèi)容被清空,長(zhǎng)度截為0,!中有出錯(cuò)信息。
    追加:open(文件句柄,">>文件名"),基本同寫,但有一點(diǎn),文件中的內(nèi)容不會(huì)被清空,新的內(nèi)容會(huì)追加到原文后面。
    讀寫:open(文件句柄,"+文件名"),通過“+”模式,你可以既可以讀文件,又可以寫文件。你可以通過tell() 函數(shù)在文件內(nèi)部移動(dòng),通過seek()函數(shù)進(jìn)行定位。如果文件不存在,就會(huì)被創(chuàng)建。如果文件已經(jīng)存在,原來的數(shù)據(jù)不會(huì)被清除。

二、讀文件        

    語句line = MYFILE>;從文件中讀取一行數(shù)據(jù)存儲(chǔ)到簡(jiǎn)單變量line中并把文件指針向后移動(dòng)一行。
    語句@array = MYFILE>;把文件的全部?jī)?nèi)容讀入數(shù)組@array,文件的每一行(含回車符)為@array的一個(gè)元素。

主要使用以下三個(gè)函數(shù):

1__VE_ITEM__Ø         tell函數(shù)

函數(shù)tell用來確定文件中當(dāng)前位置(亦即第一條記錄后的那個(gè)字節(jié))。Tell返回的值也是記錄長(zhǎng)度的字節(jié)數(shù)。

       length = tell ( FILE );

如一條記錄有3個(gè)字節(jié)長(zhǎng)度,字節(jié)0,1和2。因而,文件中的當(dāng)前位置是3,這就是一條記錄的長(zhǎng)度。

1__VE_ITEM__Ø         seek函數(shù)

如果記錄的長(zhǎng)度已知,函數(shù)seek可用于查找文件中的任何記錄。

函數(shù)seek接受3個(gè)參數(shù):filename、offset和method。

Offset是在文件中確定新的當(dāng)前位置時(shí),所需移動(dòng)的字節(jié)數(shù)。這個(gè)數(shù)一般可以這樣計(jì)算:所需跳過的記錄數(shù)乘以記錄的字節(jié)數(shù)。

Method指出要開始查找的位置:

0表示從文件開始處計(jì)算;

1表示從當(dāng)前位置開始計(jì)算;

2表示從文件結(jié)束出開始計(jì)算(這種情況下,offset一般為負(fù)數(shù))。
                          

例如:

 seek  ( FILE,  5*length, 0 )

執(zhí)行后,他會(huì)使用計(jì)算式5*length和method為0來跳過文件的前5條記錄,把第6條記錄作為文件的當(dāng)前位置
                  

1__VE_ITEM__Ø         truncate函數(shù)

truncate函數(shù)接收兩個(gè)參數(shù):一個(gè)文件句柄和一個(gè)文件字節(jié)位置。它從文件字節(jié)處開始移除記錄,直到文件結(jié)束。

Perl字符串處理函數(shù)

Perl字符串處理函數(shù)index

調(diào)用語法position=index(string,substring,position);
解說返回子串substring在字符串string中的位置,如果不存在則返回-1。參數(shù)position是可選項(xiàng),表示匹配之前跳過的字符數(shù),或者說從該位置開始匹配。

Perl字符串處理函數(shù)rindex

調(diào)用語法position=rindex(string,substring,position);
解說與index類似,區(qū)別是從右端匹配。

Perl字符串處理函數(shù)length

調(diào)用語法num=length(string);
解說返回字符串長(zhǎng)度,或者說含有字符的數(shù)目。

Perl字符串處理函數(shù)pos

調(diào)用語法offset=pos(string);
解說返回最后一次模式匹配的位置。

Perl字符串處理函數(shù)substr

調(diào)用語法substr(expr,skipchars,length)
解說抽取字符串(或表達(dá)式生成的字符串)expr中的子串,跳過skipchars個(gè)字符,或者說從位置skipchars開始抽取子串(第一個(gè)字符位置為0),子串長(zhǎng)度為length,此參數(shù)可忽略,意味著取剩下的全部字符。
當(dāng)此函數(shù)出現(xiàn)在等式左邊時(shí),expr必須為變量或數(shù)組元素,此時(shí)其中部分子串被等式右邊的值替換。

Perl字符串處理函數(shù)study

調(diào)用語法study(scalar);
解說用一種內(nèi)部格式提高變量的訪問速度,同一時(shí)刻只對(duì)一個(gè)變量起作用。

Perl字符串處理函數(shù)lc
uc
調(diào)用語法retval=lc(string);
retval=uc(string);
解說將字符串全部轉(zhuǎn)換成小/大寫字母。

Perl字符串處理函數(shù)lcfirst

ucfirst
調(diào)用語法retval=lcfirst(string);
retval=ucfirst(string);
解說將第一個(gè)字母轉(zhuǎn)換成小/大寫。

Perl字符串處理函數(shù)quotameta

調(diào)用語法newstring=quotemeta(oldstring);
解說將非單詞的字母前面加上反斜線(\\)。
語句:string=quotemeta(string);
等效于:string=~s/(\\W)/\\\\1/g;
常用于模式匹配操作中,確保字符串中沒有字符被看作匹配操作符。

Perl字符串處理函數(shù)join

調(diào)用語法join(joinstr,list);
解說把字符串列表(數(shù)組)組合成一個(gè)長(zhǎng)的字符串,在每?jī)蓚€(gè)列表元素間插入串joinstr。

Perl字符串處理函數(shù)sprintf

調(diào)用語法sprintf(string,fields);
解說與printf類似,區(qū)別是結(jié)果不輸出到文件,而作為返回值賦給變量。
例子num=26;
outstr=sprintf("%d=%xhexadecimalor%ooctal\",num,num,num);
print(outstr);
結(jié)果輸出26=1ahexadecimalor32octal

標(biāo)簽:自貢 石嘴山 松原 河北 鄂州 六安 宜春 淄博

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《perl 文件操作總結(jié)》,本文關(guān)鍵詞  perl,文件,操作,總結(jié),perl,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《perl 文件操作總結(jié)》相關(guān)的同類信息!
  • 本頁收集關(guān)于perl 文件操作總結(jié)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章