G3515_And_note_コマンド処理の改良
2025年2月23日
16:18
G3515_andoroid_and_note_command_process
- スマホで作成された日誌データをPCに変換し成功したのでアプリの作り直しをしています
- つくづく思うのは、PCアプリの試行錯誤のサイクルタイムが最短だなあと感心することです
- ビルドボタンを押したら、待ち時間なしですぐ実行結果を得られます
- インタープリターと全く変わりません
- 楽しくなりますね
- 比較してスマホの開発は手続きが多く、面倒くさくなります
- GPSとストレージのアクセス許可は仕方がないとしても
- ビルドするとデータが一部失われるため、バックアップ、復元の作業が面倒くさいです
- はやく、データが消えない方法を調べなければいけません
解説
- コマンドに含まれている、英単語は有効活用されていません
- 未登録データが多く、実用に至っていません
- 手続きが煩雑で忘れがちです
- 今回は、手続きの変更を検討します
現状の手続き
- 「コマンド(開始)」を押す
- 音声入力でコマンド名を入力する
- 「コマンド(選択)」を押す
- 横長ボタンに、コマンドのタイトルが表示される
- 横長ボタンを押す
- 音声入力でデータを入力する
- 「コマンド(実行)」を押す
- 結果が表示される
改善案
- 日誌を入力するループに含めたいと思っています
- 日誌入力の前に、検索の前処理が入り効率は落ちるかもしれません
- しかし、現状GPS検知がもっとも遅く、検索のロス時間は気にならないと思われます
- データが蓄積されて、速度が落ちた時、再考するものとします
- 狙った効果として、下記のように工程が約半分になります
- 「音声変換」ボタンを押す
- 音声入力で単語を入力する
- 「実行/保存」ボタンを押す
- 検索結果が表示される
手続きの改善(登録済み)
- 「音声変換」ボタンを押す
- 音声入力でコマンド名を入力する
- 「実行/保存」ボタンを押します
- 内部検索し、コマンド登録されている単語の場合はコマンドモードに分岐します
- コマンド登録がなければ、日誌の登録を実行します
- コマンドモードに分岐した場合、横長ボタンに、コマンド名が登録されます
- それと同時に、テキストボックスにコマンド名と説明を表示します
- 横長ボタンからの処理の流れは、現状のままとします
手続きの改善(未登録の場合)
- 未登録のコマンド名では、日誌への書き込み直前の待機になります
- 「コマンド(新規)」ボタンを表示させて、これを押すと、コマンドの入れ物のファイルを生成します
- データ登録は、スマホでは作らず、パソコンで作成し、コピーします
英単語の機能増設
- 初期は変数名やホームぺージのファイル名を作るため、正しいスペルを確認するための機能でした
- 英単語に限らず、頻繁に脳内質問が発生する用語などに対して説明テキストを表示するなどの機能追加が考えられます
- 現状「英単語」は、スペルのみ表示ですが、簡単な解説も登録できるようにします
- コードの早見表などが思い浮かびますが、コピペに利用できないので、検討が必要です
- 合言葉に置き換えた、パスワード検索などは有効かもしれません
すでに忘れているので、ファイル設計を調査します





レコード調査
- 日誌 日付、記事、GPS、時分、状態名
- 000_コマンド.txt コマンド名、説明
- 000_英単語.txt スペル
- 000_除外ワード.txt 除外ワード
ファイル構成の考察
- たとえば、英単語の場合、パソコンから登録する場合、一覧表が便利です
- パソコンアプリにグリッド処理が完成しておれば、連携が実演できるのですが、まだ完成していません
- スマホから検索に利用する場合、1単語1ファイル形式にすることが、最も効率の良い方法です
- コマンドもパソコンから一覧登録することが便利です
- さらに、スマホでは、コマンドも1コマンド1ファイルであれば、直線検索が不要になるので、効率的です
一覧形式のテキストファイルを1行1ファイルに分解する
- 分解アプリは、現在進行形で作り直されている、Goma_note プロジェクト(PC)で作成、実行されます
- 希望的要望なのですが、変換手続きを、コードから切り離して、テキストマクロのようなものでできれば理想です
設計考察はここまでで、パソコンアプリの設計に移行します
2025.02.23 SAN (18:11) goma0099 -3308661-
- 一覧表テキストファイルは、除外ワード、コマンド、英単語この3種類をまとめて保存します
- ファイル名 000_キーワード.txt

その前にどうしても必要な改良を先に実施します
- 現在、テキストボックスに文字列が存在する場合、「保存/実行」ボタンを押し忘れた日誌データだとして、日誌データの書き込みを実行します
- テンポよく、どんどん登録するには便利なのですが、下記の問題が発生しています
- 日誌の記事を複数回の音声入力で追記が出来ない
- 古いコードでは、出来ていました
- この複数回の音声入力で追記する機能化がないため、フリック入力に頼っています
- 効率が悪いので、復活させたいのです

- ここを削除する、あるいは復活を考えて、コメントにするか考察します
- こまんどモードが、コマンド(開始)以外であれば、コマンドモードを初期化しています
- この時、インフォメーションを追加し、関数から一度抜けます
- 時間をおいてみると、やはりコマンドモードとメインのプログラムモードが識別しにくく、ミスにつながります
メインモード
- プログラム全体をコントロールするモードをこの名称に統一します
- ボケているので、表記の揺れは起こるかもしれません
- 「音声変換」「実行/保存」を主たる操作ボタンとしています
- 「英単語」「除外ワード」「削除」「状態登録」にも使われています
コマンドモード
- ボタン4を駆使して、「メインモード」とは違う機能を実現するために実装されました
- 「コマンド(開始)」「コマンド(選択)」「コマンド(実行)」に使われています
- この先、これらコマンドモードに実装されていた機能は、メインモードに吸収される可能性があります
まずは「ボタン0」の処理を変更します

// 音声変換
private void Button0_Click(object? sender, EventArgs e)
{
string ed_cst =
""; ;
// コマンドモードの初期化を追加します
if (Command_mode_name !=
"コマンド(開始)")
{
Command_mode_clr();
dsp_info("コマンド中の作業が解除されました");
return;
}
if (Command_name !=
"音声変換")
{
command_name_set("音声変換");
Edt_tbl[0].Text =
"";
Voice_cst = "";
dsp_info("メインモードを「音声変換」に強制変更します");
}
// 保存しないままテキストが残っていたら保存する
// 2025.02.24 MON
(01:49) goma0099 -3172354-
// 連続音声追記をしたいため、コメントにします
//ed_cst =
Edt_tbl[0].Text;
//if (0 <
ed_cst.Length) edit_txt_sav(0,0,0,ed_cst);
voice_call(); // 音声変換呼び出し
}
メインモードの名称変更を実施する前に必ずバックアップします
- 連続置換を使って、変数名、関数名を変換するので、ミスすると修復に時間がかかります
- 忘れず、プロジェクトのバックアップを行います

グローバル変数を名称変更します





関数 command_name_set() を名称変更します





テーブル Main_name_tbl[] を Command_name_tbl[] に戻します





ここまでのプロジェクトを公開フォルダに保存しておきます
Version:0.9 StartHTML:00000000 EndHTML:00000000 StartFragment:00000000
EndFragment:00000000 G3515_プロジェクト