Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| efinf:blc2016:ruby:inputoutput [2016/09/25 13:36] – Ivo Blöchliger | efinf:blc2016:ruby:inputoutput [2016/09/25 13:45] (current) – Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | {{backlinks> | ||
| + | ===== Input / Output ===== | ||
| + | ==== Lesen von STDIN ==== | ||
| + | * gets # Liest eine ganze Zeile also String ein, inklusive " | ||
| + | * STDIN.readlines # Liest alles in ein Array von Zeilen, inklusive " | ||
| + | ==== Ausgabe auf STDOUT ==== | ||
| + | * puts # Ausgabe mit einem " | ||
| + | * print # Augabe ohne zusätzliches " | ||
| + | ==== Kommandozeilenargumente ==== | ||
| + | * ARGV ist ein Array mit den Kommandozeilenargumenten | ||
| + | <code ruby argv.rb> | ||
| + | p ARGV | ||
| + | </ | ||
| + | <code bash> | ||
| + | > ruby argv.rb hello 1 2 | ||
| + | [" | ||
| + | > | ||
| + | </ | ||
| + | ==== Lesen / Schreiben in Dateien ==== | ||
| + | Billige und flexible Variante: Redirection auf der Kommandozeile | ||
| + | <code bash> | ||
| + | # Inhalt von inputDaten.txt wird STDIN: | ||
| + | ruby meinprogramm.rb < inputDaten.txt | ||
| + | # STDOUT wird in outputDaten.txt geschrieben | ||
| + | ruby meinprogramm.rb > outputDaten.txt | ||
| + | # Kombiniert | ||
| + | ruby meinprogramm.rb < inputDaten.txt > outputDaten.txt | ||
| + | | ||
| + | # Es ist sogar möglich, den Output eines Programms als Input des nächsten zu verwenden | ||
| + | ruby datenmais.rb | ruby maisfresser.rb | ||
| + | </ | ||
| + | |||
| + | Öffnen einer Datei | ||
| + | <code ruby> | ||
| + | daten = File.new(" | ||
| + | ersteZeile = daten.gets.chomp | ||
| + | rest = daten.readlines.map{|l| l.chomp} | ||
| + | daten.close | ||
| + | | ||
| + | # Alternative (schliessen automatisch) | ||
| + | ersteZeile="" | ||
| + | rest = [] | ||
| + | File.new(" | ||
| + | ersteZeile = daten.gets.chomp | ||
| + | rest = daten.readlines.map{|l| l.chomp} | ||
| + | } # Datei automatisch geschlossen. | ||
| + | | ||
| + | # Ausgabe: | ||
| + | File.new(" | ||
| + | daten.puts ersteZeile | ||
| + | daten.puts rest | ||
| + | } # Datei automatisch geschlossen. | ||
| + | | ||
| + | </ | ||