「Web出版サイト」ベータ公開

Q&A集[?]

当サイトでのご質問の受付は終了しました

すべてのコンテンツを読み込み専用としたため、回答欄からも投稿できません

Apache OpenOffice/LibreOfficeのご質問はそれぞれのフォーラムへご投稿ください

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:2
昨日:0
総数:1469
現在:1


テキストデータの書き込み

ページOpenOffice.org FAQの登録ページ
投稿者もり
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2010-03-08 16:53:40 (月)
OSWindowsXP
依存するページ
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

いつもお世話になります。
現在、下記の処理をOpenOffice.orgBasicにて作成中です。

■目的 Input.csvを読み込み、データの並びを変えて、Output.csvに出力する。

■処理内容

sub main
  Dim hFileHandleInPut As Integer
  Dim hFileHandleOutPut As Integer
  Dim DataArray as Variant
  Dim OutPutString as string
  ' 利用可能な次のファイルハンドルを得る
  hFileHandleInPut = FreeFile
  hFileHandleOutPut = FreeFile+1
  ' ファイルを読み取りモードで開く
  Open "c:\Input.csv" for Input as #hFileHandleInPut
  '出力先ファイルを開く
  sFilenameOutPut = "C:\Output.csv"
  Open sFilenameOutPut For Output As #hFileHandleOutPut
  ' EOFを検出するまで、1行ずつ読み込む
  Do While not Eof(#hFileHandleInPut)
    Line Input #hFileHandleInPut, sLineData
    If sLineData <>"" then
      '配列にデータを読み込む
      DataArray=split(sLineData,",")
      'データコンバート(患者情報)実行
      OutPutString =DataArray(0) & "," _
         & DataArray(2) & "," _
         & DataArray(4) & ",,"
      print #hFileHandleOut,OutPutString
    end if
  Loop	
Close #hFileHandleInPut
Close #hFileHandleOutPut
end sub

この処理を実行すると
書き込みたいデータがの内容が
1レコードごとに、メッセージボックスに表示され、
出力ファイル「OutPut.csv」は0バイトで作成されてしまいます。

http://ja.wikibooks.org/wiki/OpenOffice.org_Basic
http://wiki.services.openoffice.org/w/images/f/f5/BasicGuide_OOo3.1.0jp.pdfの71ページ
上記のページを参考に作成しました。

データの書き込み方が間違っているのでしょうか?
お忙しいところ恐れ入ります。
ご教示よろしくお願い致します。


とりあえず

M.Kamataki (2010-03-08 18:37:48 (月))

23行目の最後「 _」が余計でマクロが実行できないので、メッセージの方を修正しておきました。

変数名

はにゃ? (2010-03-08 18:53:18 (月))

print #hFileHandleOut,OutPutString

の変数名が間違っています。いつも変数を定義してから利用するのであれば Option Explicit などを指定してこういったものを避けることができます。

print #hFileHandleOutPut,OutPutString

完了回答待ちに

M.Kamataki (2010-03-08 20:25:23 (月))

そうですね。正しい変数に直すと出力ファイル「OutPut.csv」が「InPut.csv」の内容を読み込んで生成されますね。

ということで、お急ぎのようなので状態を「完了回答待ち」にしました。

出力できました。

もり (2010-03-09 09:45:40 (火))

ありがとうございました。
問題なく処理が完了しました。
ケアレスミスで申し訳ございません。
大変助かりました。

お名前:
題名: