ruby

調査という名のもとにあっち方面へ

今日の入り口 昨日のChucKとかAudicleに刺激を受けて、live coding とかそのあたりをいろいろ見ていたら、まだまだ面白い音楽系プログラミングがあることを知った。 http://www.toplap.org/index.php/ToplapSystems ↑ここにいろいろまとめられている。 その…

RubyでTCPテストサーバー

昨日のエントリでCで記述したテストサーバー(TCPテスト - octech)と同等のものをRubyでも作ってみた。(それに伴い昨日のRuby TCP クライアントも少々修正) TCPサーバーには、TCPSocketクラスではなく、TCPServerクラスを使うようです。 プログラミング言…

RubyでTCPテストクライアント

サーバーが出来たらテストするのにクライアントが必要、ということでサクッと記述できるクライアントをRubyで書いてみた。(もちろんCでも書いたのだけど、Rubyでもね。ということで。) といっても、リファレンスを参考にして、インターフェイスとエラー処…

case文やif文で型を比較したときの挙動

oscモジュールのソースを見ていて不思議なコードがあり、ちょっと仕様から調べてみた。 そのコードとはcase-whenで自動的に型を判別してくれる、というものなのだ。 それに関連していろいろテストしてみたらなかなか面白い挙動になったのでメモしておく。

RubyのOSCモジュール

RubyでOSC(OpenSoundControl)を扱うためのモジュールをインストールする手順をメモしておく。 インストール We retire raa.ruby-lang.org からtarアーカイブをダウンロード。 今日ダウンロードしたファイルは osc-0.1.3.tar.gz でした。 コマンドラインで、…

指定ディレクトリ以下のファイルを削除

irbでサクサク作業 これぐらいのことならirbで入力したほうが簡単。 # 現在のディレクトリ以下のSubversionデータ(.svnディレクトリ)を削除. require 'fileutils' FileUtils.rm_r( Dir.glob( '**/.svn' ), {:force=>true} ) ワンライナー化 これをワンライナ…

FasterCSVがCGIから使えない

RubyGemsでインストールすると、ライブラリの場所がちょっと違うことが原因なのかな? C:\RUBY\LIB\RUBY ├─1.8 .. 普通のCSVライブラリはここに入っている。 ├─gems │ └─1.8 .. FasterCSVはこの下に入る。 └─site_ruby └─1.8うーん、何かパスを通す必要があ…

RubyGemsとFasterCSVと

ネットでいろいろ見ていたら、こんなRubyライブラリを発見した。 FasterCSV - Ruby 通常のCSVライブラリより高速、という名前の代物だけど、いったいどれくらい早いのかが気になるので、とりあえずテストしてみることにした。 その前にインストールにはRubyG…

RubyでURLエンコード/デコード

RubyスクリプトをCGIとして動作させているとき、クライアントからURLエンコードされた文字列を元の文字列に変換するには、CGIモジュールを使うと簡単。以下のようにできてしまう。 require "cgi" cgi = CGI.new # .. ここで qsにURLエンコードされた文字列を…

Rubyで日付整形

プログラミング言語 Ruby リファレンスマニュアル t=Time.now p t.strftime( '%Y%m%d' ) # => 20070322

CGIのPOSTメソッドからパラメータ取得

CGIとしてPOSTメソッドから受け取る文字列を処理するには以下のようなコードとなります。 #!ruby require "cgi" cgi = CGI.new str = cgi.params["textfield1"] # 文字列パラメータを取得. p str.class # => Arrayと表示されます。バラバラの文字なのです。 …

引数を含めたURLからデータを取得する手順

・プログラミング言語 Ruby リファレンスマニュアル [http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=cgi] みたいなURLの?以降を処理するCGIを書きたいと思ったのです。 このデータ部分、CGIからは、QUERY_STRINGという環境変数(?)経由で取得…

漢字コードの変換

Rubyで漢字コードを変換するには、Kconvというライブラリを使うと便利。 プログラミング言語 Ruby リファレンスマニュアル # SJIS のテキストファイルを UTF-8 に変換するスクリプト. src_file = File.open( "src_sjis.txt", "r" ) # 読み込みファイル(SJIS)…

IPアドレスを取得

実行しているPCの名前、IPアドレスを取得するには以下のコード. require "socket" Socket.gethostname # => "PC001" のようなPC名 IPSocket.getaddress( Socket.gethostname ) # => "127.0.0.1" のようなアドレス 参考URL:プログラミング言語 Ruby リファレ…

C/C++からRubyスクリプトを実行

C/C++からRubyスクリプトを実行したいと思ってちょっと調査してみました。 「DOFI-BLOG どふぃぶろぐ RubyをC/C++アプリケーションに組み込もう」を参考にしてビルドしてみました。 環境と追加でやったことは以下のとおり。 環境:VisualStudio 2005, .NET 2…

ワンライナで、テキストファイル内の各行をダブルクォーテーションで括る

> ruby -i.org -l -p -e '$_="\"#{$_}\""' target.txt 処理対象のオリジナルファイルは target.txt.org という名前でコピーされます. 参考URL:プログラミング言語 Ruby リファレンスマニュアル

rubyでCRC-32チェック(改訂版)

以前、rubyでCRC-32を計算するスクリプトを書きましたが、ちょっと問題があるコードだと判明したので、書き直しました。(自分で使おうとしてコピペして実行してたら問題点に気づきました。。"Eat Your Own Dog Food"ってやつですね。) ファイルをバイナリ…

整数のビット

さらっとメソッドを流してみてみたら、Integer に self[nth] という面白いメソッド発見。 nth番目のビットのon/offを0/1で返してくれる、というものだ。 # "5"を2進表現してみる. [4,3,2,1,0].each{ |bit| print (5)[bit] } #=> 00101 なんに使うの?と聞か…

数値の基本

基本的な部分に関して復習。復習といいつつも、実は初めて知ることが多かったりするのだけど、それはいいか。 数値の抽象クラスは、Numeric クラスなのだけど、多分普通は直接使わない。 ・プログラミング言語 Ruby リファレンスマニュアル ↑のページを見る…

多次元配列確保でハマり!

どこかのサイトでみて、「お、かっこいい!」とか思った多次元配列の初期化をやっていて、ハマった・・。 そのコードはこちら↓ # 多次元配列確保したい. height = 24 width = 32 array = Array.new( height, Array.new( width, 0 ) ) C言語とかでいうところ…

csvの数値をベタでbyte配列に変換

というわけで、今回はcsvに書かれた符号付き整数をbyteごとに並べるツールを作るので、考えてみた。ちなみにあまりエラー処理は詳しくしていません。元のcsvファイルをきっちり作ることを前提にしています。 require 'csv' # 読み込むCSVファイル名. SrcFile…

RubyのCSVモジュール

今日も、とあるゲームの修正作業。 いや、修正とは名ばかりで仕様追加。ゲームが読み込むデータを追加する必要が出てきた。そのデータの制作、コンバート、読み込みなどもろもろ含めてタイムリミットは2時間! データそのもののフォーマットはベタなバイナリ…

バイナリファイルに任意のバイナリデータを書き込む.

これも、packという関数の使い方が分かればどうってことない話です。 参考サイト:プログラミング言語 Ruby リファレンスマニュアル # open. dstFile = File.open( "dstfilename.dat", "wb" ) # 1つの数値を32bit signed intで書き込む. testData = 999 dstF…

バイナリファイルをコピー

バイナリファイルを新しくコピーする手順がなかなか分からなかったのでメモしておく。手順というか、使うべき関数が分かっちゃえば簡単な話です。 # open. dstFile = File.open( "dstfilename.dat", "wb" ) srcFile = File.open( "srcfilename.dat", "rb" ) …