Oracle では、PL/SQL や CREATE 文 をファイルにしておいて、ファイルにしたスクリプトを実行することができる。
(Windows では) plsql を開き、下のように@マークの後にファイル名を続けて書いて Enter を押せば OK だ。
@"C:Folderxxx.sql"
続きを読む 複数のSQLを一度に実行するためのスクリプト Oracle では、PL/SQL や CREATE 文 をファイルにしておいて、ファイルにしたスクリプトを実行することができる。
(Windows では) plsql を開き、下のように@マークの後にファイル名を続けて書いて Enter を押せば OK だ。
@"C:Folderxxx.sql"
続きを読む 複数のSQLを一度に実行するためのスクリプト FreeMind の内部の文字を検索するツールを作りました。昔は ozFreeMindSearcher 0.9.0 RC3 というツールが公開されていたらしいのですが、今はダウンロードできないということで、作ってしまいました。職場で活用されています。
肝心のソースはgithubに上げております。
指定されたディレクトリ以下にある、拡張子が”.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 でしか使えないので少し後悔しています。
きれいじゃないのは本人が一番よく分かっています。
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
#pragma region "Method" // フォルダが存在すれば true を、存在しなければ false を返す。 // あえて作らなくてもよかった関数。 private: System::Boolean checkFolder(String ^targetDirectory) { if (System::IO::Directory::Exists(targetDirectory)) { return true; } else { return false; } } // 指定されたディレクトリ以下の.mmファイルを、参照型引数のArrayListに追加する。 private: System::Void getMMFiles(String ^targetDirectory, ArrayList^ fileList) { array<String^>^ files = System::IO::Directory::GetFiles(targetDirectory, L"*.mm"); for each (String ^file in files) { fileList->Add(file); } array<String^>^ directories = System::IO::Directory::GetDirectories(targetDirectory); for each (String^ directory in directories) { getMMFiles(directory, fileList); } return; } // 指定されたファイルの中を検索し、ヒットしたら参照型引数のDataGridViewに表示する。 private: System::Void searchFile(String^ fileName, String^ words, Windows::Forms::DataGridView ^dataGrid) { String^ text = L""; array<String^> ^rowValue; reader = gcnew XmlTextReader(fileName); while (reader->Read()) { if (reader->NodeType == XmlNodeType::Element && reader->Name == L"node") { if (text = reader->GetAttribute(L"TEXT")) { if (text->Contains(words)) { rowValue = gcnew array<String^>(dataGrid->Columns->Count); rowValue[0] = fileName; rowValue[1] = text; rowValue[2] = System::IO::Directory::GetParent(fileName)->FullName; hitList->Rows->Add(rowValue); } } } } text = nullptr; reader->Close(); } #pragma endregion #pragma region "Event" // 検索ボタンクリック時の処理。ファイルを検索して表示する。 private: System::Void searchButton_Click(System::Object^ sender, System::EventArgs^ e) { String ^searchWord = wordsComboBox->Text; searchWord = System::Web::HttpUtility::HtmlEncode(searchWord); if (!checkFolder(folderPath->Text)) { MessageBox::Show(L"Target Folder doesn't Exist.", "Error", MessageBoxButtons::OK, MessageBoxIcon::Warning); return; } hitList->Rows->Clear(); fileList = gcnew ArrayList(); getMMFiles(folderPath->Text, fileList); for each (String^ file in fileList) { searchFile(file, searchWord, hitList); } return; } // フォルダ指定ダイアログの表示。 private: System::Void folderBrowseButton_Click(System::Object^ sender, System::EventArgs^ e) { if (checkFolder(folderPath->Text)) { targetDialog->SelectedPath = folderPath->Text; } if (targetDialog->ShowDialog() == Windows::Forms::DialogResult::OK) { folderPath->Text = targetDialog->SelectedPath; } } #pragma endregion |
DataGridView に表示するところは、HTMLのデコードをしなくても表示されました。自動でデコードされるんでしょうか。 DataGridView の各種プロパティなどは結構手を抜いています。
You can expand or erase a partition size in Windows XP with normally installed software.
But only non-system and NTFS partition with continuous blank space in the disk (or with distanced blank space in dynamic disk).
Well then, 1st, type “diskpart” and press enter in command prompt, and you can see “DISKPART>”. Type “list volume”, and you can see partitions used in your machine, then remember the volume number which you want to extend. 2nd, type “select volume N”(N is the volume number which you remembered). 3rd, type “extend” and press enter, then the volume extended to full size as much as it can be.
If you type “extend size=700″ and press enter, the volume will extend to 700 mega bytes.
This command cannot renounce. So be careful when you use it.
長いテキストをPDFにした後で PDFからコピーしてメモ帳に貼り付けたりすると、勝手に改行されていたりします。 そんなときに使えるスクリプトを作りました。
続きを読む JScript: 強制的に改行されたテキストを1行にするレポートデザイナでのオブジェクトを操作するにはどうすればいいか。 わかってしまえば単純なものですが、わかるまでが大変です。 VBでやってみました。
1 2 3 |
Dim UserReport0 as new UserReport DirectCast(UserReport0.ReportDefinition.ReportObjects("Box1"), CrystalDecisions.CrystalReports.Engine.BoxObject).FillColor = Color.Silver |
キャスト(型変換)してプロパティを使えるようにするという込み入った作業が必要。
CType よりも DirectCast のほうが負荷が少ないらしい。C# のは下記ページにある。
参考: クリスタルレポート
クリスタルレポートでは上下中央寄せができないらしいけど、この方法ならフィールドのLocationの設定で微調整できるかも。