• ベストアンサー

最終行の改行について

CSVで出力しようとしてるのですが、 write #1,i;j などのように書くと、最終行の最後に改行が入ってしまいます。 これを解消する方法はないでしょうか。 よろしくおねがいします。

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

  • ベストアンサー
回答No.2

Open "FileName.csv" For Output As #FileNo ではなく Open "FileName.csv" For Binary As #FileNo で開いて、 For i = 0 To n   Write #FileNo, a(i); b(i) Next i の代わりに For i = 0 To n   If i <> n Then     Put #FileNo, , a(i) & "," & b(i) & "," & vbCrLf   Else     Put #FileNo, , a(i) & "," & b(i)   End If Next i のようにするしかないと思います。

icantremember
質問者

お礼

詳しいコードまでありがとうございました。 バイナリで書くのはやったことなかったのですが、  簡単そうなので試してみたいと思います。 ありがとうございました。

その他の回答 (2)

回答No.3

write #1,i;j を Print #1, i; ","; j; のようにすれば良いでしょう。 ただし、このようにすると改行が入らないので 最終行以外の場合はこの後に Print #1, "" として改行を追加する必要があります。

icantremember
質問者

お礼

回答ありがとうございました。 こういう方法もあるのですね。 No2.の人の方法と、試してみます。 ありがとうございました。

  • ara_ara
  • ベストアンサー率35% (124/348)
回答No.1

write #1,i;j; のように最後にもセミコロンを付けられませんか?

icantremember
質問者

お礼

すばやい回答ありがとうございました。 しかし、改行がはいらずCSVとして使えなくなってしまいました。

関連するQ&A

  • テキストファイルの最終行の改行コード削除

    お世話になります。 SQLコマンドを発行し、csvファイルを自動生成させるシェルスクリプトを作ったのですが、最終行にある改行コードを削除して欲しいとの指示を受けて、その方法を調査。試行錯誤しているのですがよい方法が見つかりません。 最終行にある改行コードのみを削除するにはどうしたら宜しいでしょうか。 ご教示頂ければ幸いです。 宜しくお願い致します。                                以上

  • ワードの最終行が勝手に改行されてしまう

    ワード2003を使っているのですが、どのページも最終行のみなぜか勝手に改行(?)されてしまいます。 最終行の直前の行までには文字が普通に入るのですが、最終行のみ飛ばされて次ページに文字が流れてしまいます。 どこか設定がおかしいのでしょうか? ただし特定のファイルのみで、他のファイルは問題ありません。よろしくお願いします。

  • テキストファイルの最終行の削除

    C++Builder6です。 テキストファイルの最終行だけを削除する方法を 探しています。 詳しく言えば、ファイルを開けないで、最後にある 改行コード?のみを削除したいです。 よろしくお願いします。

  • CSV出力で改行がうまくできない。

    VBAでテキストファイルにCSV出力をおこなっています。 方法は、 Print #FreeFile, FreeFileOutput; でおこなっています。FreeFileOutputは変数でカンマで区切られた複数の値が はいっています。最後はカンマはありません。つまり、 "a,b,c,d" といった値がFreeFileOutputにはいっています。 これをループでまわして、複数行を出力したいとおもっています。 無事に出力はできるのですが、テキストファイルを見ると各行の終わりで改行 されていません。print関数を使い";"をつけると自動で改行が入力される みたいですがされません。どうしてでしょうか?

  • PHPで外部ファイルを読み込むときの行の最後の改行の消し方について

    PHPについての質問です。 初歩的な質問ですがどうかお付き合いいただけたらと思います。 PHPで外部ファイルを読み込む際、csvファイルなどを1行ずつ読み込んだ場合、行の最後の改行まで代入されます。 例えば ////test.php/////////////// <?php $filename = list.csv; $fp = @fopen($filename,"r"); $data = @file($filename); @fclose($fp); ?> //////////////////////////// ////list.csv//////////////// 1,2,3,4,5 6,7,8,9,10 //////////////////////////// とする場合 $data[0]には 1,2,3,4,5 プラス改行のデータ $data[1]には 6,7,8,9,10 プラス改行のデータ が代入されます。 この改行のデータを除くためにはどのようにすればよいですか? 初歩的な質問で申し訳ないのですが、よろしくお願いします。

    • 締切済み
    • PHP
  • CSVの最終行は?

    エクセル2003の最終行、限界行は65536行ですが エクセル2003のCSVファイルの限界の行も65536行なのでしょうか?

  • csvファイル改行コードの置換について

    お世話になります。 csvファイルで作成したデータを出力表示させるスクリプトで csvファイル内の改行コード(セル内)以後のデータが出力できません。 下記の置換で改行コード以後のデータが表示されません。 $abc =~ s/\r\n//g; $abc =~ s/\n//g; $abc =~ s/\r//g; csvファイル内の改行の数が多く、1行のデータが改行の為に、2行になったりしているので出力前に置換し表示させる方法です。 csvファイル作成時につく""は正常に置換しています。 似たような質問もあったのですが、少し違うようですので質問いたしました。 何卒、ご教授お願いいたします。

    • ベストアンサー
    • Perl
  • 【CSV吐き出し】~改行コードなし~

    よろしくおねがいします。 VB6.0にてテキスト吐き出しの際、改行コードを付けずに 出力する方法を教えてください!!! 現在下記方法で出力を行っていますが、改行コードが着いてしまいます。 w_CSV = "あいうえお" Print #1, w_CSV  

  • CSV取込みで最終行を取り込まない方法

    CSVの取込みで1行目のヘッダーと最終行のフッターを取り込まず 2行目~最終行の前までの中身だけを取り込みたいのですが、 1行目をスキップする方法は、下記を参照にしてなんとかできましたが、 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1230200277 ここに最終行をはぶくという処理をいれるにはどういたらいいでしょうか? ---------------- Private Sub コマンド0_Click() Dim FSO As Object Dim InFile As Object Dim Outfile As Object Dim CsvPath As String Dim WorkPath As String Dim i As Long Const skipRow = 1 ''1行読み飛ばしの1 ''元のCSVファイルのフルパスに変更して! CsvPath = "C\JPデータ取込CSV.csv" ''新しく作るCSVファイル。このMDBがあるフォルダにWork.csv 名で作られます。 WorkPath = CurrentProject.Path & "\Work.csv" '' FileSystemObjectのセット Set FSO = CreateObject("scripting.FileSystemObject") Set InFile = FSO.OpenTextFile(CsvPath, 1) Set Outfile = FSO.createTextFile(WorkPath) '' 読み飛ばし設定 For i = i To skipRow InFile.SkipLine Next i ''新しいCSVファイル作成 Outfile.Write InFile.ReadAll ''CSVファイルの終了と解放処理 Outfile.Close InFile.Close Set Outfile = Nothing Set InFile = Nothing ''Work.CSVファイルのインポート(今のDocmd以下をコピーし、ファイル名等を変更!) 'DoCmd.TransferText ・・・・・・ DoCmd.TransferText acImportDelim, "JPご清算書インポート定義", "T01_JPご精算書", WorkPath, True ''使用済みのWork.CSVを削除 FSO.DeleteFile WorkPath ''FileSystemObjectの解放 Set FSO = Nothing MsgBox "取り込み完了" End Sub

  • Line Inputにて改行があっても全行読むことがあるのでしょうか?

    お世話になります。 今日仕事でcsvファイルをLine Inputで読み込んだとき 一回目のLine Inputで最後まで読んでしまうファイルがありました。 形式としては 下記のような感じだったのですが(外には出せないデータですのでこんな感じだというイメージです。) 家でこれを読ませると普通に1行ずつ読んでくれます。 読めないデータは1行目を削除すると一行ずつ読んでくれました。 したがって改行コードもあり認識しているはずなのですが・・・ 一行すべて読んでしまうパターンがあるのでしょうか? ご存知の人おられましたらよろしくお願いいたします。 ,,,,,2006/12/28,2006/12/28,2006/12/28,2006/12/28,2006/12/28,2006/12/28 ,,,,,10:10,10:10,10:10,10:10,10:10,10:10 2,,,,,ほげ,ぴよ,7,ぺぺぺぺ,0,2 2,,,,,ほげ,ぴよ,7,ぺぺぺぺ,255,3 2,,,,,ほげ,ぴよぷ,7,ぺぺ,1,4 3,,,,,ほげ,ぴよ,3,ぺ,23,5 4,,,,,ほげ,ぴよ,3,ぺぺぺぺ,3,7 5,,,,,ほげ,ぴよぷ,7,ぺぺぺぺ,5,6 6,,,,,ほげ,ぴよ,4,ぺぺ,-23.06666667,8 7,,,,,ほげ,ぴよ,7,ぺ,-43.32380952,9 7,,,,,ほげ,ぴよぷ,5,ぺぺぺぺ,-63.58095238,0 7,,,,,ほげ,ぴよ,7,ぺぺぺぺ,-83.83809524,5 7,,,,,ほげ,ぴよ,7,ぺぺ,-104.0952381,6

専門家に質問してみよう