2010年10月13日水曜日

JavaでCSVファイルを読むサンプル

JavaでCSVファイルを読みたい場合に、シンプルなのは、
String.split()を使えばできるが、

a,b,c,d,"dd,dd"

なんていうような形式のCSVファイルは、標準のメソッドのみで
がんばろうとすると、ちょっと工夫がいる。

なんか便利なライブラリは無いかなと探していたけど、
apacheに使えそうなライブラリがあった。
http://commons.apache.org/lang/

以下がj自分で書いて見たサンプルプログラムで意図通りに動作してくれました。

import org.apache.commons.lang.text.StrTokenizer; 

public class CsvReadTest {
/**
* @param args
*/
 public static void main(String[] args) {
  String input="a,b,c,d,\"a,f\"";
  System.out.println(input);
  StrTokenizer tk = StrTokenizer.getCSVInstance(input);
  while(tk.hasNext()){
   String stwString=(String) tk.next();
   System.out.println(stwString);
  }
 }
}

2010年10月5日火曜日

GWT Designer

久しぶりにGoogleWebToolkitのページに行ってみたら、
GWT Designer なるものが、公開されていた。

どうやら、Web画面をGUI形式でデザインできるツールのようだ。
http://code.google.com/intl/en/webtoolkit/tools/gwtdesigner/userinterface/design_view.html
早速ダウンロードしてみる。
素晴らしいではないか。

これで、Webアプリケーションを作るのに大分直感的にできるようになった。

QuickStartの通りにインストールすると、無事インストール完了。
http://code.google.com/intl/en/webtoolkit/tools/gwtdesigner/quick_start.html

ちなみにeclipse3.4だとうまくいかなかったので、3.6にしてやってみた。

手順を簡単に。
1.下記からGWTをeclipseに追加
http://code.google.com/intl/en/eclipse/docs/download.html

2.GWT Designerをeclipseに追加
http://code.google.com/intl/en/webtoolkit/tools/download-gwtdesigner.html

3.通常通りGWTのプロジェクトを追加。

4.下記ページ参考に従来Webページを表現したJavaソースをOpenWithで「WindowBuilder Editor」を使って開く
http://code.google.com/intl/en/webtoolkit/tools/gwtdesigner/features/editing_existing_window.html

これで、あとは、画面からコンポーネントを張ったりしてやれば、かけます。

久々にGWTアプリを作ってみようかな。

2010年7月17日土曜日

Google Chartで数式

Google Chartでは、数式もかけるようです。
数式なんて実際には書かないだろうけども。

LaTexの文法が使えるようなんですごいですね。

といってもLaTexの文法なんて学生時代に使ったきりつかってないので、
すっかり忘れてしまっているが。


ためしに書いてみると



http://chart.apis.google.com/chart?chs=100x30&cht=tx&x=tx&chl=\frac{a^2%2Bb^2}{3}=c^2


こんな感じ。

chco=FF0000で色を指定できるみたいで、こんなのもかけます。




昔、やさしく数学をという数学のメルマガを書いていたときにこんな機能があれば
便利だったなと思う。
リンク:
Mathematical (TeX) Formulas - Google Chart Tools / Image Charts (aka Chart API) - Google Code

Google Chartで円グラフ

GoogleChartってどんなことができるのか遊んでみる。

まずは、HelloWorldとして3Dの円グラフを表示する。

表示方法は、簡単で下記のURLを呼び出せばできる。

http://chart.apis.google.com/chart?chs=600x200&cht=p3&chd=t:70,40,30&chl=%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF

%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A
takes90
 
数字は適当ですが、こんな感じのことがURLの文字列をいじるだけでできてしまいます。
 
例)
みんなの党に期待していますか。というアンケートの結果。

2010年7月14日水曜日

Delphiでメールアドレスをチェックする

Delphiでメールアドレスをチェックするコード無いかなと探してみたら、
日本語のページでは見つからず。

やっぱり、英語で検索しないと欲しい情報にはたどり着けないですね。

Validate email address

このソースでは、


xxx@xx.com

みないな感じかどうかをチェックしている感じです。

2010年6月29日火曜日

JavaでメモリDBを簡単に構築する

メモリDBをDerbyというオープンソースを利用すれば簡単に利用できる。
あまりの簡単さにびっくりしてしまった。

まずは、ソフトをダウンロード。
http://db.apache.org/derby/

binフォルダにPATHを張り

ijと打つとコマンドラインDBが作成できる。

 java -jar derbyrun.jar ij

ij version 10.5
ij> connect 'jdbc:derby:memory:MyDB;create=true';
ij> create table my_table(x int);
0 rows inserted/updated/deleted
ij> insert into my_table values 1, 2, 3;
3 rows inserted/updated/deleted
ij> exit;

ちなみに
'jdbc:derby:MyDB;create=true';

と書くと普通にファイルのDBができる。

これをJavaプログラムで書くと
下記に書いてあるやつをちょっと変更して
http://db.apache.org/derby/docs/10.6/getstart/getstartderby.pdf

こんな感じ。
String driver = "org.apache.derby.jdbc.EmbeddedDriver";
String dbName="jdbcDemoDB";
String connectionURL = "jdbc:derby:memory:" + dbName + ";create=true";
...
String createString = "CREATE TABLE WISH_LIST "
+ "(WISH_ID INT NOT NULL GENERATED ALWAYS AS IDENTITY "
...
+ " WISH_ITEM VARCHAR(32) NOT NULL) " ;

必要なファイルは、derby.jarのみ。これでJavaプログラム内にのメモリデータベースが
できる感じです。

これは、非常に便利だなと思った。

axis2でWSDLからWebサービスを作る

axis2を使うと簡単にSOAPを利用したWebサービスが構築できる。
よくできてるなと思う。

下記のページを参考にして。
http://ws.apache.org/axis2/1_5_1/userguide-buildingservices.html#deployrun

いろいろ方法はあるが、ここではWSDLファイルからサービスを作成する方法。

axis2のbinフォルダに行き

WSDL2Java -uri file:///C:/apps/axis2/samples/zSample/Axis2UserGuide.wsdl -p org.apache.axis2.axis2userguide -d adb -s -wv 1.1 -ss -sd -ssi

を実行するとソースができる。

これのSkeltonクラスに実装を記述した後、こちらで生成されたたbuild.xmlに対して
antを実行すると、aarファイルが作成されるので、これをaxis2のservceフォルダに
置いてあげてbinフォルダのスタート用バッチをキックしてあげて

http://localhost:8080/axis2/

にアクセスすればサービスが作れている。

なんて簡単にできてしまうんだと思った。