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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- Visual Basic(VBA) 【VBA】特定の文字で改行(次の行)に行きたい。 3 2022/04/11 17:20
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- その他(プログラミング・Web制作) bashのgrepで複数の検索、かつスクリプト内で改行する方法を教えてください。 1 2022/10/06 20:09
- Excel(エクセル) Excel VBA 3 2023/04/22 10:46
- その他(Microsoft Office) パワークエリの複数ファイルのデータ統合について 3 2022/07/14 17:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイルの作り方(CSV→...
-
C言語で特定の行を抽出する方法...
-
【エクセル】改行無しテキスト...
-
htaccessで特定のディレクトリ...
-
Edge スクレイピング
-
batファイルでrenameができませ...
-
awkスクリプトでダブルクォーテ...
-
ディレクトリの判別
-
巨大ファイルの行をを逆順に並...
-
csvファイルの横方向への改行に...
-
VBAでCSVファイルの特定行を書...
-
VBAで巨大なファイルの途中から...
-
動かなくなったのでJavaソース...
-
Perlの変数に文字数制限(容量...
-
Perl<->Oracle間での文字化けに...
-
close()で例外が投げられる理由
-
VBA テキストファイルを読み取...
-
perlでの出力先設定
-
オープンしたファイルで行の連結
-
window.open でのファイル指定方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイルの作り方(CSV→...
-
htaccessで特定のディレクトリ...
-
【エクセル】改行無しテキスト...
-
Edge スクレイピング
-
タブの色を変更する方法
-
C言語で特定の行を抽出する方法...
-
全角と半角文字が混在している...
-
【Access2003】VBAでタブ区切り...
-
デルファイ TabControl タブの...
-
空白文字 \\f と\\v の違いに...
-
Excelのマクロで改行を含んだテ...
-
テキストファイル(tsv)を改行...
-
C++でファイルから複数行のデー...
-
VB6でのデータの編集(ファイル...
-
VBAでタブ区切りテキストの保存...
-
VBAのFileFormatで悩んでいるこ...
-
\\tはどんなときに使うのでしょ...
-
タブコントロールに付いて
-
AccessからExcelをタブ指定で開...
-
はじめまして。よろしくお願い...
おすすめ情報