「コード」カテゴリーアーカイブ

eclipse で折り返しする方法


eclipse は標準では行の折り返し表示ができません。長い文になると自分で改行する必要があります、 Visual Basic 6 のように。

そんなこともあり、eclipse から距離を置いていたのですが、今日、折り返しする方法を見つけました。 プラグインを使用します。

試したことのあるプラグイン

EclipseColorer

色をつけたりするのが売りの機能ですが、それだけではなく、行の折り返し表示もできます。

Eclipse Word-Wrap

行の折り返しに特化したプラグインです。 (ただし、EclipseColorerと違って行番号表示がおかしくなります。)

Eclipse の比較対象とされることが多い Netbeans や Intellij Idea では折り返し表示ができます。

機能として追加されました

eclipse の改行については長い間議論されていて、 2003年時点で折り返し機能の要望が Eclipse のサイトに挙がっています。

そして Eclipse 4.6 M4 Neon で待望の折り返し機能が追加されました。 (参考: Eclipse Project Neon (4.6) M4 News)


ORA-01799: 列は副問合せに対して外部結合されません。


今日もエラーが出ました。

ORA-01799: 列は副問合せに対して外部結合されません。

下のように解決しました。 (使っているデータベースは Oracle 10g11g のどっちかでした。)

事例 1

エラーが出たのは次の結合条件。

LEFT JOIN で結合するテーブルの結合条件に副問合せをつかうと駄目みたいです。

期待する結果

上のコードでやりたいのは、 JNYUKA.BUNNO がメインテーブルの値(MAIN.BUNNO)以下になっているもので、最大のものをとることです。下のように。

MAIN BUNNO JNYUKA BUNNO FNY BUNNO
1 1 1
2 2 2
3 2

上のコードではエラーがでます。 カーソルを使っていったんテーブルに入れるのも面倒です。そこで・・・

このようにすればエラーはでません。 BUNNOがメインテーブル以下のものをすべて結合した後で、最大のもののみに絞り込むイメージ。

事例 2

別の例があったので・・・

Oracleで子テーブルの最新を外部結合できない!? で次のコードを見つけました。

この場合だと

とすればいいことになります。

ON ではなくて JOIN の中に条件を入れてしまう方法でも解決できます。


複数のSQLを一度に実行するためのスクリプト


Oracle では、PL/SQL や CREATE 文 をファイルにしておいて、ファイルにしたスクリプトを実行することができる。

(Windows では) plsql を開き、下のように@マークの後にファイル名を続けて書いて Enter を押せば OK だ。

@"C:\Folder\xxx.sql" 続きを読む 複数のSQLを一度に実行するためのスクリプト


FreeMind のファイル(.mm) を一括検索するツール


FreeMind の内部の文字を検索するツールを作りました。昔は ozFreeMindSearcher 0.9.0 RC3 というツールが公開されていたらしいのですが、今はダウンロードできないということで、作ってしまいました。職場で活用されています。

肝心のソースはgithubに上げております。

FreeMindSearcher

2012/05/06 時点での機能

指定されたディレクトリ以下にある、拡張子が”.mm”のファイルをすべて取得して、その中の単語を検索する→単語が見つかった場合、そのノードとファイル名、ディレクトリ名をDataGridView に出力する、といった単純なものです。

AND 検索 、OR 検索 はできません。

アプリケーションだけほしい人は、release フォルダの中の FreeMindSearcher.exe を持っていってください。 動かすには .Net Framework 2.0 が必要です。 32bit アプリケーション です。

やっていることの説明

FreeMind のファイルを見るとわかるのですが、形式は XML になっていて、それぞれのノードは node タグ になっています。そして、テキスト部分は TEXT 属性 なので、TEXT 属性 を検索するようにします。ただし、TEXT 属性の値は HTMLエンコード (漢字5文字ぐらいでなんか言い方があったはず) されていますので、検索前に検索文字列を HTMLエンコード しています。

Search ボタン をクリックすると、まず、検索する語句がHTMLエンコードされます。 次に、getMMFiles が指定ディレクトリ以下のマインドマップのファイルパスを再帰的に取得します。最後に searchFile がファイルの中を 検索して、ヒットしたものを DataGridView に出力します。searchFile は単一のファイルについての処理なので、一つ一つのファイルについて searchFile を実行しています。

処理部分のコード

Visual C++ 2005 で作りましたが、 Windows でしか使えないので少し後悔しています。

きれいじゃないのは本人が一番よく分かっています。

DataGridView に表示するところは、HTMLのデコードをしなくても表示されました。自動でデコードされるんでしょうか。 DataGridView の各種プロパティなどは結構手を抜いています。