• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBS ある条件で,空き行を埋め込む。)

VBS ある条件で空き行を埋め込む方法

このQ&Aのポイント
  • VBSを使用して特定の条件下で空き行を埋め込む方法を知りたいです。Do~loopを使用して行読み込みを行い、S111~S555の入力レコードを順番に出力していますが、入力レコードには間があることがあります。S111が存在する場合はそのまま出力し、存在しない場合はその行を省略したいです。
  • VBSを使って特定の条件で空き行を埋め込みたいです。Do~loopを使って行読み込みをしていますが、S111~S555の入力レコードが連続的に並んでいない場合があります。S111がある場合はそのまま出力し、ない場合はスキップしたいです。
  • VBSを使って特定の条件で空き行を埋め込みたいです。Do~loopを使って行読み込みをしており、S111~S555の入力レコードを順番に出力していますが、入力レコードには空きがあることがあります。S111がある場合はそのまま出力し、ない場合はその行を省略したいです。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

こんな感じでいいかと思います。 ---------------------------------------------------------------- Dim fso, fileIn, fileOut Dim inLine, counter Dim code, codeList Dim i codeList=Array("S111","S222","S333","S444","S555") ListSize = UBOUND(codeList) + 1 Set fso = CreateObject("Scripting.FileSystemObject") Set fileIn = fso.OpenTextFile("input.txt") Set fileOut = fso.CreateTextFile("output.txt") counter=0 Do Until fileIn.AtEndOfStream inLine = fileIn.ReadLine code = Left(inLine, 4) '行の先頭4文字がコード i = counter mod ListSize Do until codeList(i) = code If codeList(i)<>"S111" Then fileOut.WriteLine(codeList(i) + " ""空白""") End If counter = counter +1 i = counter mod ListSize Loop fileOut.WriteLine(inLine) counter = counter + 1 Loop i = counter mod ListSize If i <> 0 Then 'データが残っていたら掃き出す Do while i < ListSize fileOut.WriteLine(codeList(i) + " ""空白""") i=i+1 Loop End If fileOut.Close fileIn.Close

fwiv3867
質問者

お礼

検証出来ました。 大変感謝致しております。 有難うございました。 自分では、Do~loopの後、 if…の連続でしたので、かなりスッキリしました。

関連するQ&A