Windows+C#でrev風コマンドを作る


アニメ『亜人ちゃんは語りたい』
「あじん」とかいて、「デミ」と読みます。吸血鬼とかデュラハンとか出てきます。デュラハンってのは、胴体と頭が取れてる怪物です。
いつも首をもって移動しないといけないので、すごく不便ですが、真後ろでも見ることができるのが便利です。

ヘッドがリバースできるっててことで、C#でhead風コマンドからrev風コマンド作ります。このC#シリーズもそろそろこの辺でひと段落させようかと思います。

< class Head{
---
> class Rev{

ヘッドがリバースです。

< 		int i,tmp,num=10;

いらないものは削除。

< 		try{
< 			if((tmp=int.Parse(args[0])) < 0){
< 				num=tmp*-1;
< 				fileind=1;
< 				filenum--;
< 			}
< 		}catch{
< 		}
< 

削除。引数なしです。

< 				if(filenum>1)
< 					Console.WriteLine("==> "+args[fileind]+" <==");

削除ばかりです。

< 			for(i=1;(line=tr.ReadLine())!=null && (i<=num);i++){
< 				Console.WriteLine(line);
---
> 			for(;(line=tr.ReadLine())!=null;){
> 				char[] a = line.ToCharArray();
> 				Array.Reverse(a);
> 				Console.WriteLine(a);

これが反対にするロジックです。Reverseは、引数で指定した配列を、破壊的置換してくれるので戻り値が不要です。

全ソース。

     1	using System;
     2	using System.IO;
     3	
     4	class Rev{
     5		static void Main(string[] args){
     6			int fileind=0,filenum=args.Length;
     7	
     8			TextReader tr;
     9			do{
    10				if(filenum==0){
    11					tr=Console.In;
    12				}else{
    13					tr=new StreamReader(args[fileind]);
    14				}
    15				string line;
    16				for(;(line=tr.ReadLine())!=null;){
    17					char[] a = line.ToCharArray();
    18					Array.Reverse(a);
    19					Console.WriteLine(a);
    20				}
    21				tr.Dispose();
    22			}while(++fileind<args.Length);
    23		}
    24	}

結果です。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA