2016-07-11 22 views
1

Ada noob hier (und auch nicht so heiß mit der Befehlszeile im Allgemeinen). Ich suche nach dem Ada-Befehlszeilen-Redirector, der analog zu ">" in DOS wäre.Was ist der Ada-Befehlszeilen-Redirector analog zu ">"?

Ich führe eine Ada-Anwendung in einer Kommandozeilen-Shell. (William Whitakers WORDS, wenn das hilfreich ist). Ich verwende den Befehl "@", um die WORDS-Anwendung dazu zu bringen, die Liste der Begriffe aus einer Textdatei zu lesen.

Ich möchte die Ausgabe in eine Datei geschrieben werden, nicht nur in der Befehls-Shell angezeigt werden. Ich schaute auf http://www.ada-auth.org/standards/12rm/html/RM-A-15.html, aber sah nichts für Redirect *.

Ebenfalls hilfreich zu wissen wäre, ob der ADA-Befehlszeilen-Redirector die neue Datei erstellt oder ob ich das zuerst selbst machen muss.

Muss ich den Ada PUT Befehl verwenden? Ada.Text_IO? Wenn ja, können Sie mir eine Ressource für die Grammatik zeigen, wie Sie diese Befehle verwenden? Ich habe Ada noch nie zuvor benutzt.

Irgendwelche Gedanken? Danke für Ihre Hilfe.

+2

Ich weiß nicht, was Sie mit dem Befehl "@" meinen. Aber es gibt keine Funktion in Ada für die Interpretation von Shell '<', '<<', '>', '>>' Umleitungen, weil das Ada-Programm (wie jedes andere Programm, das von der Kommandozeile aus ausgeführt wird) sie nie sieht! Wenn Sie 'words> foo.txt' sagen, öffnet die Shell' foo.txt' für die Ausgabe und führt dann 'words' mit der gesendeten Standardausgabe aus - ohne dass' words' etwas darüber wissen - zu 'foo.txt', was wird automatisch geschlossen, wenn 'words' beendet wird. –

Antwort

0

Das Paket Ada.Command_Line dient zum Empfangen von Befehlszeilenargumenten, wenn ein Ada-Programm gestartet wird. Was Sie interessiert, ist wahrscheinlich Ada.Text_IO (chapter A.10 in the RM).

Genauer gesagt, müssen Sie für die Darstellung der Datei eine Variable deklarieren Sie die Standardausgabe umleiten werden:

Redirection : Ada.Text_IO.File_Type; 

Dann erstellen und öffnen Sie es:

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

Schließlich können Sie Standardausgabe umleiten:

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

William Whitaker's Words enthält eine in teractive Kommandozeilen-Interpreter, aber es sieht so aus, als ob Sie es von einem anderen Programm aus über den command-line-Modus steuern möchten. Die genauen Details hängen von der gewählten Umgebung ab. Als konkretes Beispiel unter Verwendung von bash, anstatt @<file> zu lesen, die immer in WORD.OUT schreibt, führen Sie words gefolgt von einer Liste von Wörtern auf Standardeingabe aus; Die Ergebnisse erscheinen in der Standardausgabe:

$ ./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; 

Von Standard-Ausgabe, können Sie auch redirect die Ergebnisse in einer Datei; von python, könnten Sie commands oder subprocess verwenden; in Java könnten Sie exec() oder ProcessBuilder, für example verwenden:

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

image

+1

Siehe auch diese [Antwort] (http://stackoverflow.com/a/5735750/230513). – trashgod

0

ich nicht Github dachte zuerst zu überprüfen, aber es gibt einige sehr gute Informationen über die Worte Projekt-Website William Whitaker, einschließlich ein Benutzerhandbuch hier:

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

Was ich gelernt habe, war folgendes: Während Sie Wörter in einer Windows-Befehlszeile ausführen, geben Sie "#" ein, um die Parameter zu ändern.

Also hier beginnen: William Whitaker's WORDS beginning interface

dann „#“ geben Sie die Parameter und die Art des Programms zu ändern, und drücken Sie die Eingabetaste. Sie werden nacheinander mit jedem Parameter angezeigt und Sie können "n" eingeben, um die aktuelle Parametereinstellung beizubehalten (die entweder auf Ja oder Nein eingestellt werden kann) oder "y", um die Parametereinstellung zu ändern (entweder Ja oder Nein).
[William Whitaker's WORDS Ändern der Parameter] [2]

Nachdem Sie alle Parameter durchlaufen haben, werden Sie gefragt, ob Sie die Parameteränderungen speichern möchten. Das Bild unten zeigt dies. [William Whitakers WORDS speichert alle neuen Parametereinstellungen] [3]

Lassen Sie sich nicht durcheinander bringen, indem Sie denken, dass Sie "y" oder "n" als Parametereinstellung eingeben können. Sie geben "y" oder "n" ein, um die aktuelle Parametereinstellung zu ändern.

Sobald Sie den Write_Output_To_File Parameter auf „y“ gesetzt Sie können Wörter mit einem Befehl wie folgt ausführen:

@ InputLatinWordList.txt

WORTE wird eine Datei namens WORD.out generieren, die Sie Öffnen Sie als Textdatei, um es umzubenennen.

+0

'Ich habe versucht, den Link zur Github-Seite zu veröffentlichen ...' Dies sollte ein Kommentar zu Ihrer Antwort sein, nicht Teil der Antwort. –