文書閲覧プログラム

Similar documents
ICONファイルフォーマット

ファイル操作

VB.NET解説

ルーレットプログラム

VB 資料 電脳梁山泊烏賊塾 音声認識 System.Speech の利用 System.Speech に依るディクテーション ( 音声を文字列化 ).NetFramework3.0 以上 (Visual Studio 2010 以降 ) では 標準で System.Speech が用意されて居るの

プロセス間通信

Userコントロール

画像閲覧プログラム

ファイル監視

データアダプタ概要

ウィンドウ操作 応用

Prog2_15th

スライド 1

C#の基本

回文作成支援プログラム

正規表現応用

グラフィックス

NotifyIconコントロール

相性占いプログラム

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

相性占いプログラム

ListViewコントロール

回文作成支援プログラム

VB実用⑦ エクセル操作Ⅰ

Prog2_12th

万年暦プログラム

万年暦プログラム

ブロック パニック

ファイル操作-インターネットキャッシュ

相性占いプログラム

C#の基本2 ~プログラムの制御構造~

画像閲覧プログラム

平成 30 年度 プログラミング研修講座 岩手県立総合教育センター

通信対戦プログラム

回文作成支援プログラム

ファイル操作-バイナリファイル

回文作成支援プログラム

プラグイン

草競馬プログラム

占領双六ゲーム

Visual Basic 資料 電脳梁山泊烏賊塾 コレクション初期化子 コレクション初期化子 初めに.NET 版の Visual Basic では 其れ迄の Visual Basic 6.0 とは異なり 下記の例の様に変数宣言の構文に 初期値を代入する式が書ける様に成った 其の際 1 の様に単一の値

テキストファイルの入出力1

ブロック崩し風テニス

グラフィックス 目次

チャットプログラム

Prog2_2nd

回文作成支援プログラム

構造体

3D回転体プログラム

インベーダープログラム

ICONファイルフォーマット

VB実用Ⅲ⑩ フリーデータベースⅡ

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

PowerPoint プレゼンテーション

3D回転体プログラム

GUIプログラムⅣ

回文作成支援プログラム

ハッシュテーブル

Microsoft Word - VB.doc

パラパラ漫画

Microsoft Word -

VB実用⑧ エクセル操作Ⅱ

何時何処で誰が

グラフィックス 目次

データベースⅠ

データベース1

スレッド操作 タイマー

キー操作

Java講座

モグラ叩きプログラム

PowerPoint プレゼンテーション

Section1_入力用テンプレートの作成

Prog2_4th

PowerPoint プレゼンテーション

DAOの利用

印刷

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

PowerPoint プレゼンテーション

Visual Studio2008 C# で JAN13 バーコードイメージを作成 xbase 言語をご利用の現場でバーコードの出力が必要なことが多々あります xbase 言語製品によっては 標準でバーコード描画機能が付加されているものもあるようで す C# では バーコードフォントを利用したりバー

64bit環境で32bitコンポーネントの利用

マルチメディア・音声

PowerPoint プレゼンテーション

Microsoft Excel操作

正規表現概要

占領双六ゲーム

Prog1_6th

VB.NET解説

正規表現詳細

目次 はじめに... 3 システムの必要条件... 4 ライセンス認証... 4 アクティベーション... 6 開発... 7 手順 1. アプリケーションの作成... 7 手順 2. データソースの作成と代入... 7 手順 3. テンプレートの作成 手順 4. レポートビューアの追加

ExcelVBA

2 / 16 ページ 第 7 講データ処理 ブック ( ファイル ) を開く第 6 講で保存したブック internet.xlsx を開きましょう 1. [Office ボタン ] から [ 開く ] をクリックします 2. [ ファイルの場所 ] がデータを保存している場所になっている

スライド 1

パラパラ漫画

チャットプログラム

break 文 switch ブロック内の実行中の処理を強制的に終了し ブロックから抜けます switch(i) 強制終了 ソースコード例ソースファイル名 :Sample7_1.java // 入力値の判定 import java.io.*; class Sample7_1 public stati

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

D:\Documents\Visual Studio 2015\Projects\MyHomePage 用サンプル \ExcelAndWord\ExcelAndWord\MainForm.cs 1 /* */ Excel や Word とやりとりする ~9,20 仕様 Excel

プレポスト【問題】

Javaプログラムの実行手順

データベース1

Transcription:

文書閲覧プログラム C# 2005 4 プログラムの概要 標準的な Windows のを使用して ユーザーに違和感を与えず 文書ファイルを指定し 画面に表示する 亦 ファイルへの保存も可能で有る メニューバーより ファイル をクリックしてドロップダウンメニューを表示し 其の中の項目から 開く を選択して ファイルを開く ダイアログボックスを表示し ファイルを選択する 同じダイアログボックスで 終了 をクリックすると プログラムをメモリから消去して終了する 亦 メニューの 編集 では 文字列の検索を行う項目 表示 では テキストを右端で折り返すか何うかを選択する項目を追加する 猶 孰れの項目も ショートカットキーとホットキーを設定し キーボード丈でも操作出来る様に成って居る 今回の課題項目 単純変数の宣言 (Private Dim) Windows フォームコントロール (RichTextBox OpenFileDialog SaveFileDialog) プロパティの利用 (Enabled WordWrap Filter FileName SelectionLength Checked) イベントの利用 (Click) メソッドの利用 (ShowDialog LoadFile SaveFile Substring ToLower Find 等 ) アプリケーションの終了 (this.dispose Application.Exit) 組込関数の利用 (Microsoft.VisualBasic.Interaction.InputBox) 演算子 ( 代入演算子 比較演算子 論理演算子 ) 制御構造構文 ( 条件分岐 制御ステートメント ) メニューの作成 (MainMenu オブジェクト ) 今回の重点項目 変数の適用範囲 ( スコープ : フォームモジュールレベル サブプロシージャレベル ) switch 文に依る条件分岐 ( switch( ~ ) case ) ダイアログボックスの利用 (Windows 標準のの利用 ) 文書の読込 書込 (LoadFile SaveFile) 今回の応用項目 文書修飾のを追加して リッチテキストエディタを作成する -1-

オブジェクト プロパティ一覧 リッチテキストボックス オープンファイルダイアログ セーブファイルダイアログ メインメニュー コントロールの種類 プロパティ プロパティの設定値 フォーム Name editor Text テキスト閲覧 リッチテキストボックス Name rtfedit Anchor Top, Bottom, Left, Right Text 空白 メニューストリップ Name mnumain オープンファイルダイアログ Name dlgopen セーブファイルダイアログ Name dlgsave リッチテキストテキストを入力し編集する為のコントロール 従来のテキストボックスコントロールよりも豊富な設定がサポートされて居る メニューストリップメニューバーよりドロップダウンメニューを表示して 処理を選択する形式のメニューを表示するコントロール 猶.NET のメインメニューと同じで有る オープンファイルダイアログ Windows 標準の ファイルを開く ダイアログボックスを表示するコントロール 指定したファイル名は FileName プロパティに格納される セーブファイルダイアログ Windows 標準の ファイルを保存 ダイアログボックスを表示するコントロール 指定したファイル名は FileName プロパティに格納される -2-

メニューバーの作成 メニューバーを作成するには 先ず ツールボックスで MenuStrip コントロールをダブルクリックして フォームに追加する 猶 オブジェクト名は プロパティ欄で設定する事が出来る 上記の画面で ここに入力 と表示されて居る部分をクリックして 項目名 (Text プロパティ ) を入力する 猶 アクセスキーを指定する &F は 必ず 半角英数文字で入力する 上記の要領で 下記に示すメニューを作成する 猶 Text 欄でインデントが付いて居る項目は 下層の項目で有る事を示して居る 亦 Name ShortCutKeys Checked の各プロパティは プロパティ欄で設定する 区分線は 挿入し度い位置の直下の項目を右クリックして ポップアップメニューの 挿入 から Separator をクリックすると設定される ( 右端の をクリックしても良い ) Text Name ShortCutKeys Checked ファイル (&F) mnufile 開く (&O) mnufileopen Ctrl+O 名前を付けて保存 (&A) mnufilesaveas Ctrl+S 区分線終了 (&Q) mnufilefinish Ctrl+Q 編集 (&E) mnuedit 検索 (&F) mnueditsearch Ctrl+F 次を検索 (&N) mnueditnext F3 表示 (&V) mnudisp 右端で折り返す (&W) mnudispwrap Ctrl+W True 猶 メニューバー は フォームの タイトルバー の直ぐ下に表示される メニューバーには 複数の メニュータイトル を表示出来る メニュータイトルをクリックすると メニューがドロップダウンしてメニュー項目が表示される メニュー項目には コマンド 区分線 又は サブメニュータイトル等が有る -3-

プログラムリスト // 事前に Microsoft.VisualBasic を参照設定する using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace editor public partial class editor : Form // フォームレベルでグローバルな変数の宣言 int fs = 0; string fc = ""; public editor( ) InitializeComponent( ); ネームスペース ( 名前空間 ) の使用を宣言して居る 此の部分は エディタが 自動的に記述して下れる ネームスペースを取り込むと 例えば System.Drawing.Image を単に Image と省略して記述する事が出来る様に成る 此処で宣言した変数は同じフォーム内の総てのサブプロシージャで値の参照と設定を行う事が可能 クラスを生成する為のコンストラクタで有る 此の部分は エディタが 自動的に記述して下れる // メニュー項目 ( ファイル 開く ) がクリックされた時の処理 private void mnufileopen_click( object sender, EventArgs e ) 此処で宣言した変数は宣言したサ string f; ブプロシージャ内でしか値の参照と設定を行う事が出来ない dlgopen.filter = " テキスト (*.txt) *.txt リッチテキスト (*.rtf) *.rtf"; if ( dlgopen.showdialog( ) == DialogResult.OK ) f = dlgopen.filename; switch ( f.substring( f.length 3 ).ToLower( ) ) 拡張子が txt ならテキスト形式で ファイルを開く case "txt": rtfedit.loadfile( f, RichTextBoxStreamType.PlainText ); break; case "rtf": rtfedit.loadfile( f, RichTextBoxStreamType.RichText ); break; 拡張子が rtf ならリッチテキスト 形式でファイルを開く -4-

// メニュー項目 ( ファイル 名前を付けて保存 ) がクリックされた時の処理 private void mnufilesaveas_click( object sender, EventArgs e ) 表示するファイルの種類を Filter string f; プロパティを設定して限定する dlgsave.filter = " テキスト (*.txt) *.txt リッチテキスト (*.rtf) *.rtf"; if( dlgsave.showdialog( ) == DialogResult.OK ) f = dlgsave.filename; ToLower は 大文字を小文字に変 switch( f.substring( f.length-3 ).ToLower( ) ) 換するメソッドで有る case "txt": rtfedit.savefile( f, RichTextBoxStreamType.PlainText ); break; case "rtf": rtfedit.savefile( f, RichTextBoxStreamType.RichText ); break; case 節では 一致した節以降の総 てが実行される為 以降の節を実 行しない時は break する // メニュー項目 ( ファイル 終了 ) がクリックされた時の処理 private void mnufilefinish_click( object sender, EventArgs e ) アプリケーションを終了する場 this.dispose( ); 合 正しくプログラムをメモリか Application.Exit( ); ら消去して終了する // メニュー項目 ( 編集 検索 ) がクリックされた時の処理 private void mnueditsearch_click( object sender, EventArgs e ) int f; f = -1; mnueditnext.enabled = false; fc = Microsoft.VisualBasic.Interaction.InputBox(" 検索文字列 ", " 検索 ","",this.left,this.top); if ( fc!= "" ) Find メソッドは 指定した文字列 f = rtfedit.find( fc ); if ( f!= -1 ) が見付から無い場合は-1を返すので 先ず結果を格納する変数に -1を代入して初期化して置く fs = f + rtfedit.selectionlength; mnueditnext.enabled = true; 条件判定に 比較演算子を使用し て居る A!= B : AとBは等しくない -5-

// メニュー項目 ( 編集 次を検索 ) がクリックされた時の処理 private void mnueditnext_click( object sender, EventArgs e ) int f; f = rtfedit.find( fc, fs, RichTextBoxFinds.MatchCase ); if ( f > fs ) fs = f + rtfedit.selectionlength; else fs = 0; mnueditnext.enabled = false; Find メソッドは 変数 fs の位置から文字列 fc を検索しテキスト内に検索文字列が見付かると 其の文字列を反転表示し 其の先頭文字のインデックスを返す 条件判定に 比較演算子を使用し て居る A > B : A は B より大きい // メニュー項目 ( 表示 右端で折り返す ) がクリックされた時の処理 private void mnudispwrap_click( object sender, EventArgs e ) if ( mnudispwrap.checked == true ) 以前のバージョンでは 文書の折 rtfedit.wordwrap = false; り返しをプロパティでは設定する mnudispwrap.checked = false; 事が出来ず RightMargin プロパ ティを用いて 擬似的に対処して else 居たが 現在では ワードラップ が 既定で用意されて居る rtfedit.wordwrap = true; mnudispwrap.checked = true; -6-

switch 文に依る条件分岐 switch の値と一致する case 節に制御を移すステートメント switch ( 評価式 ) case 該当値 1: 評価式が該当値 1 に該当する場合の処理 case 該当値 2: 評価式が該当値 2 に該当する場合の処理 default: 上記孰れの該当値にも該当しない場合の処理 評価式の値に従い 複数のステートメントブロックの中の孰れかを実行する switch 文では評価式が1 回だけ評価され 其の値と各 case 節の値が比較され 一致した場合 其の case 節に対応するステートメントブロックが実行される case 節は 任意の数だけ指定出来るが 複数の case 節に同じ値を指定する事は出来ない ステートメントブロックの実行は break ステートメントに依り制御が case 本体の外部に移動する迄 実行される ステートメントブロックにコードを記述して居ない場合を除き C# では 次のステートメントブロックへの暗黙的な落下 ( フォールスルー ) はサポートされて居ない為 ステートメントブロックの最後には break 等のジャンプステートメントを記述する必要が有る 猶 評価式が 孰れの該当値とも一致しない場合 制御はオプションの default ラベルの後のステートメントブロックに移動し default ラベルが無い場合 制御は switch の外部に移動する Microsoft.VisualBasic.Interaction.InputBox 関数に依る入力 文字列を入力するダイアログボックスを表示する関数 戻り値 = InputBox( メッセージ, タイトル, 既定値, 横位置, 縦位置 ) ダイアログボックスにメッセージ テキストボックス ボタンを表示し ボタンがクリックされると テキストボックスの内容を格納した文字列を返す メッセージには ダイアログボックス内にメッセージと仕て表示する文字列を指定する タイトルには ダイアログボックスのタイトルバーに表示する文字列を指定する 既定値には テキストボックスに既定値と仕て表示する文字列を指定する 横位置には 画面の左端からダイアログボックスの左端迄の距離をピクセル単位で指定する 縦位置には 画面の上端からダイアログボックスの上端迄の距離をピクセル単位で指定する Visual Basic から使用する場合は 第 2 引数以降は省略する事が出来るが C# から使用する場合は 孰れの引数も省略する事は出来ない 亦 C# から使用するには Microsoft.VisualBasic 名前空間を参照設定して置く必要が有る -7-

OpenFileDialog と SaveFileDialog の Filter プロパティ ダイアログボックスのファイルの種類リストボックスに表示されるフィルタを設定する Object.Filter( キャプション パターン ) フィルタを使用すると ダイアログボックスの ファイル名 ボックスに表示されるファイルの種類を指定する事が出来る 例えば フィルタとして "*.txt" を指定すると ダイアログボックスにはテキストファイル丈が表示される 引数のキャプションは ファイルの種類を表す文字列式で 必ず指定する 引数のパターンは ファイル名の拡張子を指定する文字列式で 必ず指定する キャプションとパターンは パイプ記号 ( ) を使用して区切る パイプ記号の前後にスペースを入れると 其のスペースもキャプションやパターンの一部と仕て処理される為 注意を要する ダイアログボックスに複数のフィルタを指定する場合は キャプションとパターンを一組と仕て パイプ記号で区切り 必要な丈 記述する OpenFileDialog と SaveFileDialog の FileName プロパティ ダイアログボックスで選択されて居るファイルのパス 及び ファイル名を設定する Object.FileName FileName プロパティは リスト内の現在選択 ( 強調表示 ) されて居るファイル名を返す ファイルが選択されて居ない時は 長さ 0 の文字列 ( ヌルストリング ) を返す マニュアルには FileName プロパティは リスト内の現在選択されて居るファイル名を返し パス名は Path プロパティを使用してファイル名とは別に返すと記載されて居るが 実際には パス名を含むフルパスでファイル名が返される OpenFileDialog と SaveFileDialog の ShowDialog メソッド コモンダイアログボックスを表示する Object.ShowDialog( ) ファイルを開く ファイルを保存する 色を選択する フォントを指定する 印刷オプションを設定する等の標準的なダイアログボックスを アプリケーションから簡単に利用する事が出来る ダイアログボックスの OK をクリックした場合は DialogResult.OK が キャンセル の場合は DialogResult.Cancel が戻り値と仕て返される 此等の定数 及び 其他の定数は DialogResult 列挙体で定義されて居る -8-

RichTextBox の LoadFile メソッドと SaveFile メソッド リッチテキストファイルやテキストファイルの読込と保存を行う Object.LoadFile( ファイル名, ファイル種類 ) Object.SaveFile( ファイル名, ファイル種類 ) ファイル名で指定したファイルを ファイル種類で指定した形式で 読込と保存を行う LoadFile メソッドでファイルを読み込むと リッチテキストボックスの内容全体が 読み込まれたファイルの内容で置換される 従って Text プロパティ 及び Rtf プロパティの値が変更される ファイル名は 対象と成るファイル名を表す文字列式で 必ず指定する ファイル種類は 対象と成るファイルの形式を指定する定数で 省略する事が出来る ファイル種類には 形式に依り RichTextBoxStreamType 列挙体の孰れかを指定する リッチテキスト形式 :RichTextBoxStreamType.RichText テキスト形式 :RichTextBoxStreamType.PlainText ファイル種類を省略した場合は リッチテキストファイルが読み込まれる RichTextBox の Find メソッド 指定された文字列をリッチテキストボックス内のテキストから検索する Object.Find( 検索文字列, 開始位置, オプション ) テキスト内に検索文字列で指定した文字列が見付かると 其の文字列を反転表示し 其の先頭文字のインデックスを返す 指定した文字列が見付から無い場合は -1 を返す 検索文字列は 検索するテキストを表す文字列式で 必ず指定する 開始位置は 検索を開始する文字の位置を示すインデックスで 省略する事が出来る オプションは オプションを各定数の合計で 省略する事が出来る オプションには 形式に依り RichTextBoxFinds 列挙体の孰れかを指定する 完全に一致する単語だけを検索する :RichTextBoxFinds.WholeWord 大文字と小文字を区別して検索する :RichTextBoxFinds.MatchCase 一致した文字列を反転表示し無い :RichTextBoxFinds.NoHighlight 末尾から先頭に検索する :RichTextBoxFinds.Reverse 複数のオプションを指定するには オプションの値 又は 定数を合計するか 又は 各値を Or 演算子で結合する 省略した場合は 完全に一致する文字列を 大文字と小文字を区別し無いで検索し 一致した文字列を反転表示する リッチテキストボックスコントロール内の各文字は 固有の整数型インデックスを持つ コントロール内のテキストの先頭文字のインデックスは 0 で有る -9-

RichTextBox の SelectionLength プロパティ コントロール内で選択されて居る文字の数を取得 設定するプロパティ Object.SelectionLength = 文字数 テキストボックス内で選択されて居る文字の数の取得や設定を行う 此のプロパティを使用すると 選択されたテキストに対して操作を実行する前に テキストボックスコントロールで文字が選択されて居るか何うかを判断する事が出来る RichTextBox の SelectionStart プロパティ ( 参考 ) コントロール内で選択されて居るテキストの開始点を取得 設定するプロパティ Object.SelectionStart = 開始位置 テキストボックス内で選択されて居る文字の開始位置の取得や設定を行う コントロールでテキストが選択されて居ない場合 此のプロパティは 新しいテキストの挿入位置を示す 此のプロパティがコントロール内のテキストの長さを超えた位置に設定されて居る場合 開始点は最後の文字の後ろに成る 此のプロパティと SelectionLength プロパティを組み合わせて 下記の例の様に テキストボックスにフォーカスが移動した時 表示テキストを選択状態にする事が出来る Private Sub TextBox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles TextBox1.Enter TextBox1.SelectionStart = 0 TextBox1.SelectionLength = Len(TextBox1.Text) End Sub 猶 選択されて居る文字列は SelectedText プロパティで取得 設定する事が出来る RichTextBox の SelectedText プロパティ ( 参考 ) コントロール内で現在選択されて居るテキストを示す値を取得 設定するプロパティ Object.SelectedText = 文字列 テキストボックス内で現在選択されて居るテキストの取得や設定を行う 此のプロパティにテキストを代入すると テキストボックスで現在選択されて居るテキストを変更する事が出来る テキストボックスでテキストが選択されて居ない場合 此のプロパティは長さ 0 の文字列を返す 猶 選択部分の取得や設定を行うプロパティには SelectionColor SelectionFont SelectionAlignmen SelectionIndent SelectionRightIndent 等も用意されて居る -10-

Anchor プロパティに依るコンテナへの固定 解機説能 コンテナへの固定を取得 設定するプロパティ Object.Anchor = スタイル値 コントロールの何の端をコンテナの端に固定するかを取得 設定する スタイル値には AnchorStyles 列挙体の組み合わせを指定する AnchorStyles 列挙体には 下記のメンバが定義されて居る Bottom コントロールが其のコンテナの下端に固定される Left コントロールが其のコンテナの左端に固定される None コントロールが其のコンテナの端に固定されない Right コントロールが其のコンテナの右端に固定される Top コントロールが其のコンテナの上端に固定される コントロールは 親コンテナの 1 つ以上の端に固定する事が出来る コントロールを其の親コンテナに固定すると 親コンテナのサイズが変更されても 固定された端の位置を親コンテナの端に対して相対的に同じ位置に保つ事が出来る 例えば Button1.Anchor = AnchorStyles.Top + AnchorStyles.Bottom の場合 Button1 は Form の Height が大きく成るに連れて拡大され Form の上端と下端迄の固定距離を維持する 此れに依り 従来の様に Form の Risize イベントで変化量を求め 其れをコントロールに反映させると謂う方法を採らなくても Form の拡大縮小に合わせて コントロールを拡大縮小させる事が可能と成った String オブジェクトの ToLower メソッドに依る文字列の操作 アルファベットの大文字を小文字に変換した文字列を返す関数 Objext.ToLower( ) アルファベットの大文字を小文字に変換する文字列処理関数で有る Object には 任意の文字列式を指定し 必ず指定する 文字列式とは 1 つの文字列に評価される式を謂い 文字列を返す関数 リテラル文字列 文字列定数 文字列変数 文字列演算子の組み合わせで構成される 大文字丈が小文字に変換され 大文字のアルファベット以外の文字は影響を受け無い 此れは Microsoft.Visual Basic.String クラスの LCase 関数と 同等の処理を行う 逆に アルファベットの小文字を大文字に変換する String オブジェクトのメソッドには ToUpper メソッドが用意されて居る 此れは Microsoft.Visual Basic.String クラスの UCase 関数と 同等の処理を行う 猶 ToLower メソッドに限らないが Object.ToLower; の様に入力した場合 Visual Basic でのコードエディタの様に自動的に末尾の空括弧が付加されないので 注意が必要で有る メソッドの末尾に 仮令パラメータを必要としない場合でも 括弧が無いと ビルトエラーに成る -11-