G3504_And_note_本日表示除外ワード

2025127

9:29

G3504_andoroid_and_note_project_exclu_word

 

説明

 

 

ワードはテキストファイルに保存します

 

 

 

 

座標数値の調整

 

 

配置の前に必ずデータのバックアップを実行してください

 

 

 

ボタン名のを変更します

 

 

But_tbl[0].Text = "音声変換";

But_tbl[1].Text = "実行/保存";

But_tbl[2].Text = "コマンド";

But_tbl[3].Text = "取消し";

 

But_tbl[4].Text = "本日表示";

But_tbl[8].Text = "GPS表示";

 

 

本日表示ボタンの番号を変更します

 

 

除外キーワードの登録関数追加

 

 

 

// 除外キーワード追加登録

private void fil_add_exclu_key(string prm_key)

{

string fil_path = Path_files + @"/000_除外ワード.txt";

string key_cst = prm_key.Trim();

 

// ファイルを開く

System.Text.Encoding.GetEncoding("utf-8");

using (StreamWriter writer = new StreamWriter(fil_path, true))

{

writer.WriteLine(key_cst); // テキストを書き込む

writer.Flush();             // 書き込んだ内容をフラッシュする

}

 

}

 

 

音声変換の呼び出しを関数化して、複数個所から依頼できるようにする

 

 

 

// 音声変換呼び出し

private void voice_call()

{

var voiceIntent = new Intent(RecognizerIntent.ActionRecognizeSpeech);

voiceIntent.PutExtra(RecognizerIntent.ExtraLanguageModel, RecognizerIntent.LanguageModelFreeForm);

//Intent intent = voiceIntent.PutExtra(RecognizerIntent.ExtraPrompt, Application.Context.GetString(Resource.String.action_settings));

voiceIntent.PutExtra(RecognizerIntent.ExtraSpeechInputCompleteSilenceLengthMillis, 1500);

voiceIntent.PutExtra(RecognizerIntent.ExtraSpeechInputPossiblyCompleteSilenceLengthMillis, 1500);

voiceIntent.PutExtra(RecognizerIntent.ExtraSpeechInputMinimumLengthMillis, 15000);

voiceIntent.PutExtra(RecognizerIntent.ExtraMaxResults, 1);

voiceIntent.PutExtra(RecognizerIntent.ExtraLanguage, Java.Util.Locale.Default);

StartActivityForResult(voiceIntent, VOICE);

 

}

 

今までの音声変換ボタンの処理を変更

 

 

voice_call();        // 音声変換呼び出し

 

一時的にボタン5に除外ワード登録を配置します

 

 

// 除外ワード登録

Type_name = "除外ワード登録";

Edt_tbl[0].Text = Voice_cst = "";

 

voice_call();   // 音声変換呼び出し

 

 

ボタン1の実行/保存を修正します

 

 

 

// 保存 実行

switch(Type_name)

{

case "音声変換":

//  エディットボックスの取得

edit_txt_sav();

break;

case "除外ワード登録":

fil_add_exclu_key(Edt_tbl[0].Text);

break;

 

}

 

ここまでを配置してテストします

 

 

 

 

 

除外ワード登録をテストします

 

 

 

 

テキストファイルを確認します

 

 

 

 

 

 

 

 

 

 

デスクトップの空欄に貼り付けを実行します

 

 

毎回デスクトップにバックアップしているので「上書き」確認が出ます

 

 

デスクトップにフォルダがコピー(バックアップ)されました

 

 

 

これでメモ帳編集ができます

 

 

では実際に「本日表示」から除外する処理を作ります

 

 

 

public static string[] Exclu_key_tbl = new string[50 + 1];        //除外ワードテーブル

public static int Exclu_key_cnt;                        // 現在登録個数

 

除外ワードのテーブル読み込み関数を追加します

 

 

// テキストファイル読み込み

public static int com_txt_tbl_red(string prm_fil_path, int prm_tbl_no, string[] prm_cst_tbl)

{

//        他のフォームでも呼び出しが必要だったため、ここに移設した

//        将来は、ライブラリ機能を調べて、そちらに移植すべきものかもしれない

//        最低でも、昔のインクルードのような機能は調べたい

//        プログラム全体で共通する処理の場合、コピペして行くと、修正箇所が無限に発生するからである

int cst_tbl_max = prm_cst_tbl.Length;

 

Encoding enc = Encoding.GetEncoding("UTF-8");

string txt_buf;

int cnt = 0;

 

if (File.Exists(prm_fil_path) == true)

{

using (StreamReader red = new StreamReader(prm_fil_path, enc))

{

while (true)

{

if (red.EndOfStream == true) break;

txt_buf = red.ReadLine();

// フリー書式に対応するために、ない場合は空欄

prm_cst_tbl[cnt] = "";

if (prm_tbl_no < txt_buf.Split(',').Length)

prm_cst_tbl[cnt] = txt_buf.Split(',')[prm_tbl_no];

 

++cnt;

if (cst_tbl_max <= cnt) break;   //オーバーフロー

}

}

}

return (cnt);

 

}

 

スマホ用にコードを整えます

 

 

// テキストファイル読み込み

public static int com_txt_tbl_red(

string prm_fil_path,                        // ファイルパス

int prm_tbl_no,                                        // カンマ区切りの何番目

string[] prm_cst_tbl)                        // 代入する文字配列

{

// 2025.01.27 MON (10:23) goma0099 -2822147-

//        他のフォームでも呼び出しが必要だったため、ここに移設した

//        将来は、ライブラリ機能を調べて、そちらに移植すべきものかもしれない

//        最低でも、昔のインクルードのような機能は調べたい

//        プログラム全体で共通する処理の場合、コピペして行くと、修正箇所が無限に発生するからである

 

int cst_tbl_max = prm_cst_tbl.Length;

string txt_buf;

int cnt = 0;

 

// テキストファイル読み込み

System.Text.Encoding.GetEncoding("utf-8");

using (StreamReader red = new StreamReader(prm_fil_path))

{

while (red.EndOfStream == false)

{

txt_buf = red.ReadLine();

// フリー書式に対応するために、ない場合は空欄

prm_cst_tbl[cnt] = "";

if (prm_tbl_no < txt_buf.Split(',').Length)

prm_cst_tbl[cnt] = txt_buf.Split(',')[prm_tbl_no];

 

++cnt;

if (cst_tbl_max <= cnt) break;   //オーバーフロー

}

 

}

return (cnt);

 

}

 

除外ワードのファイルパスをグローバル変数にします

 

 

public static string Exclu_key_fil_path;        // 除外ワードファイルバス

 

 

// 記述ミスを防止するため、グローバル変数とします

Exclu_key_fil_path = Path_files + @"/000_除外ワード.txt";

 

 

テーブルの読み込み処理を追加します

 

 

 

// 記述ミスを防止するため、グローバル変数とします

Exclu_key_fil_path = Path_files + @"/000_除外ワード.txt";

 

// 除外ワードテキストファイルをテーブルに読み込みします

Exclu_key_cnt = com_txt_tbl_red(Exclu_key_fil_path, 0, Exclu_key_tbl);

 

ここまでの確認をします

 

 

 

 

 

 

本日表示を改良し、除外機能を追加します

 

 

 

// 本日表示

private void today_dsp()

{

Sys_cal_get();      //  システム日付取得

string fil_path = Get_fil_path(Sys_yy_all, Sys_mm, Sys_dd);

string[] cut_tbl = new string[20];

string lin_cst = "";

int lin_no = 0;

int cnt;

bool find_flg;

 

if (File.Exists(fil_path) == false) return;

 

Edt_tbl[0].Text = "";

// テキストファイル読み込み

System.Text.Encoding.GetEncoding("utf-8");

using (StreamReader red = new StreamReader(fil_path))

{

while (red.EndOfStream == false)

{

// 0     1   2   3   4   5  6

// yyyy  mm  dd  th  tm  ts msg

lin_cst = red.ReadLine();

cut_tbl = lin_cst.Split(',');

lin_no++;

 

// 除外ワードの判定を追加します

find_flg = false;

for(cnt=0;cnt<Exclu_key_cnt;cnt++)

{

// 先頭文字とキーワードが一致したら除外します

// 一致しない場合(-1) 一致しても先頭以外は1以上の整数になります

if(cut_tbl[6].IndexOf(Exclu_key_tbl[cnt],0) == 0)

{

find_flg = true;

break;

}

}

 

if(find_flg == false) Edt_tbl[0].Text += lin_no.ToString() + "." + cut_tbl[6] + "\r\n";

}

}

 

}

 

確認します

 

 

 

 

登録データを確認しておきます