2016-07-11 58 views
1

這裏的Ada noob(並且在一般的命令行中也不那麼熱)。我正在尋找類似於DOS中的「>」的Ada命令行重定向器。什麼是類似於「>」的Ada命令行重定向器?

我在命令行shell中運行Ada應用程序。 (威廉惠特克的話,如果這是有益的)。我使用「@」命令讓WORDS應用程序從文本文件中讀取術語列表。

我想輸出寫入文件,而不是隻出現在命令行中。我確實看過http://www.ada-auth.org/standards/12rm/html/RM-A-15.html,但沒有看到任何重定向*。

也有助於知道ADA命令行重定向器是否創建新文件,或者我是否必須先自己做這件事。

我需要使用Ada PUT命令嗎? Ada.Text_IO?如果是這樣,你能指點我的資源來獲得如何使用這些命令的語法嗎?我以前從未使用過Ada。

有什麼想法?謝謝你的幫助。

+2

我不知道'@「命令是什麼意思。但是,Ada沒有解釋shell'<', '<<', '>','>>'重定向的功能,因爲Ada程序(與從命令行執行的任何其他程序一樣)從不會看到它們!如果你說'words> foo.txt',shell打開'foo.txt'輸出,然後執行帶有標準輸出的'words' - 沒有'words'知道它的任何內容 - 到'foo.txt',這是當單詞退出時自動關閉。 –

回答

0

程序包Ada.Command_Line用於在Ada程序啓動時接收命令行參數。你最感興趣的是Ada.Text_IOchapter A.10 in the RM)。

更具體地說,您將需要聲明一個變量來表示你要到標準輸出重定向到文件:

Redirection : Ada.Text_IO.File_Type; 

然後創建並打開它:

Ada.Text_IO.Create (File => Redirection, 
        Name => "latin.words", 
        Mode => Ada.Text_IO.Out_File); 

最後,你可以重定向標準輸出:

Ada.Text_IO.Set_Output (File => Redirection); 
1

William Whitaker's Words包括一個in teractive命令行解釋器,但它看起來像要使用command-line模式從另一個程序控制它。確切的細節取決於您選擇的環境。作爲使用bash的一個具體示例,不是從總是寫入WORD.OUT@<file>中讀取,而是執行words,後跟在標準輸入上的單詞列表;結果會顯示在標準輸出:

$ ./words amo amas 
am.o     V  1 1 PRES ACTIVE IND 1 S  
amo, amare, amavi, amatus V (1st) [XXXAO] 
love, like; fall in love with; be fond of; have a tendency to; 

am.as    N  1 1 ACC P F     
ama, amae N (1st) F [XXXDO] lesser 
bucket; water bucket; (esp. fireman's bucket); 
am.as    V  1 1 PRES ACTIVE IND 2 S  
amo, amare, amavi, amatus V (1st) [XXXAO] 
love, like; fall in love with; be fond of; have a tendency to; 

從標準輸出,還可以redirect結果到文件;從python開始,您可以使用commandssubprocess;在Java中,你可以使用exec()ProcessBuilder,爲example

ProcessBuilder pb = new ProcessBuilder("./words", "amo", "amas", "amat"); 

image

+1

另請參閱此相關的[答案](http://stackoverflow.com/a/5735750/230513)。 – trashgod

0

我沒想到先檢查Github上,但在威廉·惠特克WORDS項目現場一些非常好的信息,包括用戶指南在這裏:

http://mk270.github.io/whitakers-words/operational.html

我得知的是我必須做的是: 在Windows命令行中運行Words時,輸入「#」更改參數。

所以從這裏開始: William Whitaker's WORDS beginning interface

然後輸入「#」改變參數和程序的模式,然後回車。您將按順序顯示每個參數,您可以輸入「n」以保持當前參數設置(可以設置爲yes或no)或「y」以更改參數設置(yes或no)。
[威廉惠特克的文字改變參數] [2]

當你通過所有的參數後,你會被問到是否要保存參數的變化。下圖顯示了這一點。 [威廉惠特克的話保存所有新的參數設置] [3]

不要因爲認爲你可以輸入「y」或「n」作爲參數設置混淆。您正在輸入「y」或「n」來決定是否更改當前參數設置。

一旦你設置的參數Write_Output_To_File爲「y」你可以用這樣的命令來運行詞:

@ InputLatinWordList.txt

的話會生成一個名爲WORD.out,你可以文件打開爲一個文本文件重命名它。

+0

'我試圖發佈鏈接到Github頁面......'這應該是對你的答案的評論,而不是答案的一部分。 –