内容が
氏名 住所 電話番号(改行)
氏名 住所 ...
というテキストファイルを、
List1 に 氏名, List2 に 住所
という風に読み込みたいのですが、どういう処理をすればよいのか教えていただけないでしょうか?
お願いします。
まずは環境を書いてください
環境に寄らない回答となれば
1 ファイルから文字列を読み込む
2 行の終端文字で区切る
3 1行の各項目の区切り文字で区切る
4 各項目をList1やList2などといったものになんとかする(List1とかList2って何だろう…?)
となりましょうか
>ガッ 氏
>4 各項目をList1やList2などといったものになんとかする(List1とかList2って何だろう…?)
リストボックスかな?とは思ったんですが、どうなんでしょうね^^;
>ラブモグラ 氏
スペース区切りで記述しているテキストを読み込んでリストボックスにそれを入れる・・・
という解釈でいいのでしょうか?
とりあえず1行ずつ読み込んで配列に入れといて
for文で1行ずつループしてもう一つfor文をネストして中のfor文で1文字ずつ判定していく
たとえば最初は氏名の読み込みを行ってスペースが来た時点で次の住所の読み込みに移るとか?
---------------以下.netと仮定してソース---------------------
配列をdat()、氏名をnam()、住所をpos()とすると
(先にdatに1行ずつデータを入れとく)
Dim i,n As Integer
n = 1
Redim nam(UBound(dat)) : Redim pos(UBound(dat))
For i = 0 To UBound(dat)
For n = 1 To Len(dat(i))
Static stat As Byte
Select Case stat
Case 0
If dat(i) = " " Then stat = 1 : GoTo Exiting
nam(i) += ・at(i)からn番目の文字を1つ取り出して追加)
Case 1
If dat(i) = " " Then stat = 2 : GoTo Exiting
pos(i) += ・dat(i)からn番目の文字を1つ取り出して追加)
Case 2
・List1とかにデータを代入(最後でもいいけど)
End Select
Exiting:
Next n
Next i
※ところどころ忘れたりして日本語なのはスマン
.さん、そういう事ならSplit関数を使ったほうが楽ですよ。
↓単純ですがSplit関数の使い方。
-------------------------------
Dim str As String
Dim strarr() As String
str = "氏名 住所 電話番号"
strarr = Split(str, " ")
Debug.Print strarr(0), strarr(1), strarr(2)
-------------------------------
おぉ・・・
その手があったか・・・
ということで修正版
こんな感じでいいのだろうか・・・
>nyangetsu
間違ってたらまたヨロシクお願いします・・・。
---------------以下.netと仮定してソース---------------------
配列をdat()、氏名をnam()、住所をpos()とすると
(先にdatに1行ずつデータを入れとく)
Dim i,n As Integer
n = 1
Redim nam(UBound(dat)) : Redim pos(UBound(dat))
For i = 0 To UBound(dat)
Dim d() As String
d = Split(dat(i), " ")
nam(i) = d(0) : pos(i) = d(1)
Next i
ツイート | ![]() |