こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

上手な文字列の分割方法

こんばんは、早速ですが質問があります。

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やコンソールアプリのコマンドラインでのファイル名指定などではダブルクォーテーション内の半角スペースもうまく処理している(普通の半角スペースはスイッチの区切りとしてみなす)ので、何か良い方法があるのかと思い、質問させていただきました。

何卒、ご教授願います。

投稿日時 - 2005-03-26 01:21:54

QNo.1291649

暇なときに回答ください

質問者が選んだベストアンサー

単純に1文字ずつ処理してトークンに分割してるだけかと。

でコメントや文字列はやっぱりフラグで制御でしょうね。それぞれの優先順位もあるでしょうし。
(コメント>文字列 とか)

投稿日時 - 2005-03-26 04:14:08

お礼

御回答ありがとうございます。

やはりそうですか、面倒なことこの上ないですが、現在のものをもう少しサブプロシージャに分割して見やすくなるように努力します、有難うございました。

投稿日時 - 2005-03-26 22:53:23

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問