質問: データを条件で引っ掛けて、他のテキストに書出したい 以前にもお世話になりました。 もう少し教えてください。2つのテキストファイルがあります。 ken.txt------------------- 10 大阪府 20 奈良県 30 三重県 -------------------------- prf.txt------------------- 1001 大阪府大阪市 1002 大阪府岸和田市 2001 奈良県天理市 2002 奈良県奈良市 2003 奈良県大和郡山市 3001 和歌山県橋本市 -------------------------- prfのデータ前2文字とkenのデータを引っ掛けて、完成品としては下記のようなテキストをつくりたいのです。 そこで、do~loopを使ってprfをopenして、その中でkenをopenしようと試みました。 しかし、うまくできなかったのです。 下記のような出力はできますか??また、その方法を教えてください。 -------------------------- 大阪府 "大阪市" "岸和田市" 奈良県 "天理市" "奈良市" "大和郡山市" 和歌山県 "橋本市" --------------------------
回答: >下記のような出力はできますか?? 同じにはできませんでした。 ken.txtで30が三重県に対し prf.txtで3001が和歌山県でした。 outfile.txt--------------- 大阪府 "大阪市" "岸和田市" 奈良県 "天理市" "奈良市" "大和郡山市" 三重県 "和歌山県橋本市"エラートラップ等はしてません。 尚それ以外は下記ソースで確認しました。 用途に応じて修正してください。 function 住所出力() dim textline as string 'ファイルから読み込んだ1行データ dim strwkhai() as string 'データ加工用作業領域 dim strkenno as string 'kenの番号 dim strkenaddr as string 'kenの県名 dim strprfno as string 'prfの番号 dim strprfaddr as string 'prfの住所 dim intfl1 as integer 'kenのファイル番号 dim intfl2 as integer 'prfのファイル番号 dim objfs as object '出力用に使用 dim objts as object ' 〃 set objfs = createobject("scripting.filesystemobject") set objts = objfs.createtextfile("c:\outfile.txt", true) intfl1 = freefile open "c:\ken.txt" for input as #intfl1 do while not eof(intfl1) line input #intfl1, textline if trim("" & textline) <> "" then strwkhai = split(textline, " ") strkenno = strwkhai(0) strwkhai(0) = "" strkenaddr = trim("" & join(strwkhai, " ")) objts.writeline strkenaddr intfl2 = freefile open "c:\prf.txt" for input as #intfl2 do while not eof(intfl2) line input #intfl2, textline if trim("" & textline) <> "" then strwkhai = split(textline, " ") strprfno = strwkhai(0) strwkhai(0) = "" strprfaddr = trim("" & join(strwkhai, " ")) if left(strkenno, 2) = left(strprfno, 2) then strprfaddr = replace(strprfaddr, strkenaddr, "") objts.writeline chr(34) & strprfaddr & chr(34) end if end if loop close #intfl2 doevents end if loop close #intfl1 objts.close set objfs = nothing end function