
WindowsXP環境でtsvファイルを扱いたいのですが、
このtsvファイルが改行無く出力されています。
このファイルに改行を入れたいと思っています。
【例】
(現状)
AAA 100 6 BBB 200 5 CCC 150 4 ・・・
↓
(結果)3つめのタブを改行に変更したい。
AAA 100 6
BBB 200 5
CCC 150 4
・
・
・
新規ソフトウェアのインストールやフリーソフトを導入できない端末なので、
VBScriptで実現できないかと思っているのですが、なかなかうまくいきません。
どなたかお知恵を拝借いただけませんか?
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
とりあえずこういうスクリプトですね。
Dim FSO
Dim InFile
Dim OutFile
Dim Text, Char, Count
Set FSO = CreateObject("Scripting.FileSystemObject")
Set InFile = FSO.OpenTextFile("C:\~", 1)
Set OutFile = FSO.CreateTextFile("C:\~", True)
Do Until InFile.AtEndOfStream
Count = 0
Text = ""
Do Until InFile.AtEndOfStream
Char = InFile.Read(1)
If Char = vbTab Then
Count = Count + 1
If Count = 3 Then Exit Do
End If
Text = Text & Char
Loop
OutFile.WriteLine Text
Loop
OutFile.Close
InFile.Close
※ファイル名は適当に変更してください。
※インデントに漢字空白を使用しています。
コピペ注意
No.5
- 回答日時:
tsvファイルが複数行有るのか解らなかったけど、取りあえず複数行あってもいい様にしてみました。
例ではc:\test.tsvを整形した物をc:\test2.tsvに出力しています。
Set fso = CreateObject("Scripting.FileSystemObject")
Set inFile = fso.OpenTextFile("c:\test.tsv")
Set outFile = fso.CreateTextFile("c:\test2.tsv")
Do Until inFile.AtEndOfStream
nTab = 0
tempLine = inFile.ReadLine
For i = 1 To Len(tempLine)
one = Mid(tempLine, i, 1)
If one = vbTab Then
nTab = nTab + 1
If nTab >= 3 Then
one = vbCrLf
nTab = 0
End If
End If
outFile.Write one
Next
outFile.Write vbCrLf
Loop
inFile.Close
outFile.Close
No.4
- 回答日時:
文字列ストリームを変数に読み込み、Instr(VBScriptの関数にもあり、VB(A)と同じ)でTABコード(水平タブ,多分Chr(9))
を見つけ、3個目ごとにvbCrlLf に置き換えていけば良いはず。
Instr関数は第1引数に開始位置を指定できるので、尺取り虫的に、開始位置をずらしては。Instr関数をかける。見つかった場所に次の文字が探索開始場所にする。
TABコードは、VBScriptでもvbTabが使えるはず。
>、なかなかうまくいきません。
質問者が使用経験がすくないだけでは。
データ例を作っても、質問者の場合と同じかどうか判らないので、コードはここでは省略する。
16進表示でデータの一部でも挙げれば情況がわかるが。
> 質問者が使用経験がすくないだけでは。
お察しの通りです。この件で初めてVBScriptに触れました。
今後も勉強します。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
空白文字 \\f と\\v の違いに...
-
C言語で特定の行を抽出する方法...
-
タブの色を変更する方法
-
バッチファイルの作り方(CSV→...
-
Windowsで複数のファイルを同じ...
-
FindFirstFileとFindNextFileで...
-
DOSコマンドで、標準出力を出力...
-
パスから最後のディレクトリだ...
-
drtファイルはどうしたら開...
-
Perl 時間同士の差
-
C++でのテキストファイル読み込...
-
テキストファイルから日本語部...
-
chdirがうまくできない
-
awkスクリプトでダブルクォーテ...
-
エラーログ「\\x8ew\\x92\\xe8...
-
JavaでCSVファイルを高速に読む...
-
並び方、
-
Perl Vlookupみたいに
-
csvファイルの横方向への改行に...
-
大量メールの任意のヘッダだけ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイルの作り方(CSV→...
-
C言語で特定の行を抽出する方法...
-
【エクセル】改行無しテキスト...
-
タブの色を変更する方法
-
全角と半角文字が混在している...
-
空白文字 \\f と\\v の違いに...
-
エクセルのデータをテキストデ...
-
デルファイ TabControl タブの...
-
Edge スクレイピング
-
【Access2003】VBAでタブ区切り...
-
Excelのマクロで改行を含んだテ...
-
Flashで実現可能なのか知りたい
-
VBAのFileFormatで悩んでいるこ...
-
VBAでタブ区切りテキストの保存...
-
テキストファイル(tsv)を改行...
-
htaccessで特定のディレクトリ...
-
ExcelをCSV書き出す場合のシー...
-
エクセルVBA コードが同じでも...
-
awkスクリプトでダブルクォーテ...
-
batファイルでrenameができませ...
おすすめ情報