• ベストアンサー

csv内に書いてある全テキストデータを、1txtファイル内に格納したい

csv内に書いてあるテキストデータを、 テキストファイル表に変換・・というツールは見つけたのですが 表ではなく、こちらが指定した表示方法で1txtファイル内に 全テキスト内容を格納したいです。(1項目ずつではなく) 例) 名称,電話番号,住所1,住所2 ○○店,011-○○-○○○,北海道,札幌市 △△店,031-△△-△△△,北海道,苫小牧    ↓↓↓ 表示させるためのテンプレートを自分で作成する テンプレート例) 名称:【名称】店 電話番号:【電話番号】 住所:【住所1】【住所2】    ↓↓↓ 名称:○○店 電話番号:011-○○-○○○ 住所:北海道札幌市 名称:△△店 電話番号:011-△△-△△△ 住所:北海道苫小牧     ・     ・     ・ という感じで、全テキスト内容を 「1txtファイル内に」格納したいです。 色々と調べているんですが、 うーん、これが中々方法が見つかりません^^; どなたか分かる方にお答え頂ければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.3

#1です。私がVBAを書き間違えてます。すみません。 誤)line input #file1, strBuffer 正)line input #nFile1, strBuffer です。 あと、 print #nFile2, "住所:" & strArrey(2) & strArrey(3) の下に print #nFile2, "" を追加してください。でなければ店ごとの区切りが無い連続した行になってしまいます。

tempora7
質問者

補足

できました!大変ありがとうございます。感動しました~ 複数のcsvファイルを一括で同じ処理させて、 一気に「csvファイル名.txt」を作りたいのですが、無理でしょうか^^; 同じ処理をさせたいcsvファイルが120個ほどあるもので。。難しそうですね。。 おそらく現在の仕様での複数のcsvファイルの処理となると、一回一回該当のcsvを開いてVBAエディターを開いてコード内容にあるファイル名をVBAに書き直して実行、という必要があると思います。 もしあっさりと実現可能でしたら、投稿いただければ幸いです<(_ _)> どちらにしても後ほどお礼致します。

その他の回答 (2)

  • taba
  • ベストアンサー率61% (349/567)
回答No.2

同じ処理を何度もしないといけないのであれば、#1の方のようにVBAなどでプログラムを書いた方がいいと思います。私はperlをパソコンにインストールしてあるので、たいていperlでテキスト処理をします。 もし1回だけ力業で乗り切れればいいということなら、こんなやり方も。 1)CSVをExcelで開く 2)データの右に、加工した変数を作る。例えば、   ="名称:"&RC[-10]&"店"   など。RC[-10]は適当です。【名称】のセルを指定。   住所は、="住所:"&RC[-10]&RC[-9]みたいに。 3)全部の変数を加工する列が右にできたら、それを下にコピー。   個々のアイテムが置き換えられたテーブルになります。 4)置き換えられた右の部分を範囲指定→別のシートに値だけコピー 5)そのExcelシートをテキスト(タブ区切り)で出力   ひとつのデータが、   名称:○○店[tab]電話番号:011-○○-○○○[tab]住所:北海道札幌市~   のようになります。 6)テキストエディタ等でタブを改行に置換。   データの区切りが分からなくなるので、4の段階で右端に目印を   入れておくと、あとでそれを改行に置換できます。例えば「◎」など、   データ内で使われていないもの。

tempora7
質問者

お礼

tabaさん、返信ありがとうございます。 perlというのもプログラムのようですね。 難しそうです^^; 1、2回の操作で、複数のcsvファイルを一括で質問のような処理ができる専用ソフトというのはなさそうです。。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

EXCELをお持ちですか? VBAというプログラム言語を使用できる環境があります。 そこで「テキストファイルを読み、ご希望の形式に変換して出力」という プログラムを書けば可能と思います。 元のCSV,変換後のtxtファイルとも、Cドライブ直下にあり、TESTとするならば (例外データは無いものとして) sub テキスト変換() dim nFile1 as long dim nFile2 as long dim strBuffer as string dim strArrey() as string nFile1 = freefile open "C:\test.csv" for input as #nfile1 nFile2 = freefile open "C:\test.txt" for output as #nfile2 while not(eof(nFile1))   l ine input #file1, strBuffer    strArrey()=Split(strBuffer,",") print #nFile2, "名称:" & strArrey(0) & "店" print #nFile2, "電話番号:" & strArrey(1) print #nFile2, "住所:" & strArrey(2) & strArrey(3) wend close end sub みたいな感じで。   

tempora7
質問者

お礼

bin-chanさん、ありがとうございます。 変換したいcsvファイル名を \test.csv にして 何も書かれていないテキストファイル名(test.txt)をCドライブ直下に作成しました。 その後、よく理解でききてないかもしれませんが、 上記ソースをVBAエディッターに書いてマクロ実行としたら・・(やり方合っているとは思いますが^^;) l ine input #file1, strBuffer の部分でエラーが発生しました。 「TEST」というのはフォルダではないと思いましたが、フォルダ作ってみて試しても同じエラーでした。 エクセルでの操作のやり方が間違っているんでしょうかね。。

関連するQ&A

  • エクセルVBAでフォルダ内にテキストファイルを格納

    例示の表データからテキスト(HTML)ファイルを生成し、特定のフォルダヘ格納したい。 ファイル名はすべて index.html とする。 エクセルは2003 フォルダは作成ずみ デスクトップ>zenkoku>kanagawa>kanagawa01>kanagawa01A 分類方法については、 ・大分類:県ごと ・中分類:20社ごと ・小分類:1社ごと テキストHTMLファイルの作成パターンは2つ パターン(1) 中分類のフォルダに格納 ・「会社名」と「住所」の2つの項目 ・20社ごとにファイルを作成 ・ファイル名は index.html パターン(2) 小分類のフォルダに格納 ・「会社名」「住所」「電話番号」の3つの項目 ・1社ごとにファイルを作成 ・ファイル名は index.html

  • テキストファイルの内容を変数に格納したい

    $(function() { $item = ""; $.ajax({ url: 'data/data.txt', success: function($data) { $item = $data; } }); alert($item); }); 上記のように外部のテキストファイルを読み込んで、その中身の文字列をajaxの外で宣言している変数に格納したいのですが、何も格納できていません。 テキストファイルのパスが間違っているということや、中身が何もないということはありません。 ajaxのsuccess内にalertを置いた場合は値が正しく表示されるのですが、ajaxの外ではやっぱだめです。 ajaxではなくloadでやろうとも思ったのですが、loadの場合はHTML上のタグにしか出力できないので、今回の目的には合いません。 なんとかして、変数にテキストファイルの中身を渡せないのでしょうか。

  • CSVファイルの情報をテキストファイルに吐き出したいのです。

    CSVファイルの情報をテキストファイルに吐き出したいのです。 VB、もしくはエクセル付随のVBで作成したいです。 その際、雛形テキストファイルの任意の文字列をcsvファイルの特定セルの文字列に置換して吐き出したいのです。 例えば、雛形テキストファイル(hinagata.txt)の内容として、「[アーティスト]名の[曲名]は良い曲ですね。」という雛形文章があったとしたら、「安室奈美恵の愛してマスカットは良い曲ですね。」のように置換して吐き出す。 吐き出す際、任意の名前でディレクトリーも作成し、そのディレクトリー内にkyokumei.txtというファイル名で吐き出したいです。 以下の表で言えば、amuronamieというディレクトリーにkyokumei.txtを吐き出し、 その次は、komurotetsuyaというディレクトリーにkyokumei.txtを吐き出します。    A             B            C         1 アーティスト名   artistname         曲名       2 安室奈美恵    amuronamie     愛してマスカット 3 小室哲哉      komurotetsuya      get wild プログラミングの知識はほとんどありませんので、どこに何を書くと具体的にお願いできたらと思います。よろしくお願いします。    

  • テキストに格納しているデータの編集

    大学でPHPを勉強しています。課題は簡易Blog作成でメンバー登録、ログイン、ログアウト、カレンダーはなんとか自分でできました。 問題は、ユーザー登録の編集です。ユーザー情報はテキストファイルに保存されてます。 member.txt yama|1234|yamada|hanako|0123-56-5432 suzu|3412|suzuki|tsutomu|0982-38-1937 左から順にユーザー名、パスワード、苗字、名前、電話番号がユーザー一人に対し1行です。 これらの登録情報を、HTMLのフォームから再編集してmember.txtに上書きをしたいのですが、うまくいきません。 お知恵をいただけないでしょうか。よろしくお願いします。

    • 締切済み
    • PHP
  • txt ファイル (テキストファイル 、文書ファイル )を印刷する方法を知りたいのですが。

    USBメモリを差し込んで、 中に保存してある、 「 txtファイル 」テキストファイルは A5からA3サイズのどの大きさでも 良いので、 ( 写真ではなく、) 紙に、コピーしたいのですが、 あいにく、持っているプリンターが 故障していて、プリントができません。 セブンイレブンさんで、USBメモリ対応のコピー機があり 差し込んで、中のJPEG(ジェイペグ)ファイル→ 写真ファイルは プリントできるのですが、 上の、( txt ファイル )テキストファイル→文書ファイル だけは、 認識されず、コピーをとることが出来ませんでした。 .txt の拡張子の部分だけ、jpeg (ジェイペグ) に書き直すと、写真ファイルとして、認識されて コピーは可能でしょうか? (実際に、試してみたいのですが、USBメモリがあいにく、 この1つしかなく、パソコンの調子も時々良くないので、 もし、中のデータが消えてしまったら困るので、できずにおります。 ) この txt ファイル(テキストファイル、文書ファイル)を 紙面に コピーができる機械が置いてあり、利用できるお店などが あったら、ご存知の方がいらっしゃいましたら、 よろしくお願いします。

  • MS Office Excel 2003でテキストデータファイルを読み

    MS Office Excel 2003でテキストデータファイルを読み込む方法 1111.txt 2222.txt 3333.txt というテキストデータファイルがあり、中身は添付画像の様になっています。 (テキストファイルは同じフォルダに格納されています) このテキストデータをExcelに読み込みたいのですが、以下の様な動作をして欲しいと思っています。 (1)セルA1にテキストデータファイルのファイル名(拡張子は省く)を入れる (2)セルA2から下に、添付ファイルのA列のデータが入り、セルB2から下にE列のデータが入る (3)セルA1に別のファイル名を入れると、そのファイルのテキストデータに切り替わる このような事は可能なのでしょうか? もし可能であれば教えて下さい。 よろしくお願いします。

  • 【C#】テキストファイルを2進数で取得&配列に格納

    http://okwave.jp/qa/q7812279.html 前回の質問が分かりにくかったため、もっと詳しく書いていこうと思います。 テキストファイルを1行ずつ読み取り、それをbyte型に保存したいです。 例:test.txt 01001000 01110000 01010100 11100110 01010101 ↑のような8桁の2進数がテキストファイルに記入されています。 そのテキストファイルを読み取り、 byte配列に格納したいです。 例: byte[0]に01001000 byte[1]に01110000 byte[2]に01010100 byte[3]に11100110 上記のようにデータが格納されるよう、 ファイルを読み取り、配列に入れたいと思っています。 C#初心者のため、右も左も分からないのですが、 とりあえず、やろうとしている流れを以下に書きます。 (1)ファイルを読み込む (2)ArrayListに格納 (3)データ変換(文字列を2進数に) (4)データの出力(byte型) ArrayListでなくても構わないのですが、 他にいい方法が思いつかなかったので…。 言いたいことがぐちゃぐちゃになってきたのでまとめると、 byte[0]にファイルから読み取った1行のデータ(01001011等)を byte型で入力したい。 ということです。 分からなければ、コメントお願い致します。 文章が雑で分かりにくいかもしれませんが、回答頂けると嬉しいです。

  • 北海道は住所に書きますか?

     こんばんは。北海道の方には大変失礼な質問で申しわけありませんが、以前札幌市に住んでいた知人に手紙を出すときに、北海道はいらないと言われたので、北海道札幌市・・・と住所を書かずに札幌市と書いて、郵便番号も書いて手紙を出しました。  北海道以外は都府県の名称があり住所として書きますが、北海道はどうなのでしょうか。ちなみに私は神奈川県民です。  北海道の方で気に障りましたら失礼します。素朴な疑問なので書きました。  合わせて北海道は日高支庁とかの支庁という行政区分だと思いますが、これは住所ではないですね。どうも良く分かりませんが、宜しくお願いします。

  • データ.mydファイルのテキスト化

    データベースのデータとして、**.frmと**.mydと**.myiの3つがありますが、この中身を開きたい思い、**.mydの拡張子をtxtに変えましたが、一部のみ文字化けしてしまいます。完全なテキストファイル化の方法を教えてください。 もしくはcsv化やエクセルで表形式にすることはできますか?

    • ベストアンサー
    • MySQL
  • batでテキストファイル内の文字を使ってリネーム

    テキストファイル内の名前を使ってファイル名をリネーム+番号を付与するバッチファイルを作成したいです。 テキスト内は 1234567-0001.txt 1234567-0002.txt 1234567-0003.txt と書かれていて、 ファイルは 00000001.txt 00000002.txt 00000003.txt とあります。 これを 1234567-0001-1.txt 1234567-0002-1.txt 1234567-0003-1.txt という名前にリネームしたいです。 ファイル自体は1万ファイル以上あるのでバッチファイルで処理したいと思っています。

専門家に質問してみよう