テキストファイルに記載されているか調べるには

このQ&Aのポイント
  • テキストファイル内に指定した県名が記載されているかを確認するJスクリプトを作成したがうまく動作しない。
  • スクリプト内で指定した県名がテキストファイル内に登録されていればアラートで表示する方法を教えてほしい。
  • jusho.txtファイルとスクリプトファイルは同じフォルダに保存されている。
回答を見る
  • ベストアンサー

テキストファイルに記載されているか調べるには。スクリプト

Jスクリプトの質問です。 県名のみ記載されている jusho.txt があります。 この中からある県名が記載されているか調べるスクリプトを作ろうとしてますがうまくできません。 登録県名があったらアラートで表示させるにはどうすればいいですか。 途中まで考えましたがわからなくなりました。 -------------------------------------------- //調べたい県名をここで入力 kenmei="愛知県" //登録住所か調べる。 var fso = WScript.CreateObject("Scripting.FileSystemObject"); var stream = fso.OpenTextFile("jusho.txt",1); //1は読み専用 while (stream.AtEndOfStream="false"){ var jusho = stream.ReadLine(); if(kenmei=jusho){alert ("登録されてます")}; }; ----------------------------------------- jusho.txt と スクリプトは同じフォルダにあります。

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

  • ベストアンサー
  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.5

結局 if(kenmei=jusho){alert ("登録されてます")}; ここは if(kenmei==jusho){WScript.Echo("登録されてます");} こうなります。 (最後のほうの;に注意)

norinori555
質問者

お礼

いやはや、私の記述はエラーだらけでどこが悪いのかが さっぱり分からなかったのですがおかげさまで、すっきりと疑問が解決できました。 ありがとうございました。

その他の回答 (4)

  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.4

それと、 alert ("登録されてます") このalertはブラウザのメソッドなので WScript.Echo("登録されてます") とか書いてね

  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.3

それと ){alert ("登録されてます")}; このように 最後に } がある行の最後には ; は付けないでね。

  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.2

次に if(kenmei=jusho){ ここは if(kenmei==jusho){ こうしてみてね。 p(*・o・*)q

  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.1

まず while (stream.AtEndOfStream="false"){ ここは while (!stream.AtEndOfStream){ こうしてみてね。p(*・o・*)q

関連するQ&A

  • テキストファイル中の文字列を書き換えるスクリプトを書きたい

    テキストファイルの文字列を書き換えるスクリプトを考えています。 今、次のところまで出来るようになりました。本当は「こんにちは」の文字列を全て「HELLO」に置換したいのです。現在は一行の中で最初の「こんにちは」は置換されますが、2番目以降が置換されません。同じ行中の2番目以降も置換するには、どうしたら良いでしょうか? <置換前ファイル:sample.txtの中身> こんにちはこんにちはこんにちはこんにちは こんにちは こんにちは <置換前ファイル:sample.txtの中身> HELLOこんにちはこんにちはこんにちは HELLO HELLO <置換スクリプト> Set fso = CreateObject("Scripting.FileSystemObject") Set regEx = New RegExp Set inFile = fso.OpenTextFile("C:\static\sample.txt") Set outFile = fso.CreateTextFile("C:\static\sample1.txt") regEx.Pattern = "こんにちは" repStr = "HELLO" Do Until inFile.AtEndOfStream tempLine = inFile.ReadLine repLine = regEx.Replace(tempLine, repStr) outFile.WriteLine repLine Loop inFile.Close outFile.Close

  • VBSでテキストファイルを作成

    こんにちは。 set fso = createobject("Scripting.FileSystemObject") fso.createfolder("倉庫") を実行すると、実行したスクリプトが存在する場所に「倉庫」という名のフォルダが作成されます。 その倉庫というフォルダの中にテキストファイルを作成するにはどうすればよいでしょうか? set fso = createobject("Scripting.FileSystemObject") fso.createfolder("倉庫") set fo = fso.opentextfile(FILENAME) close.fo 相対的にファイルの場所を指定する方法がわかりません。 絶対パスでないとだめなのでしょうか?

  • スクリプトのフルパス取得したい

    言語知ってる人には簡単な話なんでしょうか そのスクリプトが動いているフルパスの取得の方法がわからず悩んでいます スクリプトは以下(最低ロジックのみ抜粋) var fso = new ActiveXObject("Scripting.FileSystemObject"); var topic = WScript.ScriptFullName + "\log"; <---ここをどうすればいいか不明 if(!fso.FolderExists(topic))   fso.CreateFolder(topic); 動作環境は Windows7(32ビット)上となります 目的 スクリプトが置いてあるフォルダにサブフォルダ(子フォルダ log)を作りたい

  • 【VBScript】ディレクトリ内のファイルを、リストを読み込んで分割

    【VBScript】ディレクトリ内のファイルを、リストを読み込んで分割 ■プログラム及びファイルに関する備考 .\test\     = 分割を行いたいファイルが格納されたディレクトリ Dir_FileList.txt = testディレクトリ内のファイルをリスト化したもの。           相対パスにて、1行ずつ改行して記述する。 ■やりたい事 Dir_FileList.txtという、.\test\内に配置されたファイルをリスト化したtxtを 1行ずつ読み込み、読みこんだファイルに対し、10行毎に分割処理を行いたいと思っています。 分割したファイルは、分割元のファイルが格納されたディレクトリと同じ、.\test\ディレクトリに作成し、 分割前の元ファイルを最後に削除するという処理をリストに書かれた全てのファイルに対して行いたいです。 下記のようにコーディングをしたのですが、 どうも「Do Until ( fILE1.AtEndOfStream )」のループ文の処理が行われていない?ようで、 testディレクトリ内部のファイルが分割されません。 色々試したのですが、VBScriptを触るのは初めてでなかなか上手くいきませんでした。 どこが間違っていて、どのように修正すれば動くようになるでしょうか? お手数ですが、ご教授をお願い致します。 ---------------------------------------- Option Explicit Dim flReadFSO, flReadFSO2, fFolder, fILE, flrSubFolder Set flReadFSO = CreateObject("Scripting.FileSystemObject") Set flReadFSO2 = WScript.CreateObject("Scripting.FileSystemObject") Set fFolder = flReadFSO2.GetFolder(".") Dim name1, fILE1 name1 = fFolder & "\Dir_FileList.txt" Set fILE1 = flReadFSO.OpenTextFile(name1) Dim oneLineTxt oneLineTxt ="" Dim FSO set FSO = WScript.CreateObject("Scripting.FileSystemObject") Do Until ( fILE1.AtEndOfStream ) oneLineTxt = fILE1.ReadLine WScript.Echo oneLineTxt arg = ".\test\test01.txt" set fin = FSO.OpenTextFile(arg, 1) fbn = FSO.GetBaseName(arg) fen = FSO.GetExtensionName(arg) nf=0 set fout = FSO.OpenTextFile(".\test\" & fbn & "_" & nf & "." & fen, 2, true) nl=0 Do While Not fin.AtEndOfStream fout.WriteLine fin.ReadLine nl=nl+1 if nl>9 then fout.Close nf=nf+1 if nf>9 then exit do set fout = FSO.OpenTextFile(".\test\" & fbn & "_" & nf & "." & fen, 2, true) nl=0 end if Loop fin.Close FSO.DeleteFile arg, True Loop fILE1.Close ----------------------------------------

  • 読み込むテキストファイルが改行だけの場合について

    あるテキストファイルC:\test.txtが改行だけのファイルの場合、 下記のプログラムにおいて、.Read(1)で何が読み込まれるの でしょうか? Set myFso = CreateObject("Scripting.FilesystemObject") Set mytxt = myFso.OpentextFile("C:\test.txt", 1, 0) With mytxt Do While mytxt.AtEndOfStream <> True mystr = .Read(1) If mystr = "" Then j = 0 End If Loop .Close End With Set mytxt = Nothing

  • エクセルマクロ(vba)のFSO.OpenTextFileを利用したファイルへの追記について

    FSOを利用して、特定のファイルがなければ、FSO.CreateTextFileを使ってファイルを作成して、ログを記入します。 特定のファイルがあれば、FSO.OpenTextFileを使って追記します。 ファイルが存在しないので新規でファイル作成を行ってからログを記入するのははうまくいくのですが、ファイルが存在するので、ファイルを開いて追記する場合ががうまくできません。 何が原因なのでしょうか? 以下がそのプログラムです。 アドバイスをよろしくお願いします。 Dim excel_folder excel_folder = ThisWorkbook.Path excel_folder = excel_folder & "\log.txt" Set objShell = CreateObject("Wscript.Shell") Dim FSO Set FSO = CreateObject("Scripting.FileSystemObject") Dim stream, data_text If FSO.fileexists(excel_folder) Then Set stream = FSO.OpenTextFile(Filename:=excel_folder, IOMode:=ForAppending, Create:=True) Else: Set stream = FSO.CreateTextFile(Filename:=excel_folder, Overwrite:=True) End If data_text = "test" stream.writeLine (data_text) stream.writeLine (vbCrLf) stream.Close

  • ファイルの変換で文字化けを回避したい

    ファイル中の文字列を一部書き換える処理をしています。regEx.replaceを使って書き換えたところ、日本語が下記のように文字化けしてしまいます。 これを回避するためにどうしたら良いでしょうか? ○変換前:test1.txt <description>東京都</description> ○変換結果:test2.txt(文字化け) <description>譚ア莠ャ驛ス</description> ○スクリプト Set fso = CreateObject("Scripting.FileSystemObject") Set inFile = fso.OpenTextFile("c:\test1.txt") Set outFile = fso.CreateTextFile("c:\test2.txt") Set regEx = New RegExp regEx.pattern = "テスト" repStr = "てすと" Do Until inFile.AtEndOfStream tempLine = inFile.ReadLine repLine = regEx.Replace(tempLine, repStr) outFile.WriteLine repLine Loop inFile.Close outFile.Close

  • テキスト改行(split+vbCrLf)について。

    現在下記のようなスクリプトを試しています。 内容的には C直下にあるテキストファイルを読み込み テキスト内部の情報を改行ごとに配列で取得しようとしています。 ////////////////////////////////////////////////////////////////////////////////// //テキスト読み込み ////////////////////////////////////////////////////////////////////////////////// var FORREADING = 1; // 読み取り専用 var TRISTATE_FALSE = 0; // ASCII var oText = new ActiveXObject("Scripting.FileSystemObject"); var ofile = oText.OpenTextFile( "C:/Info.txt", FORREADING, true, TRISTATE_FALSE );//ここの""でテキストディレクトリの指定 var oRead = ofile.ReadAll(); var ovd = oRead.vbCrLf; var oSplit = oRead.split("vbCrLf"); WScript.Echo(oRead[0]); WScript.Echo("初めは"+oRead[0]+"で次は"+oRead[1]+"です"); // ファイルを閉じる ofile.Close(); oText = null; ////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////// この状態で実行すると、ウィンドウでは空白になってしまいます。 どこが原因かだいぶ悩んでいます。 どうのような解決策があるでしょうか? ご教授よろしくお願いします。

  • vbsでテキストファイル内の文字列検索

    初心者です。 テキストファイルを指定し、含まれる文字列を検索し、 結果表示したいと考えております。 色々探して、以下で作成したのですが、 うまく動いてくれません。 出来ましたら、テキストファイルの中の文字列の 一部分を指定して動作させたいと思っております。 どなたかご教示のほど宜しくお願い致します。 ---------------------------------------------------- Set WSHFso = CreateObject("Scripting.FileSystemObject") Set WshShell = WScript.CreateObject("WScript.Shell") Dim strSearchWord Set tmpFile = WSHFso.OpenTextFile("C:\AAA.txt") Do Until tmpFile.AtEndOfStream tmpLine = tmpFile.ReadLine strSearchWord = strSearchWord & tmpLine & vbcrlf Loop Dim SearchWord SearchWord = split(strSearchWord," ") if InStr(SearchWord(ix), "test")<>0 then WScript.Echo " testを含みます。" else WScript.Echo " testを含みません。" end if ----------------------------------------------------

  • ファイルシステムオブジェクトのメソッドについて

    こんにちは、皆さん。 以下のプログラムでコピーしようとしたら、 オブジェクトがメソッド、プロパティをサポートしてないという メッセージが表示されてしまいました。 Set fso = CreateObject("Scripting.FileSystemObject") fso.CopyFile "c:\aaa.txt", "c:\temp\" Set fso = CreateObject("Scripting.FileSystemObject") Set src = fso.GetFile("c:\aaa.txt") fso.Copy "c:\temp\" こういった場合、どんなメソッドがあるか確認するには どうしたらよいでしょうか? また、ファイルをコピーするにはどうしたらよいでしょうか? よろしくお願いします。

専門家に質問してみよう