• 締切済み

VB6でテキストファイルをCSVファイルに変換

VB6でテキストファイルをCSVファイルに変換の機能を作っていますが、 壁にぶつかりました; 項目         サイズ(byte) 1.作成日        15 2.マスタID      10 以上の2項目は固定です。 3.コード      9 4.名前1         10 5.名前n(登録数最大20個とする)19個*10byte=190 5.年齢    3 ''項目名の取得 ITR = ITR + Chr(39) + "作成日" + Chr(39)  中略 ''ファイルへの書込 ObjOutFile.Write (ITR) ITR=からはどうやって書くのかよくわからないです。 一行で出力したいので、名前は複数ある場合は、ヘッダの項目名前1、名前2、名前3のように並びたいのですが。。 詳しいかたいらしゃったら、ご教授ください。

みんなの回答

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.3

もう、最初の質問(1.作成日 15~)と、全然関係ないですね・・・ > そこで生成されたテキストファイルをCSVファイルに変換したいですが。 どういうテキストファイルなんですか? > のような形式表示したいのですが 「表示」?ファイル出力の話じゃないんですか? 結局何が分からないんです。 「やりたいこと」じゃ無くて「分からないこと」を具体的に教えてください。 #コレまでの、やり取りからすると、私が回答しなくても、 #そのうちご自分で「それはできました、次は~」とか言われそう・・・ #回答のモチベーション急降下・・・次も同じ状況なら・・・ #申し訳ありませんが、以降パスさせてもらいますね。

sinomori
質問者

お礼

うまく説明ができなくて、もうしわけないです。 改めて、質問させていただきます。 ありがとうございます。

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.2

> 名前の部分は > でいいかなと思いますが、 って・・・ > 名前は複数ある場合は、ヘッダの項目名前1、名前2、名前3のように並びたいのですが。。 名前の事を質問してたんじゃないんですか??? > だけでいいでしょうか。 良いか悪いかは、実際に実行して、「貴方が望んだ結果になるか?」で判断すべきことなので、なんともいえませんが・・・ とりあえず、「byteInputBuffer」や「MidMbc」や「YMD」が何かの説明も無いと、どうしようも無いんですけど・・・ また、 > MidMbc(m_InputBuffer,lFBnt,YMD+Chr(39) は、「(~)」の対応がどう見ても変ですし・・・ とりあえず 「byteInputBuffer」は、1レコード分のバイト数分のByte配列で、 > Get #1, , byteInputBuffer で、1レコード分のデータを読み込んでいて、 「MidMbc」は指定したバイト目(lFBnt?)から指定した文字数(YMDやNameが文字数?)の文字列を取り出していて、 > MidMbc(m_InputBuffer,lFBnt,YMD+Chr(39) は、単に投稿時の下記間違い。 と仮定して・・・ > ITR = ITR + "," + Chr(39) + MidMbcs(m_InputBuffer, lFBnt, Name) + Chr(39) > lFBnt = lFBnt + Name この部分を20回実行すればよさそうに見えますけど・・・ #20回直書きするか、For~Next等で20回ルー王させるかすれば・・・ > 同じ項目が別のタブにも入ってますが、値は違います。変換するときは、別のタブは改行して、表示したいですが、 いきなり出てきた「タブ」って何です? コレまでの説明には出てきませんよね? 「改行」・・・ 普通、CSV形式では「改行」は「1レコードの終わり」の意味ですけど・・・ どういう入力があったら、どういう出力にしたいんでしょう? 『具体的に』、教えてもらえませんか?

sinomori
質問者

補足

回答ありがとうございます。 今では1タブ目の情報だけ表示できるようになりました。 タブはいくつかのテキストボックスがあります。 入力して、登録すればテキストファイルが生成されます。 そこで生成されたテキストファイルをCSVファイルに変換したいですが。     項目  項目  項目 タブ1 値   値   値 タブ2 値   値 のような形式表示したいのですが 初心者ですみません よろしくお願いします

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.1

何がわからないのかが、良く分かりませんが・・・ 単純に、出力すればよいだけでは??? > 登録数最大20個とする と決まっているなら、 名前1、名前2、名前3、名前4、名前5、名前6、名前7、名前8、名前9、名前10、名前11、名前12、名前13、名前14、名前15、名前16、名前17、名前18、名前19、名前20 と、単純に20個、並べれば(取りあえずは)用は足りますよね・・・ もうちょっと、「何が分からない(どこの部分で行き詰っているか)」を詳しく教えてください。

sinomori
質問者

補足

はい。 えと 名前の部分は For i = 1 To 40 A = "名前" + i ITR = ITR + "," + Chr(39) + A + Chr(39) Next でいいかなと思いますが、 Do While Loc(1) < LOF(1) ITR = "" ''該当行のレコードデータの取得 Get #1, , byteInputBuffer m_InputBuffer = StrConv(byteInputBuffer, vbUnicode) lFBnt = 1 ITR = ITR + Chr(39) & MidMbc(m_InputBuffer,lFBnt,YMD+Chr(39) lFBnt = lFBnt + YMD ITR = ITR + "," + Chr(39) + MidMbcs(m_InputBuffer, lFBnt, Name) + Chr(39) lFBnt = lFBnt + Name Loop だけでいいでしょうか。 もうひとつの質問ですが、同じ項目が別のタブにも入ってますが、値は違います。変換するときは、別のタブは改行して、表示したいですが、 とんな方法あるのでしょうか。

関連するQ&A

  • VB2010でCSVファイルの読み込み

    VBを用いて,CSVファイルから必要な数値のみを読み込みたいのですが,うまくいきません. 一行目を飛ばし,二行目以降から読み込んでいきたいのですが,可能でしょうか? よろしくお願いします.

  • vb.netでCSVファイルを変換して新しいCSVファイルを作りたいの

    vb.netでCSVファイルを変換して新しいCSVファイルを作りたいのですが、どのようにすれば良いかヒントを教えていただけないでしょうか? A組,10代,10 A組,20代,20 A組,30代,30 B組,10代,40 B組,20代,50 B組,30代,60 C組,10代,70 C組,30代,80 この様なCSVファイルを変換して ,A組,B組,C組 10代,10,40,70 20代,20,50, 30代,30,60,80 という表のようなCSVファイルを作りたいのです。 データベースなどに入れずに、ファイルtoファイルでの変換がしたいです。 最初のファイルの1列目と2列目の項目をそれぞれ配列に入れて重複をなくす位までは思いつくのですが、そこから先がどの様にすれば良いかよく分かりません。 ヒントだけでも良いのでよろしくお願いいたします。

  • csvファイルについて

    javaで、csvファイルを読み取り、データベースにいれるツールを作成しています。 csvファイルを読み込む部分でつまづいてしまったので、どなたかご教授ください! 指定されたcsvファイルを一行ずつ取り込むのですが、一つの情報が2行以上になってしまうデータがいくつかあり、ファイルチェックとして、1つ目のカラムは何文字のものだとかしているけれども、その前の行の続きに当たる行が、その条件から外れてしまい、エラーになってしまいます。(当たり前ですが、、、) なぜ、csvファイルが一行に収まらないのかが、わかずですし、それを一行として読み込むことができるのかが不明で困っております。   原因や対処法が分かれば、教えていただければと思います。 よろしくお願いします。

  • VB2005 でCSVファイルの読み込み

    VisualBasic2005でカンマ区切りのcsvファイルを読み込み、各項目を配列に取り込みたいのですが、どうすればいいのですか? VB6の時のように書くとエラーになります。 VB2005にはopen命令はないみたいですね。 Open ファイル名 For Input As #1 input #1,s(1),s(2),s(3) close #1 ちなみにcsvファイルの内容は "会社名(co.xxx,sss)","工場名","製品名(aaa,xxx)" のように各項目中にカンマやピリオドが入っています。 VB6はVBAではダブルコーテーションで囲めば正常に読み込めました。 どなたか教えて下さい。よろしくお願いします。

  • VB2008でのテキストボックスからCSVへの入力について

    はじめまして、VB2008初心者です。 テキストボックスで入力した長文(改行含む)をcsvの形式で保存するというプログラムを作っています。 今は、改行したところでセルを一行改行してしまいます。 そこで、テキストボックスの内容を代入したaという変数を改行も正確に1つのセル中に収めて保存したいです。つまりエクセルでAlt+Enterをしたときと同じように改行したいです。 あちこち、過去スレも検索したのですがうまくいきません。 ↓今自分なりに考えてこの状態です。 a = a.Replace(vbCrLf, "\") a = a.Replace("\", Chr(10)) 何とか助けていただけませんでしょうか。 使ってるソフト:VB2008Express Edition チェック済みのHP: ◆http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q147176499 ◆http://www.accessclub.jp/bbs3/0008/superbeg3570.html

  • CSVファイルを開いている状態での書込処理について

    OS:windows2000pro VB:VB6.0sp5 ファイル:c:\work\test0411.csv (workフォルダはEveryone共有:端末Aのみ) 端末:ABともにファイル共有を除き同環境 端末Aにて、システム(VBにて作成:下記参照)にて 上記ファイル(test0411.csv)に一定周期で書込を行っています Private Sub output(ByVal ofile As String) On Error GoTo trap handle = FreeFile() Open ofile For Append As #handle (中略) Print #handle, _ Close #handle Exit Sub trap: 'MsgBox Err.number & "," & Err.Description, vbInformation, "output" End Sub 端末Bにて、エクスプローラから上記ファイル(test0411.csv)を 開いて閲覧しています 上記ファイル(test0411.csv)を閲覧している間に (1)一定周期でデータの書込ができません 一旦ファイルを閉じ、再度開いた折、 閲覧していた間のデータが追加更新するように したいのですが、どのようにすれば良いのでしょうか? よろしくお願いいたします

  • VB6.0 で CSVファイルをEXCELで起動

    VB初心者です。 質問内容なのですが、 VBで「ドライブ/ディレクトリ/ファイルリストボックス」を用いて、ファイルボックスから表示されたファイルをクリックしてCSVファイルをEXCELで起動したいプログラムを作成したいのですが、 CSVファイルをクリックしたときにEXCELで起動する部分のプログラムがわかりません。 言葉足らずの部分が多々あるかと思いますが、手が空いたときにでも、御教授を宜しくお願い致します。

  • 【VB6】CSVファイルの内容の条件設定をして表示

    【VB6】CSVファイルの内容の条件設定をして表示 お世話になります。 VB6で、テキストボックスにCSVの内容を表示するプログラムを作成したのですが、 CSVの一部の行だけをif文で検索をかけるような内容を追加しようとしておりますが、良い方法はございますでしょうか。 例えば、Excelで開く所のA列が「日付」の項目であり、1/1から3/1までのCSVの内容を表示…といった具合です。 CSVをテキストボックスに表示させるプログラムは、下記サイトを参考にしています。 http://hanatyan.sakura.ne.jp/(VB6.0関係>ファイル操作関係>です) 参考になるサイトがございましたらお教え下さい。よろしくお願い致します。

  • CSV、バッチファイルからVB5.0へ数値を渡す方法

    特殊なスーパーコンピューターからCSVファイルでWindowsパソコンで受け取ります。 この後受け取った数値をバッチファイルからVB5.0で作成した実行可能ファイルで数値を受け取りたいのですがどのようにすればいいですか? 環境 スーパーコンピューター(機種は特殊でかけません) VB5.0 わかりにくいとは思いますが宜しくお願いします。

  • 大量のhtmlファイルのソースをCSVデータへ

    大量のhtmlファイルを、各HtmlファイルのソースのみをCSVデータへ 移動したいのですが、1週間程フリーソフト等を探してみたのですが 全く探し当てることが出来ずに困っております。 もしも、ご存知の方がいらっしゃいましたら教えて頂けないでしょうか?どうぞよろしくお願いします。 ▼現在の流れ 1.基本のhtmlファイル(テンプレート)を作成し、csvデータに詳細 データを記入する。 2.上記で出来上ったcsv、テンプレートhtmlを元に大量のhtmlファイルを作成。その際、csvのはじめの項目名が自動的に***. htmlっといった具合に***に名前が入る。 例)※本来のデータはもっと複雑です。 ■1 csvデータ項目 A1:[code] B1:[名前] C1:[発売日] D1:[その他] ■2 html(テンプレート) [code]<br>[名前]<br>[発売日] ■3 出来上がったhtmlの名前 [code].html・・・以下続く ■4 出来上がったhtmlソース [code]<br>[名前]<br>[発売日] 今回、上記作業で出来上がったhtmlファイルのソース(■4)を元の csvの項目[その他] (どこでもよい)へ戻す処理を一括で行いたいと いうのが目的です。 CSVを元に大量のHTMLを作成するまでは、色んなソフトがあるよう ですが、上記内容が出来るソフトをご存知でしたら教えてくださ いm(_ _)m