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

「テキストファイルを結合してCSVにする方法」について質問です。

1つのフォルダの中に、100個のテキストファイルがあります。
file1.txt
file2.txt
file3.txt・・

これを、結合してCSVにしたいのです。
↓こんな感じに。

file1 txtの中身
file2 txtの中身
file3 txtの中身
file4 txtの中身

ちなみに、これをMySQLの中に入れるのがゴールです。
まずはCSV化するところまでの手順をお教え頂ければ幸いです。

よろしくおねがいします!

●質問者: にらたま
●カテゴリ:インターネット ウェブ制作
✍キーワード:CSV MySQL txt テキスト ファイル
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● emu2929
●20ポイント

まず、どのような環境化で実現したいのか、

それを明記していただけないと

目的の回答は得られないように思います。


また、MySQLに登録するまで全自動でやらせたいのか、

(毎日のバッチ処理等でやらせたいのか)

CSVにする箇所、MySQLへの登録箇所等で人手を介しても良いのか

によって、実装方法も変わると思います。


それと、「txtの中身」とありますが、これは1行限定なのでしょうか?

複数行考えられるなら、1カラム目(ファイル名)はどうするのか、

その辺も限定される方がいいかと思います。


仮にWindows環境として、人手を介していいなら、

私ならExeclVBAでCSV出力マクロ作成することで、

実装します。


URLダミー

http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110.html

◎質問者からの返答

ありがとうございます。

CSVまでで結構です。Windows環境で、1回こっきりの作業です。

txtの中身は、各ファイルともに100行程度です。

VBAやVBSであれば、丁度良いサンプルコードをご呈示頂けますと助かります。

引き続きよろしく御願いします。


2 ● drowsy
●20ポイント

windowsの場合。


1.一つのフォルダにテキストファイル100個を入れた状態。

2.テキストエディタを開いて「copy *.txt zenbu.txt」と記入して保存。

3.ファイル名は任意でいいので、拡張子を.batにする。

4.できたファイルをダブルクリック。

5.zenbu.txtというフォルダが新たにできる。

6.開くとそのフォルダ内のテキストが全部入ってる。


もし改行が入ってなくて長いデータになってしまったらこちらを参考に

http://www.mag2qa.com/qa464709.html

◎質問者からの返答

ありがとうございます。

でもこれは、マージしているだけでは?


3 ● mattn
●60ポイント

こんなのでどうでしょうか?

Option Explicit
Dim strPath, objShell, objFolder, objItem
Dim objFSO, objSTM, strName, strText
strPath = "C:\TEMP"

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(strPath)
If Not objFolder Is Nothing Then
 For Each objItem in objFolder.Items()
strName = objItem.Name
If Not objItem.IsFolder And LCase(Right(strName, 4)) = ".txt" Then
 Set objFSO = CreateObject("Scripting.FileSystemObject")
 Set objSTM = objFSO.OpenTextFile(strPath & "\" & objItem.Name, 1)
strText = objSTM.ReadAll
strText = Replace(strText, vbCr, "")
strText = Replace(strText, vbLf, "")
WScript.Echo(strName & " " & strText)
Call objSTM.Close()
Set objSTM = Nothing
Set objFSO = Nothing
End If
 Next
End If

Set objFolder = Nothing
Set objShell = Nothing
◎質問者からの返答

コメント欄に頂いた追記を含めてお返事です。

修正して頂いたものでちゃんと動作しています。ありがとうございます。

できれば、echoじゃなくてcsvで書き出すところまでして頂けると嬉しいです。

vbsあまり分からないので。。。。。。。すいません。出来ればで結構です。

関連質問


●質問をもっと探す●



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