• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBS 1行ずつファイルを読み込める/読み込めない)

VBSファイルを1行ずつ読み込めるかどうかの確認方法

このQ&Aのポイント
  • VBSファイルを1行ずつ読み込む方法について、試行した結果、ファイルの一部が全て読み込まれてしまう現象が発生しました。
  • 読み込み失敗.txtのファイルでは、私たちはPrivate Sub CommandButton1_Click()という関数を使用しています。この関数は、複数の処理を実行するために使用されています。
  • VBSファイルの読み込みに関する情報や解決策が不明なため、追加の情報を求めるために質問を投稿しました。

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

  • ベストアンサー
回答No.1

失敗している方のテキストファイルの改行コードが、Windows形式の改行コードになっているか確認しましょう。 OSの違いによる改行コードの違いについて http://www.rsch.tuis.ac.jp/~mizutani/online/with-pc/textline.html 他の形式(LFのみ、CRのみ)の場合、VBAのReadLineは「CR+LFが現れるまでを1行として扱う」ので、1度で全部を読み込んでしまいます。 Visual Basic Editorなどで見ていると違いに気付けませんが、Windowsのメモ帳で見ると、CR+LF以外の改行では改行されずに表示されるので、メモ帳で開いて確認してみましょう。

satoron666
質問者

お礼

回答ありがとうございました。 メモ帳で確認してみたところ、仰るとおりでした。 一旦Terapadで開き、メモ帳に貼り付けて保存しなおすことで 直りました! ありがとうございました^^

satoron666
質問者

補足

'スクリプト名を含まないフルパスを編集する(自分の場所のみ表示) 'strScriptPath = Replace(WScript.ScriptFullName,WScript.ScriptName,"") 'スクリプト名を含むフルパス 'WScript.echo "スクリプト名を含む " & WScript.ScriptFullName 'スクリプト名を含まないフルパス 'WScript.echo "スクリプト名を含まない " & strScriptPath Dim strScriptPath'自分の現在位置 strScriptPath = Replace(WScript.ScriptFullName,WScript.ScriptName,"")'フルネームから、スクリプトネームを削除! ' フォルダをオブジェクト取得 Set objFso = CreateObject("Scripting.FileSystemObject") Set objFolder = objFso.GetFolder(strScriptPath) for each file in objFolder.Files If file.name<> WScript.ScriptName and Right(file.name,5)= ".html" Then objFso.DeleteFile file.Path End if Next Set objFolder = objFso.GetFolder(strScriptPath) for each file in objFolder.Files If file.name<> WScript.ScriptName and Right(file.name,4)= ".txt" Then 'Msgbox objFso.GetBaseName(file)ファイル名 Set HTMLOutPutData = objFso.CreateTextFile(objFso.GetBaseName(file) & ".html",True) Set fileRead = objFSO.OpenTextFile(file)'ファイルを開く 'If InStr(l, "本社") = 0 含んでない場合 'Replace(文字列,どれを、どれに) '<font color="green">文字列</font>緑色に If Err.Number = 0 Then HTMLOutPutData.WriteLine "<html>" HTMLOutPutData.WriteLine "<head>" HTMLOutPutData.WriteLine "<title></title>" HTMLOutPutData.WriteLine "</head>" HTMLOutPutData.WriteLine "<body>" HTMLOutPutData.WriteLine "<h1 align=""" &"center" &""">"& objFso.GetBaseName(file) & "</h1>" HTMLOutPutData.WriteLine "<hr>" Do Until fileRead.AtEndOfStream = true LINEDATA = fileRead.ReadLine If InStr(LINEDATA,"'") = 0 then'含んでない場合 HTMLOutPutData.WriteLine "<font color=""" &"black"&""">" & LINEDATA & "</font><br>" Else HTMLOutPutData.WriteLine "<font color=""" &"black"&""">" & Replace(LINEDATA,"'","</font><font color=""" &"green"&"""><b>'") & "</b></b></font><br>" End if Loop HTMLOutPutData.WriteLine "</body>" HTMLOutPutData.WriteLine "</html>" fileRead.Close Else MsgBox "ファイルが開けません" End If End if Next Msgbox "終わり!" というプログラムにしてみました。(変わっていないかも…?)