ForNext
Shut the fuck up and write some code
標準入力から読んで、標準出力に書く (行番号付加)
VBScript
更新日 : 2008.05.23
Dim i : i = 0 Do Until WScript.StdIn.AtEndOfStream i = i + 1 WScript.StdOut.WriteLine Right("000000" & FormatNumber(i, 0, 0, 0), 6) & " | " & WScript.StdIn.ReadLine Loop
S:\>cscript //nologo s:\lesson006.vbs < s:\lesson002.vbs 000001 | Dim var1: var1 = "Hello" 000002 | Dim var2: var2 = "World" 000003 | WScript.Echo var1 + ", " + var2 + "!"
JScript
更新日 : 2008.05.23
var i = 0; var s; do { i++; s = "000000" + i.toString(); s = s.substr(s.length - 6, 6); WScript.StdOut.WriteLine(s + " | " + WScript.StdIn.ReadLine()); } while (! WScript.StdIn.AtEndOfStream);
S:\>cscript //nologo s:\lesson006.js < s:\lesson002.js 000001 | var var1 = "Hello"; 000002 | var var2 = "World"; 000003 | WScript.Echo(var1 + ", " + var2 + "!");
Perl
更新日 : 2008.05.23
$i = 0; printf "%.6d | %s", ++$i, $_ while();
S:\>perl s:\lesson006.pl < s:\lesson002.pl 000001 | $var1 = "Hello"; 000002 | $var2 = "World"; 000003 | print $var1, ", ", $var2, "!", "\n";
PHP
更新日 : 2008.05.23
<?php $fp = fopen("php://stdin", "r"); $i = 0; while (!feof($fp)) { printf("%06d | %s", ++$i, fgets($fp)); } fclose($fp); ?>
S:\>php s:\lesson006.php < s:\lesson004.php 000001 | <?php 000002 | $var1 = "Hello"; 000003 | $var2 = "World"; 000004 | print $var1, ", ", $var2, "!", "\n"; 000005 | ?> 000006 |
何故か、1行余分に出力されてしまう...
<?php $fp = fopen("php://stdin", "r"); $i = 0; while (!feof($fp)) { if ($s = fgets($fp)) printf("%06d | %s", ++$i, $s); } fclose($fp); ?>
S:\>php s:\lesson007.php < s:\lesson004.php 000001 | <?php 000002 | $var1 = "Hello"; 000003 | $var2 = "World"; 000004 | print $var1, ", ", $var2, "!", "\n"; 000005 | ?>
Python
Ruby
更新日 : 2008.05.23
STDIN.each_with_index do |line, i| puts format("%.6d | %s", i+1, line) end
S:\>ruby s:\lesson006.rb < s:\lesson003.rb 000001 | var1 = "Hello"; 000002 | var2 = "World"; 000003 | print var1, ", ", var2, "!", "\n";
PowerShell
更新日 : 2012.06.08
PS P:\> function addLineNo { begin { $i = 1 } process { ($i.ToString("00000:") + $_) $i++ } } PS P:\> Get-Content s:\lesson006.rb | addLineNo | Set-Content s:\lesson006.rb.copy PS P:\> Get-Content s:\lesson006.rb.copy 00001:var1 = "Hello"; 00002:var2 = "World"; 00003:print var1, ", ", var2, "!", "\n";
Scala
F#
C
C++
C++Builder
VC++
C#
更新日 : 2012.05.10
using System; using System.IO; class lesson0003 { static void Main(string[] args) { TextReader input = Console.In; string line; int i = 0; while ((line = input.ReadLine()) != null) { Console.WriteLine("{0,6} | {1}", i++, line); } input.Dispose(); } }
S:\>csc lesson0003.cs /nologo S:\>lesson0003 < s:\lesson003.rb 1 | var1 = "Hello"; 2 | var2 = "World"; 3 | print var1, ", ", var2, "!", "\n";
前ゼロになってなかった...
using System; using System.IO; class lesson0004 { static void Main(string[] args) { TextReader input = Console.In; string line; int i = 0; while ((line = input.ReadLine()) != null) { Console.WriteLine("{0:D6} | {1}", i++, line); } input.Dispose(); } }
S:\>csc lesson0004.cs /nologo S:\>lesson0004 < s:\lesson003.rb 000001 | var1 = "Hello"; 000002 | var2 = "World"; 000003 | print var1, ", ", var2, "!", "\n";
Java
更新日 : 2012.05.10
import java.io.*; public class lesson0004 { public static void main(String args[]){ try { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String line; int i = 0; while ((line = in.readLine()) != null) { System.out.printf("%6d | %s\n", i++, line); } } catch (Exception e) { System.err.println(e); } } }
S:\>javac lesson0004.java S:\>java -cp . lesson0004 < s:\lesson003.rb 1 | var1 = "Hello"; 2 | var2 = "World"; 3 | print var1, ", ", var2, "!", "\n";
Javaでも同じ失敗を...
import java.io.*; public class lesson0005 { public static void main(String args[]){ try { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String line; int i = 0; while ((line = in.readLine()) != null) { System.out.printf("%06d | %s\n", i++, line); } } catch (Exception e) { System.err.println(e); } } }
S:\>javac lesson0005.java S:\>java -cp . lesson0005 < s:\lesson003.rb 000001 | var1 = "Hello"; 000002 | var2 = "World"; 000003 | print var1, ", ", var2, "!", "\n";