010指令碼編寫入門

2021-05-26 18:22:59 字數 954 閱讀 4551

學過c/c++的您會發現010 editor的檔案解析指令碼(即010指令碼)看起來跟c/c++的結構體定義比較相似。然而檔案解析指令碼不是結構體,而是乙個自上而下執行的程式,所以它可以使用if、for、while等語句。

在010指令碼中,宣告的每個變數都對應著檔案的相應位元組。比如以下宣告:

char header[4];

int numrecords;

這意味著,檔案的首4個位元組將會對映到字元陣列header中,下4個位元組則會對映到整型變數numrecords中,並最終顯示在解析結果中。

然而,在編寫010指令碼時可能會遇到這種情況:需要定義一些變數,但是這些變數並不對應著檔案中的任何位元組,而僅僅是程式執行中所需要的,這時可以使用local關鍵字來定義變數。比如以下宣告:

local int i, total = 0;

int recordcounts[5];

for(i=0; i < 5; i++)

total+= recordcounts[i];

double records[total];

這樣,i和total就不會對映到檔案中去,也不會在解析結果中顯示出來。

, bgcolor=, comment= "",open=true|false|suppress, hidden=true|false,

read=,write=>

下面給出乙個簡單的例項。假設有一種檔案格式如圖17.3.2所示,我們可以看出,它由乙個header和若干個record資料塊組成。在header中,numrecords表示record的個數,而在record中,根據header中version值的不同,data的型別也不同。

根據檔案格式,我們可以寫出如下指令碼:

struct file header;

struct record record[ file.header.numrecords ];

} file;

圖書詳細資訊:

010指令碼編寫入門

學過c c 的您會發現010 editor的檔案解析指令碼 即010指令碼 看起來跟c c 的結構體定義比較相似。然而檔案解析指令碼不是結構體,而是乙個自上而下執行的程式,所以它可以使用if for while等語句。在010指令碼中,宣告的每個變數都對應著檔案的相應位元組。比如以下宣告 char ...

010指令碼編寫入門

學過c c 的您會發現 010 editor 的檔案解析指令碼 即 010指令碼 看起來跟 c c 的結構體定義比較相似。然而檔案解析指令碼不是結構體,而是乙個自上而下執行的程式,所以它可以使用if for while 等語句。在010 指令碼中,宣告的每個變數都對應著檔案的相應位元組。比如以下宣告...

centos7 指令碼編寫2

了解shell shell是命令語言直譯器,擁有自己的shell命令集 是使用者和linux核心之家的介面程式,在命令提示符 命令列下輸入的命令由shell解釋後傳給核心 是一種解釋型的程式語言 shell可以執行內部 內嵌命令和執行乙個應用程式。linux系統中最常用的3種shell分別是bour...