お世話になってます。
現在、1行のテキストデータをループして、カンマ区切りを行う処理を考えています。
データは、AAAAABBCCCCCCCCCCDDDDDDDDEEEEEEEE・・・という感じです。
このデータを、1回目は先頭から5文字分。2回目は6文字目から2文字分、3回目は8文字目から10文字分、4回目は18文字目から8文字分を取得する、という感じで、12回、ループを回します。
何文字分取得するか、という数値はINIファイルから取得します。
分からない部分は、「何文字目から」という部分で、ループを回しながら「何文字目から」という値を取得したいのですが。
関数は、MID関数を使おうと思っています。
どうか、宜しくお願いします。
切り出す文字数の情報はどのように保持していますか?配列?
>「何文字目から」という値
は前回の「何文字目から」という値 + 前回の 「文字数」 ということになります。
ただし、最初は1です。
Blueさん
早速の返事、ありがとうございます。
切り出す文字数は、INIファイルで持っており、
A1 = 5
A2 = 2
A3 = 10
A4 = 8
という感じで持っています。
> という感じで持っています。
ループでまわすには、これらを配列に入れないといけないでしょう。
ループを使わないと
Dim s As String
Dim start As Long
s = "AAAAABBCCCCCCCCCCDDDDDDDDEEEEEEEE"
start = 1
MsgBox Mid$(s, start, A1)
start = start + A1
MsgBox Mid$(s, start, A2)
start = start + A2
MsgBox Mid$(s, start, A3)
start = start + A3
MsgBox Mid$(s, start, A4)
となるのは理解できますでしょうか?
> ループでまわすには、これらを配列に入れないといけないでしょう。
そうでもなかったでした。
ループの中で、INIファイルから読み込む処理を入れれば、
A1、A2、・・・
ということならばできますね。
ただ、INIファイル読込部分と文字列分割部分が同じ段階で処理されますけど。
(なるべく、大きな処理単位に分割したいです。)
Blueさん。
返信ありがとうございます。
参考にさせていただき、色々いじって見た所、出来たようです。
ありがとうございました!
> 色々いじって見た所、出来たようです。
できれば、どのようなコードを書いたのかを載せてください。
(フィードバックしてください。)
> 色々いじって見た所、出来たようです。
できれば、どのようなコードを書いたのかを載せてください。
(フィードバックしてください。)
2重投稿スイマセン。。。。orz
ツイート | ![]() |