Windows2003server上で動く、文字列置換ツールを用意したいと思ってます。
※同様の質問をもう一件あげていますが、質問の根本が違うのであえて分けています。
よろしければそちらもご覧頂ければと思います。
今、考えている動作をしてくれるサンプルプログラムが@ITにあったので
これを流用しようと思うのですが、変換対象の文字列がプログラム内にハードコーディングされているため
設定ファイルとして外に出したいと思っています。
置換サンプルプログラム
http://www.atmarkit.co.jp/fwin2k/win2ktips/308st …
想定している使い方は以下の通りです。
・変換対象ファイルは置換後上書き保存される。(サンプルPGの動作)
・変換対象文字のパターンは複数ある。
・変換対象ファイル内に、変換対象文字は複数出てきて全てを置換する。
・サンプルPGでは変換対象文字列がソース内に書かれているが、外部ファイルに出したい。
・変換対象文字のパターンは今後増える可能性がありソース変更なしに柔軟に対応できるようにしたい。
文字列置換の動作自体はサンプルPGの動作が希望通りで問題ありません。
あとは、外部ファイルに変換対象文字を持たすことと、複数パターンに対応できるように
改良できればベストだと思っています。
外部ファイルの記述方法(左が変換前、右が変換後)
AAA aaaa
BB bbbbbb
CCCC ccc
・
・
増やした文だけ、変換対象となる。
※変換文字に.や\が含まれます。(サンプルソースでは動いてます)
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
課題の取り組みの考え方については先の質問の回答に書いたとおりですが、時間をかけて勉強するものとして、アドバイスを申し上げます。
変換対象の文字列を外出しするのでしたら、スクリプトで設定ファイルを読み込んで配列に記憶し、配列の要素数だけ置換を繰り返せばよいです。
ファイルの読み込みは既にサンプル中にあります。配列はArrayオブジェクトです。なお変換前後の文字列それぞれに配列を作るとよいと思います。
また変換前後の文字列を分ける(AAAとaaaaに分ける)処理も必要ですが、それにはsplitメソッドなどを使えばよいでしょう。
外部ファイルそのものの指定をどうするかも課題ですね(これはハードコーディングしてしまいますか…)。
複数の変換対象を定義するのは、ハードコーディングですができました。
これで、スクリプトはとりあえずは使うことができるので
定義を外部に持たせるといった、これ以上のカスタマイズは徐々に進めていこうと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- フリーソフト フォルダ、ファイル名の一括変換について 3 2023/03/16 09:23
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- Visual Basic(VBA) Excel VBAでAA(BBB) → BBB.AA に置換したい 2 2022/10/30 13:59
- その他(プログラミング・Web制作) 変換のプログラムを教えてください。 6 2023/07/01 09:57
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Excel(エクセル) VBA 文字列変換と指定した列にある日時データから時間を削除する方法について 2 2022/04/14 15:23
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
Excel-VBAのmsgBox()の不思議
-
【EXCEL】カナ、ひらがなを英字...
-
3のつく数字と3の倍数のみを表...
-
C/C++→JAVAに変換するツール
-
文字コードの変換
-
VC++2005で、CString型に16進...
-
英数文字列のうちの数値を4桁に...
-
マンセル⇔XYZ,RGB変換式或いは...
-
Editboxのアスタリスク変換
-
Mac 乗数の入力方法
-
GetDlgItemInt( ) c++
-
c++でmatからvectorへの変換の...
-
魚眼レンズの画像処理
-
VB6から.NETへアップグレード時...
-
機械語とアセンブリ言語の違い...
-
n次元の正規直交基底ベクトルの...
-
非接触回転速度センサ OH1...
-
VB 6 を VS 2012に変換するには?
-
シフトJISのCSVファイルをUFT-8...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
Excel-VBAのmsgBox()の不思議
-
Mac 乗数の入力方法
-
家電製品の電力周波数を変える機械
-
3のつく数字と3の倍数のみを表...
-
bmp→jpgに、jpg→bmpに
-
10進数をBCDに変換する方法
-
【EXCEL】カナ、ひらがなを英字...
-
StrConvの使い方について教えて...
-
分を時間に変換するプログラム
-
画像ファイル変換(Tiff→PDF)
-
マンセル⇔XYZ,RGB変換式或いは...
-
C/C++→JAVAに変換するツール
-
VB6からVB2010への変換について
-
c++でmatからvectorへの変換の...
-
DOSコマンドでの文字コード変換...
-
VB.NETをJavaに変換するツール...
-
SJIS⇔UTF-8の文字コード...
-
なぜ通信には16進数文字列が使...
-
C#でのpngからbmpへの変換について
おすすめ情報