G3504_And_note_本日表示除外ワード
2025年1月27日
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";
}
}
}
確認します
登録データを確認しておきます