G3506_And_note_変数名の一括置換
2025年1月28日
22:24
G3506_andoroid_and_note_variable_name_change
概要
作業の前にプロジェクトフォルダをバックアップします
クリーン、配置を実行し、動作に問題がないか確認します
ここで1-2日運用して問題がない事を確認しました
過去のプロジェクトからアイコンの調査
このフォルダは変更されていません
このフォルダは、1か所改編されています
これでは効果はありません
このフォルダは2個改編されています
ここも効果はありませんでした
このフォルダは、改編がありません
このフォルダは、3か所改編されています
最後のこの作業で、アイコンが表示されました
とりあえず表示されたので、これ以上時間をかけません
本日、間違って重複登録してしまいました
削除とか抹消する機能を作ります
get_file_path()の改良
3か所利用があるので、パラメータを修正します
3行すべて、このように修正します
ここまでで、クリーン、配置を実行し、問題がないか確認します
コマンドの共通処理を追加します
case "削除":
case "抹消":
case "消去":
// どの文言でも同じ結果が得られます
Command_name_set("削除");
Edt_tbl[0].Text = Voice_cst = "";
voice_call(); // 音声変換呼び出し
break;
実行/保存ボタンの処理を関数に分離します
// 実行保存ボタン処理
private void exe_save_but()
{
string tmp_cst = "";
switch (Command_name)
{
case "音声変換":
// エディットボックスの取得
edit_txt_sav();
break;
case "除外ワード":
fil_add_exclu_key(Edt_tbl[0].Text);
// 除外ワードテキストファイルをテーブルに読み込みします
Exclu_key_cnt = com_txt_tbl_red(Exclu_key_fil_path, 0, Exclu_key_tbl);
break;
case "コマンド":
tmp_cst = Command_name_sarch(Edt_tbl[0].Text);
if (tmp_cst != "") Command_name_set(tmp_cst);
else Command_name_set("----- 未登録です -----");
break;
case "削除":
case "抹消":
case "消去":
// どの文言でも同じ結果が得られます
delete_lin(Edt_tbl[0].Text);
break;
}
Edt_tbl[0].Text = "";
}
削除関数の作成
delete_lint("9行")
// 指示された行の削除
private void delete_lin(string prm_delete_cst)
{
string fil_path;
string fil_path_cpy;
string txt_buf = "";
int lin_no = 0;
int delete_lin_no = 0;
string delete_lin_cst;
// 削除行文字列から、数値を抽出する "9行" -> 9
delete_lin_cst = Regex.Replace(prm_delete_cst, @"[^0-9]", "");
delete_lin_no = int.Parse(delete_lin_cst);
if (delete_lin_no == 0) return;
Sys_cal_get(); // システム日付取得
fil_path = Get_fil_path(Sys_yy_all, Sys_mm, Sys_dd, "");
fil_path_cpy = Get_fil_path(Sys_yy_all, Sys_mm, Sys_dd, "_cpy");
// 前回の残骸があれば削除する
if (File.Exists(fil_path_cpy) == true) File.Delete(fil_path_cpy);
while (File.Exists(fil_path_cpy) == true) { }
System.Text.Encoding.GetEncoding("utf-8");
StreamReader red = new StreamReader(fil_path); // 読み込みOPEN
System.Text.Encoding.GetEncoding("utf-8");
StreamWriter writer = new StreamWriter(fil_path_cpy, true); // 書き込みOPEN
while (red.EndOfStream == false)
{
txt_buf = red.ReadLine();
if (txt_buf == null) continue;
++lin_no;
if (lin_no == delete_lin_no) continue; // 削除行一致
writer.WriteLine(txt_buf);
}
red.Close(); // 読み込みクローズ
writer.Close(); // 書き込みクローズ
// 原本削除
if (File.Exists(fil_path) == true) File.Delete(fil_path);
while (File.Exists(fil_path) == true) { }
// 転写から原本へコピー
File.Copy(fil_path_cpy, fil_path);
// 今回の複写ファイルを削除する
if (File.Exists(fil_path_cpy) == true) File.Delete(fil_path_cpy);
while (File.Exists(fil_path_cpy) == true) { }
}
ここまでを、クリーン、配置で確認します
このように4行「削除 業に」が削除されました
例えば3行は音声入力できません
このように削除できました
テストの為に準備した行は、すべて削除できました