KIC

KICのメモ帳  古い記事には、とんでもない嘘間違った情報が書かれている場合がありますので注意してください。

C言語でSystem.out.println使ってHello World!!するメモ

#include typedef struct{ void (*println)(char *); }function; typedef struct{ function out; }system; void print(char* str) { printf("%s\n",str); } void CreateSystem(system* sys) { sys -> out.println = print; } void main(void) { system System; CreateSystem(&System); System.out.println("Hello World!!"); }

test.java

久しぶりにJAVAをやってみた。
以下、意味無し御座なり計算プログラム

//test.java class test{ public static void main(String[] args){ int[] parts = {4280,4280,4280,4280,16800,26780,6980,24787,3980,28980, 22980,588,1050,508,160,580,1890,190,640,1030,1030,1890,2060,600} ; int i = 0 ; int C_length = 2 ; KIN10MAN k10 = new KIN10MAN(parts) ; for( i = 0 ; i < parts.length - 1; i++ ){ C_length = 2 * C_length ; } for(i = 0 ; i < C_length ; i++){ /*↓int型10進数をString型2進数に変換*/ String s2 = Integer.toBinaryString(i); /*以下の処理で配列からとる必要な添え字をゲットする*/ k10.soejiGet(s2) ; } } } class KIN10MAN{ int[] point ; static int poinyo ; KIN10MAN(int[] p){ point = p ; } void soejiGet(String s2){ String str2 ="2" ; int s2len = s2.length() ; int i ; poinyo = 0 ; for(i = 0 ; i < s2len ; i++){ //Stringよりi番目の文字をゲット str2 = String.valueOf(s2.charAt(i)); if(str2.equals("1")){ TASIZAN(point[i]) ; } } if(poinyo == 100000 || poinyo == 70000){ System.out.println(s2len+"\t"+s2+"\t"+poinyo) ; } /* System.out.println(s2len+"\t"+s2+"\t"+poinyo) ; if(poinyo <= 100000 && poinyo >= 95000){ System.out.println(s2len+"\t"+s2+"\t"+poinyo) ; } */ } static void TASIZAN(int hoge){ poinyo = poinyo + hoge ; } }

int型の配列から適当に数字を選び、合計が10万と7万になるような組合せを見つけ出す。
御座なり計算プログラムなので、全通りの組合せは計算してない。soejiGetが足し算までやってしまっている。

OpenOffice.org Knowledge & Community

OOoKC(OpenOffice.org Knowledge & Community)

Yahoo!知恵袋、教えて!Goo、ライブドアナレッジにてOpenOfficeと入力して検索した検索結果のRSSをまとめて、一つのRSSにしつつHTML化するというモノ。

画像

大学のゼミで作っているホームページのコンテンツの一つ。

概要

OpenOffice.org Knowledge & Community(以後、OOoKC)は、Yahoo!知恵袋、教えて!Goo、ライブドアナレッジにてOpenOfficeと入力して検索した複数の検索結果のRSSをまとめて、一つのRSSにしつつHTML化するというJavaアプリケーション。

このシステムの主な構成部品は以下の三つ。

  • RSSリーダー
  • RSSライター
  • HTMLライター

RSSリーダーに関しては、informaを使って実現させている。RSSライターに関してもinformaを使えば簡単にできるっぽいが、手元に詳解RSSが無いのでRSS用のテンプレートを作って、そこにtitle要素などをパカパカはめてRSSを生成するという方法で作った。実は、HTML出力の時も同様の方法を使っているので、RSSライターとHTMLライターは、ほぼ同じプログラムで動いてたりする。

JAVAサーブレットでなく、普通のJavaアプリケーションなのでファイルの出力先がローカルのコンピュータ上となる。このため生成したファイルを公開用のWebサーバに送ってやる必要があるわけだが、通常はFTPとかを使って自動的に生成したファイルを送ってやる。

著作権関連の問題

検索結果RSSに含まれているdescription要素といった質問の本文にあたるテキストなんかには著作権が発生しているらしく。これらのコンテンツを二次利用することができないはずである。不特定多数公開Web設置型のRSSリーダーで勝手にRSSを見つけてきて、自分のサイトでdescription要素までも表示しちゃってるサイトがあったりするが、title要素に関しては著作権が発生していないっぽいのでOOoKCではtitle要素のみを扱う。

実はtitle要素にも著作権が発生してるかも知れない。

JAVAでRSSリーダーを作るメモ。2日目

1日目のRSSリーダではRSSの解析にRSS4jというものを利用していたのだが、
どうやら、RSSの解析にRSS4jを使っているとversion2.0とかのRSSが読み取れないらしい。

仕方ないのでRSS4jではなく、Imformaを使ってみる事にした。Imformaは、RSSの0.91、1.0、2.0とATOMそしてOPMLに対応している。

Informaは以下からダウンロードできる。
http://informa.sourceforge.net/
使うのは、ダウンロードしてきたファイルの中の「informa.jar」


Imformaの使い方について調べていたら、『詳解RSS』という本にImformaの使い方が書いてあるとのこと。偶然にも、勝手に大学から借りていた本の中に『詳解RSS』があったので、これを使う。

早速、Imformaを使ってRSSリーダを作ったのだが、コンパイル時にorg.jdom.Documentが見つからないというエラーが出る。

RSSを解析してくれるFeedParserの内部に

import org.jdom.Document;

と書かれている部分があるため、org.jdom.Documentが無いとマズイ。

org.jdom.Documentは、以下からダウンロードできる。
http://www.jdom.org/

ダウンロードしてきたjdomの中にjdom.jarというのがある。
org.jdom.Documentはこの中にある。これを見える位置に置いてやると、コンパイル成功!

というわけで、RSSリーダー完成。


追記(2006/11/9)
Imformaを使って何か作った時
jdomとかLoggingが無いと言われることがある。
これらは、新規に持ってくる必要はなく。
ダウンロードしてきたImformaのファイルの中に一緒に入っているのでそれを使えばよい。

JAVAでRSSリーダー作るメモ。1日目

・コマンドライン上で動くRSSリーダーを作る

RSS情報を加工して利用したかったので、コマンドライン上で動くRSSリーダーを作る事にした。

作り始めてから気づいたのだが、去年買ったスパイダーの本に簡易RSSリーダーのサンプルコードが載っていた。なので、これを参考にして作る事にした。

というわけでRSSリーダーの試作版が完成してコンパイル成功。
実行してみる。

すると以下のようなエラー

Exception in thread "main" java.lang.NoClassDefFoundError

どうもクラスパスの設定が間違っているっぽい。



・xercesを使う

Xerces-J-bin.2.8.1.zipを持ってきて展開すると中には以下のものが詰まっているのだが
data
docs
LICENSE
LICENSE-SAX.html
LICENSE.DOM-documentation.html
LICENSE.DOM-software.html
LICENSE.resolver.txt
NOTICE
Readme.html
resolver.jar
samples
xercesImpl.jar
xercesSamples.jar
xml-apis.jar
どうやら、xercesを使えるようにするには、この中の以下の二つをクラスパスに登録してやる必要があるらしい。
xercesImpl.jar
xercesSamples.jar
(某スパイダーの本では、xercesSamples.jarだけをクラスパスに追加しろと書かれていたんだが。) この二つをクラスパスに追加したら、RSSリーダーが無事稼動した。

 | HOME | 

カレンダー

« | 2008-08 | »
S M T W T F S
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 - - - - - -

過去の記事

カテゴリ

最近の記事

コメント

トラックバック

Appendix

kics

kics

FC2ブログへようこそ!

無料ホームページ アフィリエイト レンタルサーバーFC2ブログ 一戸建て

メール:kic_weblog@yahoo.co.jp