人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VBSの質問です
以下のプログラムで改行を置換しようとしても置換できません
なぜでしょうか?

●質問者: takanii
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

質問者から
Option Explicit
Const TARGET_FOLDER = "C:\Users\r\Desktop\a\a"
Const REPLACE_FROM = "\r\n"
Const REPLACE_TO = "s"

Const ForReading = 1 '読み込み
Const ForWriting = 2 '書きこみ(上書きモード)
Const ForAppending = 8 '書きこみ(追記モード)

Dim objFSO, objFolder, objFile, objSubFolder, objTXT
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(TARGET_FOLDER)

For Each objFile In objFolder.Files
 Dim strFilePath, infile, outfile, strData
 strFilePath = objFSO.BuildPath(TARGET_FOLDER, objFile.Name)
 Set infile = objFSO.OpenTextFile(strFilePath,ForReading)
 strData = infile.ReadAll
 infile.Close
 Set infile = Nothing
 Set outfile = objFSO.OpenTextFile(strFilePath,ForWriting) '(上書き)
 outfile.Write Replace(strData,REPLACE_FROM,REPLACE_TO)
 outfile.Close
 Set outfile = Nothing
Next

1 ● a-kuma3
●200ポイント ベストアンサー

REPLACE_FROM の部分を、

Const TARGET_FOLDER = "C:\Users\r\Desktop\a\a"
Const REPLACE_FROM = "\r\n"  ' ★ここを
Const REPLACE_TO = "s"

このように変えてください。

Const TARGET_FOLDER = "C:\Users\r\Desktop\a\a"
Dim REPLACE_FROM  ' ★こうする
REPLACE_FROM = Chr(13) + Chr(10)  ' ★こうする
Const REPLACE_TO = "s"

takaniiさんのコメント
行ってみましたが処理されませんでした

a-kuma3さんのコメント
ぼくも、動作確認してから回答したんですけどね。 パスとか置き換え文字とかを微妙に変えてますけど、確認したソースをそのまま貼っておきます。 >|vb| Option Explicit Const TARGET_FOLDER = "D:\a-kuma3\pub\w.hatena\x\pp" Dim REPLACE_FROM REPLACE_FROM = Chr(13) + Chr(10) Const REPLACE_TO = "!" Const ForReading = 1 '読み込み Const ForWriting = 2 '書きこみ(上書きモード) Const ForAppending = 8 '書きこみ(追記モード) Dim objFSO, objFolder, objFile, objSubFolder, objTXT Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(TARGET_FOLDER) For Each objFile In objFolder.Files Dim strFilePath, infile, outfile, strData strFilePath = objFSO.BuildPath(TARGET_FOLDER, objFile.Name) Set infile = objFSO.OpenTextFile(strFilePath,ForReading) strData = infile.ReadAll infile.Close Set infile = Nothing Set outfile = objFSO.OpenTextFile(strFilePath,ForWriting) '(上書き) outfile.Write Replace(strData,REPLACE_FROM,REPLACE_TO) outfile.Close Set outfile = Nothing Next ||< 置き換えの対象にしたいファイルって、どのようにして作ったファイルですか? Windows のテキストエディタで作ったものでしょうか? もし、unix 系のエディタで作ったファイルであれば、REPLACE_FORM を以下のようにしてみたらどうなるでしょうか? >|vb| REPLACE_FROM = Chr(10) ||<

takaniiさんのコメント
a.php ******* a b c d ********* このようなファイルです

a-kuma3さんのコメント
php のソースって、どうやって書きました? unix 上で vi とかで作ったものを ftp のバイナリモードで Windows パソコンにダウンロードした、とかではないですか? 対象になってるディレクトリ C:\Users\r\Desktop\a\a に、お試しでメモ帳かなんかでテキストファイルを作ってみたら、そのファイルの改行コードは変換されませんか?

takaniiさんのコメント
Chr(10) こちらで置換を行いました所置換できました。ありがとうございました
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ