- 2008-08-12 (火) 0:31
- Diary | Programming
日曜日はビールを16本も飲んで、クーラーのきいた部屋でくたーっとして、本読んだり、ちょっと仕事したり、プログラミングしてました。
なんのプログラミングかって言うと、まぁ、仕事に役に立つツールをちょろちょろと。その一環で、テキストファイルの連結ツールを作ってたんですけど(フリーソフトでええのんないのかな…)、初に僕が考えたのは以下の方法でした。
テキストファイルをストリーム経由で読み込んで連結する
でも、途中で文字コードの自動判別機能付けたり、コマンドラインオプションとか付け加えているうちに飽きてしまって、ふとぐぐってみると…
ITmedia エンタープライズ:Windows Tips「複数のテキストファイルを結合させたい」
いくつかの文書を作っていて,最終的に1つのファイルとしてまとめたいことがないだろうか。複数のテキストファイルを1つにまとめる場合,もっとも簡単な方法はcopyコマンドを利用したものだ。
例えば,text1.txt,text2.txt,text3.txt,text4.txtといった4つのテキストファイルを結合してtextall.txtにする場合,DOSプロンプトのコマンドラインから,「copy text1.txt+text2.txt+text3.txt+text4.txt textall.txt」と入力すればよい。連結したいファイル名を「+」でつなぎ,最後に半角スペースをあけて出力ファイル名を指定するのだ。
…( Д ) ゜゜こっちの方がむっちゃ簡単じゃんorz
まぁ、このやり方は各テキストファイルの文字コードが同一だというのを前提にしているので(文字コードが混在すると文字化けする)、僕のやり方が全く無駄というわけではないけど…。Unix な人ならきっと自然な発想なんだろうけど、ちょっとトンチですよね。
ふはは…敗北感いっぱいだわ。
—
これと似たような話なんですけど、僕がプログラミングを趣味にしたての頃(9年ぐらい前?)、ある雑誌でこんな話題がありました。(Cマガだったかなー)
うるう年を判定するには?
そのときの僕はやっぱり、4で割って…でも、100で割り切れるときはうるう年じゃないんだよね…とか考えてたんですけど、答えは違ってました。
if ( n年3月1日の前日 != 2月28日 ) ? n年はうるう年 : n年はうるう年とちゃう;
「そんなの卑怯やわっ!><」って、その時は思ったんだけど、僕にとってはそれが一つのブレイクスルーで、プログラミングするときにあんまり肩に力を入れて考えなくなりました。それでも、今でも「そんなの卑怯やわっ><」って叫びたいときはあるんですけど。
—
これはちょっと違う話なんですけど、これも僕がプログラミングを趣味にしたての頃、Delphi ML でこんな話題がありました。
奇数、偶数を判定するにはどうすればいいですか?
普通の人なら if (n mod 2 = 1) then (nは奇数) else (nは偶数) end な話だと思うんですけど(Pascal の文法忘れたんで細かいツッコミはお許しをorz)、その人はまだ右も左も分かんなかったんですよね。案の定、MLは「初心者で許されるレベルじゃねーぞ!」「算数からやり直せ」から「Odd()っていう便利な関数があるよ!」派まで、ひっちゃかめっちゃかに荒れちゃいました。ちなみに、僕は「Odd()ってすげー!っていうか、いちいちこんな関数を用意する必要あるのか?」派でしたが、なんかプログラミングでも何でもそうですけど、ある概念を理解して自分の血肉にするには、ある種のブレイクスルーが必要なんだなーって感じました。
—
うるう年を判定する方法 by MaccroSoft を読んで、ちょっと安心した文系・日曜プログラマーなのでした
- Newer: 自分を褒めてあげたい(笑
- Older: ストリートビュー時代のバイク盗難対策


