2010-01-01から1年間の記事一覧
指定フォルダ内の重複ファイルを検出するプログラムを参照の事。 サイズ0のファイルが検出されたり、3つ以上の重複ファイルが2つ以上の組み合わせに分かれていたりと、大量のファイルを扱うには不便な箇所が色々と見つかったので、修正。 空のファイルを無視…
Perlスクリプトは環境によってはWSHがサポートしていない場合もあるので、色んなマシンで使い回す事を考えるなら、JavaScriptで記述するのが無難だと思う。 よって、JavaScriptでHTMLタグ挿入マクロを書いてみる。 // tag_sub.js var name = 'sub'; if (IsTe…
サクラエディタではユーザーが作成したマクロを登録でき、キーマクロ(mac)や、その他WSH(Windows Scripting Host)で使用可能なスクリプト言語(js, vbs等)を使って記述することもできる。 WSHがサポートしていればPerlスクリプト(pls)も使えるので、それで複…
if (text =~ /[^ -~]+/) { println "半角英数記号以外が含まれている" } else { println "半角英数記号のみ" } 否定条件でもやってみようとしたけど、思うような結果になるパターンが見付からないので割愛。
キーワードが含まれているかを判定 Perl(=~を使った場合) my $text = "apple banana cherry"; print ($text =~ /banana/ ? "yes\n" : "no\n"); Perl(!~と!/.../を使った二重否定) my $text = "apple banana cherry"; print ($text !~ !/banana/ ? "yes\n" : …
「正規表現パターンマッチングのPerlとGroovyでの挙動が異なる」に関する補足 2010-05-20の記事へのuehajさんのコメントを読んでいただくと分かると思いますが、以下の方法で正しく動くようです。 def text = 'apple banana cherry' if (text =~ /banana/) {…
if (text ==~ /.*[^ -~]+.*/) { println "半角英数記号以外が含まれている" } else { println "半角英数記号のみ" } マッチング条件を反対にすると、 if (text !=~ /.*[ -~]+.*/) { println "半角英数記号以外が含まれている" } else { println "半角英数記…
my $text = 'apple banana cherry'; if ($text =~ /banana/) { print "YES\n"; } else { print "NO\n"; } def text = 'apple banana cherry' if (text ==~ /banana/) { println "YES" } else { println "NO" } 同じ正規表現パターンでも、Perlでは"YES"、Gro…
DBI経由でPostgreSQLに接続し、データの登録/参照を行う。 問題 CSVファイルの内容をDBに登録する DBとテーブルはPgAdmin3で用意する。 CSVファイル(sample.csv) name,email,address "山田 太郎",taro.yamada@xxx.com,"東京" "田中 次郎",jiro.tanaka@xxx.c…
XMLファイルを読み込んで内容を表示する。 ソースコード use strict; use warnings; use utf8; use IO::File; use XML::TreePP; use Data::Dumper; binmode STDIN, ':utf8'; binmode STDOUT, ':utf8'; binmode STDERR, ':utf8'; # Input Check if (@ARGV != …
XMLファイルを読み込んで、マップ形式で表示してみる。 ソースコードは以下の通り use strict; use warnings; use utf8; use IO::File; use XML::LibXML::Simple; use Data::Dumper; binmode STDIN, ':utf8'; binmode STDOUT, ':utf8'; binmode STDERR, ':ut…
モジュールはXML::LibXMLを使用。 問題 XML書き出しスクリプト name, email, addressを入力して、XMLでファイルに書き出す。(項目名はプロンプトとして表示する。) 実行結果 $ perl output_xml.pl name : 山田太郎(改行) email : taro.yamada@xxx.com(改行…
CSVを扱うと同時に、パッケージモジュールの扱いにも慣れさせるための問題と解答例。 モジュールはText::CSV_XSを使用。 問題 CSV書き出しスクリプト name, email, addressを入力して、CSVでファイルに書き出す。(項目名はプロンプトとして表示する。) 実…
こちらは日本語文字列(ひらがな/カタカナ)を扱う処理。 問題 ひらがな→カタカナ(キー入力→画面出力) 実行結果 $ perl kana_h2k.pl あいうえお カキクケコ(改行) アイウエオ カキクケコ さシすセそ タちツてト(改行) サシスセソ タチツテト (Crtl+Dで終…
研修生に教えるための問題と解答例を作ってみた。 問題 英小文字→英大文字(キー入力→画面出力) 実行結果 $ perl uppercase.pl abcde(改行) ABCDE This is perl program.(改行) THIS IS PERL PROGRAM. 12345xyz ZYX67890(改行) 12345XYZ ZYX67890 (Ctrl+Dで…
Selenium IDE ブラウザで行った動作をマクロで記録し、その動作を再現してくれるFirefoxアドオン。記録した動作はテーブルで表示され、ソースとして読むこともできる。 ソース形式はDHTMLで、こんな感じ。 ;
今日、RubyとPythonの勉強会に参加した。 Python東海・Ruby東海 合同勉強会 : ATNDWeb開発環境ではPythonベースのweb2pyが気になるところ。 web2py - Wikipedia
メモを取るのに便利なツールを上司の山本さんから教えてもらった。Evernote 会員制で無料で登録できる。 ブラウザから使えるが、クライアントをインストールすれば、ブラウザ以外からでも使える。 プラグイン・クライアント類 また、メモしたいWebサイトの内…
MacOSXにはsshが標準でサポートされており、シェルから接続できる。また、scpコマンドでローカル/ホスト間でファイルコピーも可能。 ただ、ディレクトリ間でのまとまったファイル移動をscpコマンドで行ったり、サーバー上のデータをsshで調べるのは面倒臭い…
PostgreSQLのデータを他のマシンに移行する際、移行先のマシンでGUIが使えない時がある。(sshでのリモートアクセス時など) そんな時、PgAdmin3でCOMPRESSモードでダンプしたデータをそのままpg_restoreでリストアしようとすると失敗する事がある。 圧縮デー…
例えば、xsl:variable select="~"という構文の中のselect属性内の式で文字列を扱う場合、文字列リテラルは単引用符で囲む事になるため、単引用符自体を文字として書くと構文が崩れてしまう。 そこで、これを回避するために、単引用符自体を変数に入れ、変数…
固まってボタンを受け付けなくなり、メニューすら開かなくなった場合、「Command+Option+Esc」同時押しで、強制終了ウインドウを出す。 また、Mac OS X 10.5以上の場合は「Command+Option+Shift+Esc」を3秒間押し続けると、一番手前のアプリを強制終了する。
前に書いたバッチファイルを更新 echo off echo ドラッグ&ドロップのテスト echo ---------------------------------------- echo このバッチファイル : %0 for %%a in (%*) do echo ドラッグしたファイル : %%a echo ------------------------------------…
echo off echo ドラッグ&ドロップのテスト echo ---------------------------------------- echo このバッチファイル : %0 echo ドラッグしたファイル : %1 echo ---------------------------------------- echo カレントディレクトリをこのバッチファイル…
標準入出力経由でファイルの入出力を行う perl program.pl < infile.txt > outfile.txt この場合、STDINから読み込まれるのはキーボード入力ではなくファイルinfile.txtの内容となる。 また、print命令で画面に表示する代わりにファイルoutfile.txtに書き込…
数値で範囲演算子を挟む事で数値が1ずつ増える数列の配列が作れる。 ソース1-1 my @num_list = (0 .. 10); print join (', ', @num_list) . "\n"; ソース1-2 print join (', ', (0 .. 10)) . "\n"; 出力結果1 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 文字列でも同…
参考になるページを見付けたので。Windowsシステムエラーコード一覧
普通に実行する `$command`; print `$command`; system($command); 戻り値を受け取る my $result = system($command); 標準出力を受け取る my $result = `$command`; open my $rs, "$command |"; my @rlist = <$rs>; close $rs; my $result = join '', @rlis…