※ ChatGPTを利用し、要約された質問です(原文:上手な文字列の分割方法)
上手な文字列の分割方法
このQ&Aのポイント
Rich Textbox Controlで言語設定をして色付けを行いたいのです。
ダブルクォーテーション内かどうかのフラグを使用して文字列の囲いを処理しているが、汚いソースに見えて仕方がない。
DLLやコンソールアプリのコマンドラインでのファイル名指定などではダブルクォーテーション内の半角スペースもうまく処理できている。何か良い方法があるのか。
こんばんは、早速ですが質問があります。
Rich Textbox Controlで言語設定をして色付けを行いたいのです。
たとえばVisual Basicの色指定にしたときには、キーワードを青色に、コメント行を緑に、といった色付けになります。
Dim I As Long 'カウンタ変数
[Dim][As][Long]を青色に、['カウンタ変数]を緑色にするような感じです。
上記のような単純なものはよいのですが、
MsgBox "C:\Fallin'Love.mp3"
という記述があった時に、シングルクォーテーションが読み込まれ['Love.mp3"]の部分が緑色になってしまいます。
今はダブルクォーテーション内かどうかのフラグを使用してInStr(StartPoint,str,"""){始端と終端の位置を先に求める}で凌いでいますが、どうも汚いソースに見えて仕方がないのです。
しかし、このままではC言語に発展させたときに
'"'や'A'、"ABC"
が出てきたり、
HTMLでも
'Document.Write(OnClick="JavaScript:History.back")'
等といったシングル/ダブルクォーテーションをそれぞれ文字列の囲いとして使用する書式があるので挫折するのは目に見えています。
DLLやコンソールアプリのコマンドラインでのファイル名指定などではダブルクォーテーション内の半角スペースもうまく処理している(普通の半角スペースはスイッチの区切りとしてみなす)ので、何か良い方法があるのかと思い、質問させていただきました。
何卒、ご教授願います。
お礼
御回答ありがとうございます。 やはりそうですか、面倒なことこの上ないですが、現在のものをもう少しサブプロシージャに分割して見やすくなるように努力します、有難うございました。