見出し画像

ChatGPT❌ソフト開発【素人でも楽勝】改行&タブ置換ソフトを作ってみた

こんなフォームを素人の私でも1時間程で作れました。ChatGPTがいればソフト開発も楽勝です。

今日の質問

前置きは置いといて、早速ChatGPT4に質問しました。

ウィンドウズで動く「置換ツール」というアプリケーションを開発したいのでコーディングして下さい。

注意点
- Visual Studio のC#で開発します。
- 文字だけでなく、タブや改行まで置換できるツールです。
- 適当な名前を着けて下さい。
- 作り方をブログ風にステップバイステップで教えてください。
- 説明はできるだけシャープに
- タブや改行も置換はより詳しく解説して

ここより下記はChatGPT4先生の回答は太文字で表示いたします。
+++++++++++++++++++++++++++++++++
こんにちは!今回は、ウィンドウズで動く「置換ツール」をC#で開発する方法をステップバイステップで解説します。このツールは、文字だけでなくタブや改行も置換できる便利なアプリケーションです。それでは、始めましょう。

【Step 1】Visual Studioのセットアップ

  1. 最初に、Visual Studioをインストールしてください。

  2. 新しいプロジェクトを作成し、"Windows Forms App (.NET)" を選択してください。

  3. プロジェクト名を "ReplaceTool" にして、プロジェクトを作成しましょう。

早速、作成していきます。
ここまでは、以前書いた下記の記事の通り、何度かVS(Visual Studio)の開発はやってあるのでサクッと進めていきますね。 まだ「【楽勝】ChatGPT ❌ソフトウェア開発 初級編」を読んでない方はご参照あれ。↓↓

【Step 2】フォームのデザイン

  1. ツールボックスから、Label, TextBox, Buttonをフォームにドラッグアンドドロップして配置します。

  2. LabelとTextBoxを3セット配置し、それぞれの用途に合わせて名前を変更します。例:inputTextBox, findTextBox, replaceTextBox

  3. Buttonには「Replace」のような名前をつけましょう。

こんな感じでよいのだろうか? とても不安になってきた、、、

【Step 3】コーディング

  1. Buttonのダブルクリックで、Clickイベントハンドラを作成します。

  2. 次のコードを追加して、置換処理を実装します。

private void replaceButton_Click(object sender, EventArgs e)
{
  
        string inputText = inputTextBox.Text;
        string findText = findTextBox.Text;
        string replaceText = replaceTextBox.Text;

        if (string.IsNullOrEmpty(findText))
        {
            MessageBox.Show("Please enter the text to be replaced.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            return;
        }

        inputText = inputText.Replace(findText, replaceText);
        inputText = inputText.Replace("\\t", "\t");
        inputText = inputText.Replace("\\n", "\n");
        inputText = inputText.Replace("\\r", "\r");

        inputTextBox.Text = inputText;
    
 
}

ここで、タブや改行の置換処理について説明します。タブは "\t" 、改行は "\n" 、キャリッジリターンは "\r" として表現されます。Replaceメソッドを使って、これらの特殊文字を直接置換します。

Clickイベントハンドラってどこだっけ? わからんのでChatGPT4先生に聞いてみます。

親切な解説ですね~ とてもわかり易い

なるほど、ボタンをダブルクリックで、勝手に出てくるんだね、、

でてきた、これだ、
そこに、先程のコードを貼り付けて、、、

あれ~エラーが出てるぞ、
きっと、3つのテキストボックスに名前を着けてなかったのが原因なので、それぞれ名前をつければ解決すると仮説しましたが、
一応ChatGPT4先生に聞いてみましょう。

やはり、思った通りでしたね、、では解決しましょう

無事エラーが解決されました。次に進みます。

【Step 4】アプリケーションの実行

  1. Visual Studioでプロジェクトをビルドし、アプリケーションを実行します。

  2. 「Replace」ボタンをクリックすると、入力されたテキストに対して、置換前文字列を置換後文字列に変換し、タブや改行も置換された結果が表示されます。

さてさて、お待ちかねのテストです。ちゃんと動くでしょうか?ビルドして実行します。

ビルド&実行の仕方がわからない方は、下記の記事を参照あれ

あれ、、、何も変わらない、、、、失敗か、、、
Tabの置換
うぁ成功した、、、 そっか、、、このツールはTabと改行しか置換しないアプリになってしまったか、、、それじゃあ使えない ってことでまたChatGPT4先生に聞いてみます。
あれ、もうなってますよ、、だって、、、なんだろう、、、
小文字で入れたと思ったのに、、では先生に聞いてみます。
変えた記憶はないのになぜ? まぁいいや元にもどしま~す。 
言われたとおり、UpperになってましたのでNormalに変更し、またビルド&実行します。
やった~~~ やっと期待どおりに動きました。日本語も置換できるようです。

【Step 5】エラーハンドリングの追加

以下のように、エラーハンドリングを追加して、不具合が発生した場合に対処しやすくしましょう。

private void replaceButton_Click(object sender, EventArgs e)
{
    try
    {
        string inputText = inputTextBox.Text;
        string findText = findTextBox.Text;
        string replaceText = replaceTextBox.Text;

        if (string.IsNullOrEmpty(findText))
        {
            MessageBox.Show("Please enter the text to be replaced.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            return;
        }

        inputText = inputText.Replace(findText, replaceText);
        inputText = inputText.Replace("\\t", "\t");
        inputText = inputText.Replace("\\n", "\n");
        inputText = inputText.Replace("\\r", "\r");

        inputTextBox.Text = inputText;
    }
    catch (Exception ex)
    {
        MessageBox.Show($"An error occurred: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}

それでは最後に、微調整をしたいと思います。
1.inputTextを複数行にする。

よし!

2.コピーボタンも着けたい

コードの部分は下記の通り
private void copyButton_Click(object sender, EventArgs e)
{
    Clipboard.SetText(inputTextBox.Text);
    MessageBox.Show("Text copied to clipboard.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

よし最後に、ビルド&実行します。

やった~~~~~ 期待通りです。 コピー機能も動作確認できました。われながらあっぱれ

これで、「置換ツール」アプリケーションの開発が完了しました。
テキストボックスにテキストを入力し、置換前と置換後の文字列を指定して「Replace」ボタンをクリックすると置換が「Copy」ボタンをクリックするとコピーが実行されます。タブや改行も含めた置換が可能なので、様々なテキスト操作に役立ちます。

お疲れ様でした!今回のチュートリアルでは、C#でウィンドウズの「置換ツール」アプリケーションを開発する方法を学びました。このツールをカスタマイズして、自分だけの便利な置換ツールを作成してみてください。

このブログで使った専門用語達

🖥️ C#(シーシャープ):プログラミング言語の一種。Microsoftが開発した言語で、Windowsアプリケーションの開発に広く使われています。
🛠️ Visual Studio:Microsoftが提供する統合開発環境(IDE)。C#をはじめとする多くのプログラミング言語に対応しており、コードの記述やデバッグ、アプリケーションのビルドが行えます。
🎨 フォームデザイナー:Visual Studio内のグラフィカルなツール。アプリケーションのユーザーインターフェース(UI)をドラッグ&ドロップで簡単にデザインできます。
🖱️ イベントハンドラ:特定のイベント(例:ボタンがクリックされる)が発生したときに実行されるコードの部分。イベントに応じてアプリケーションの動作を制御します。
📋 クリップボード:コンピュータでコピー&ペースト操作を行う際に一時的にデータを保持する領域。テキストや画像など様々なデータ形式に対応しています。
💬 メッセージボックス:アプリケーションがユーザーに情報を伝えるために表示するポップアップウィンドウ。エラーや通知、警告などのメッセージを表示します。
📝 テキストボックス:ユーザーがテキストを入力できるUIコントロール。単行または複数行に対応し、さまざまな文字列操作が可能です。
⚙️ プロパティウィンドウ:Visual Studioのフォームデザイナーで、選択されたUIコントロールのプロパティ(設定)を表示・編集するウィンドウ。
📚 マルチライン:テキストボックスが複数行のテキストを表示・編集できる状態。通常、長い文章を扱う場合に使用されます。
🏗️ プログラムのビルド:コードをコンパイルして実行可能なアプリケーションに変換するプロセス。エラーがないことを確認した後、アプリケーションが動作するようになります。
🐞 デバッグ:プログラムのエラーを検出し、修正するプロセス。Visual Studioはブレークポイントやステップ実行などの機能を提供して、デバッグ作業を支援します。


#ChatGPT #プログラミング #テキスト置換ツール #開発ガイド #文字列置換 #タブ置換 #改行置換   #ソフトウェア開発 #初心者向け #アプリケーション作成 #CSharp

サポートをいただけたら、とてもハッピーになりもっと成長できます。