テキストファイル(tsv)の改行方法について
- WindowsXP環境でtsvファイルを扱う際に、改行がされない問題について解決方法をお伝えください。
- 現在、改行がない状態のtsvファイルの3つめのタブを改行に変更したいです。
- VBScriptを使用して改行を実現しようとしていますが、うまくいっていません。他の方法で改行を行う手段があれば教えてください。
- ベストアンサー
テキストファイル(tsv)を改行したい
WindowsXP環境でtsvファイルを扱いたいのですが、 このtsvファイルが改行無く出力されています。 このファイルに改行を入れたいと思っています。 【例】 (現状) AAA 100 6 BBB 200 5 CCC 150 4 ・・・ ↓ (結果)3つめのタブを改行に変更したい。 AAA 100 6 BBB 200 5 CCC 150 4 ・ ・ ・ 新規ソフトウェアのインストールやフリーソフトを導入できない端末なので、 VBScriptで実現できないかと思っているのですが、なかなかうまくいきません。 どなたかお知恵を拝借いただけませんか? よろしくお願いします。
- PTCr
- お礼率100% (5/5)
- Visual Basic
- 回答数5
- ありがとう数6
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
とりあえずこういうスクリプトですね。 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 ※ファイル名は適当に変更してください。 ※インデントに漢字空白を使用しています。 コピペ注意
その他の回答 (4)
- mt2008
- ベストアンサー率52% (885/1701)
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
お礼
実現できました。 ありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17068)
文字列ストリームを変数に読み込み、Instr(VBScriptの関数にもあり、VB(A)と同じ)でTABコード(水平タブ,多分Chr(9)) を見つけ、3個目ごとにvbCrlLf に置き換えていけば良いはず。 Instr関数は第1引数に開始位置を指定できるので、尺取り虫的に、開始位置をずらしては。Instr関数をかける。見つかった場所に次の文字が探索開始場所にする。 TABコードは、VBScriptでもvbTabが使えるはず。 >、なかなかうまくいきません。 質問者が使用経験がすくないだけでは。 データ例を作っても、質問者の場合と同じかどうか判らないので、コードはここでは省略する。 16進表示でデータの一部でも挙げれば情況がわかるが。
お礼
> 質問者が使用経験がすくないだけでは。 お察しの通りです。この件で初めてVBScriptに触れました。 今後も勉強します。ありがとうございました。
- layy
- ベストアンサー率23% (292/1222)
>3つめのタブを 改行コードよりは悩みどころでは?。 改行はCRLF、ここではVBCRLFか。 CRとLF、CRはCHR(13)でLFはCHR(10)です。 よってCHR(13)&CHR(10)。 TABはCHR(9) CHR(9)を変数xに格納して、INSTRで3つめを見つける。 そんなところか・・・。
お礼
参考になりました。 ご回答ありがとうございます。
- tsuduki123
- ベストアンサー率32% (21/65)
CHR関数だったかな文字コードを直接指定して改行を出してあげればいけるはずですよ WScript.Echo "こそこそ" & CHR(13) & CHR(10) & "ごにょごにょ"
お礼
参考になりました。 ご回答ありがとうございます。
関連するQ&A
- Accessのデータをテキストファイルで出力する方法を教えてください。
Accessのデータをテキストファイルで出力する方法を教えてください。 クエリで抽出したデータをテキストファイルに出力したいのですが、下記のような記述では""や,で区切られてしまいます。 DoCmd.TransferText acExportDelim, "", "クエリ名", "出力ファイル.txt" フィールドごとに改行して出力する方法はないでしょうか? <クエリ結果> フィールド1 フィールド2 フィールド3 aaa bbb ccc <出力テキストファイル> aaa bbb ccc
- ベストアンサー
- その他(データベース)
- 改行コードの変換について
OS:Solaris2.6 改行コードをunixからms-dosへ、ms-dosからunixへ変換したいと思っています。 ながれとしては、ms-dosで作成したファイルをunixのほうで編集(プログラム) して、再びms-dosに戻すといったことがしたいと思っています。 そこで、 nkf -e aaa | tr '\r\n' '\n' > bbb nkf -e ccc | tr '\n' '\r\n' > ddd aaa:ms-dos ccc:編集後のファイル これでできると思ったのですが、dddの改行コードの表示がE'で Macintoshの改行コードになってしまします。 また、bbbのファイルですが改行が2回行われてしまいます。 例 aaa のファイルの内容 123 456 bbb のファイルの内容 123 456 どのようにすれば、解決できるか教えていただけないでしょうか? お願いします。
- ベストアンサー
- その他(OS)
- VBAでCSV内にある改行を取る方法
あるシステムが吐くcsvファイルの項目の中に改行が入っているものがあります。 例) 01,aaa,bbb(改行)bbb,ccc(改行) 02,ddd,eee,fff(改行) 03,ggg(改行)ggg,hhh,iii(改行) このCSVファイルをエクセルのマクロで読み込んでシートに展開したい のですが、項目中にある改行で別レコードを認識してしまいます。 結果) A B C D ---+---+---+--- 01 aaa bbb bbb ccc 02 ddd eee fff 03 ggg ggg hhh iii これを以下のようにしたいのですが・・・ A B C D ---+------+------+---- 01 aaa bbbbbb ccc 02 ddd eee fff 03 gggggg hhh iii どうやればよいでしょうか? ご教授お願いいたします。
- ベストアンサー
- オフィス系ソフト
- [シェルの質問]改行と結合
bsh初心者です。 よろしくお願いします。 1)下記のような","で区切られている場合、","を見つけたら 改行して出力したいです。 [入力] aaa,bbb,ccc, ddd,eee,fff [出力] aaa, bbb, ccc, ddd, eee, fff 2)下記のように、ある文字"aaa"をみつけたら、その次の行と結合して 出力したいです。 [入力] aaa: Hello! [出力] aaa:Hello! とこんな感じです。 awkとか使わないとできないでしょうか? awkはあんまり詳しくないので、できたら 記述例をいただけると幸いです よろしくお願いします。
- ベストアンサー
- その他(OS)
- PHPでテキストファイルを読み込み変数に代入する
PHP超初心者ですみません。 aaa:111 bbb:222 ccc:333 444444 という内容のテキストファイルをPHPで読み込み aaa(変数名)=111(中身) bbb(変数名)=222(中身) ccc(変数名)=333\n444444(中身改行あり) という風にできないのでしょうか? いろいろ探しましたがわからなかったので よろしくお願い致します。
- ベストアンサー
- PHP
- テキストエリアの改行を変換(初心者
<textarea rows="5" cols="10" name="myname">AAA BBB CCC</textarea> 上の内容を送信して、 AAA BBB CCC こんな感じで改行してファイルに書き込みしたいのですが、そのままでは改行されず1行で書き込まれてしまいます。 1つずつ改行するにはどうすればいいのでしょうか よろしくお願いします。
- ベストアンサー
- Perl
- [iPhone]改行をファイル出力する方法
[iPhone]改行をファイル出力する方法 改行を含む文字列をファイル出力するにはどうするといいのでしょうか。 ファイル出力をNSString→NSData経由で行なっていますが、改行コード(\n)が改行されず、文字として'\n'が出力されてしまいます。 現在のコードは ------------- NSMutableString* mstr = [[NSAutoreleasePool alloc] init]; for (int i=0; i<3; i++) { NSString* str = [NSString stringWithFormat:@"%@,%@\n",@"aaa", @"bbb"]; [mstr appendString:str]; } NSData* out_data = [mstr dataUsingEncoding:NSUTF8StringEncoding]; [out_data writeToFile:@"/user/test.csv" atomically:YES]; [ファイルの内容] aaa,bbb\naaa,bbb\naaa,bbb\n ------------- '\n'を'\r'や'\n\r'にしても、改行されません。 どの様にコーディングするとよいのでしょうか、宜しくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- batファイル処理でのテキストファイルの内容変更
batファイル処理のみにてテキストファイルの内容を変更する事は可能でしょうか。 例えば aaa=1111 bbb=2222 ccc=3333 ddd=4444 という内容のテキストファイルが存在し、batファイルにて aaa=1111 bbb=2222 ccc=5555 ddd=4444 というように、指定行の内容を変更させたいのですが、この処理をbatファイルのみで行う事は可能でしょうか。 宜しくお願いします。
- 締切済み
- Windows XP
- batファイル処理でのテキストファイルの内容を編集
batファイル処理のみにてテキストファイルの内容を編集する事は可能でしょうか。 例えば aaa=0 bbb=0 ccc=0 ddd=0 という内容のテキストファイルが存在し、batファイルにて aaa=0 bbb=1 ccc=1 ddd=0 というように、指定行の内容を変更させたいのですが、この処理をbatファイルのみで行う事は可能でしょうか。 宜しくお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- CSVに外部テキストファイルを列として追加する方法
こんにちは。 CSVファイル(base.csv)の先頭列に、別のテキストファイル(add.txt)の中身を新規の列として挿入したいと考えているのですが、よい方法がわかりません。。。 どうのような方法を使えば対応することができるでしょうか? どうぞよろしくお願いいたします。 ■CSVファイル(master.csv) title,developer_name,seller_name,primary_genre_name,application_url AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE ■テキストファイル(add.txt) id 000 111 222 333 ↓ ■目標としたファイル(master.csv) id,title,developer_name,seller_name,primary_genre_name,application_url 000,AAA,BBB,CCC,DDD,EEE 111,AAA,BBB,CCC,DDD,EEE 222,AAA,BBB,CCC,DDD,EEE 333,AAA,BBB,CCC,DDD,EEE
- 締切済み
- Ruby
お礼
実現できました! 非常に素早いご教授ありがとうございます。