Adodbの改行コードについて

このQ&Aのポイント
  • CSVを読み込み編集しCSVを書き出すHTAでAdodbで躓いてしまいました。改行コードが上手く出力できず悪戦苦闘中です。
  • AdodbのWriteTextで行区切り文字を指定していますが、指定していないとLFが出力され、指定してもCRLFの後にLFが吐き出されます。
  • LFが邪魔で仕方ないのですが、必ず出力されてしまうのでしょうか?
回答を見る
  • ベストアンサー

Adodbの改行コードについて

お世話になります。 クライアントにAccessが無いのでAccessモドキを作るのが目的で CSVを読み込み編集しCSVを書き出すhtaを作成しているのですがAdodbで躓いてしまいました。 読み込んだCSVの仕様に準拠して書き出すのですが、 どうしても改行コードが上手く出力出来ず悪戦苦闘中です。 WriteTextで行区切り文字を指定していますが 指定していないとLFが出力されており、 現在の指定でもCRLFの後にLFが吐き出されています。 LFが邪魔で仕方ないのですが必ず出力されてしまうものなのでしょうか? 回答お待ちしております。 CSVの仕様 ・UTF-8 ・セル内改行コード:LF ・行区切り:CRLF ・全セル「"」括り 書き込みデータ ・配列:textArray (「"」括り、「,」区切り済み、1要素1レコード) /* * @param file : ファイルフルパス * @param textArray : 書き込み配列 * return boolean : 成功判定(失敗時エラーコード) */ function adodbLineout(file, textArray){ try{ var adbStrm = new ActiveXObject("ADODB.Stream"); adbStrm.Charset = 'UTF-8'; adbStrm.lineSeparator = -1; for(i=0;i<textArray.length;i++){ if(textArray[i] == ""){continue;} adbStrm.WriteText(textArray[i], 1); } adbStrm.SaveToFile(file); adbStrm.Close(); return false; }catch(e){ return e; } } 因みに疑似システムはマクロで既に組み上げていたりするので 「Excelで作れ」など別システムの推奨はご遠慮下さいませ。 (読み込みファイルはそのExcelで作成しています。)

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

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

一行吐き出す度にLFが出力されるのなら CRのみ自分で区切り文字を挿入して吐き出せばCRLFにくっ付くのでは?

SiegSolFried
質問者

お礼

ありがとうございます。CRLFで出力されました。 ただCRのみで出そうと思うと現状のコードでは難有なのですが 改行コードをCRのみで使うことも無さそうなので この方法で参りたいと思います。

関連するQ&A

  • 改行コードCR(\r)をアンダースコア(_)に変換

    AIX、Kシェルです。 ファイルに出力された改行コードCR(\r)をアンダースコア(_)に変換したいのですが、 文字コードSJISだと期待通りの結果になるのですが、UTF-8だと全角の手前で止まってしまいます。 試したコマンドは下記です。 cat file.txt | tr "\r" "_" > tmpfile ex) file.txt(最終行は半角spaceと全角space) 10(改行コード=LF) 11(改行コード=CRLF) 12(改行コード=CR) 1(改行コード=LF) 2(改行コード=CRLF) 3(改行コード=CRLF) ああ(改行コード=CRLF)  (改行コード=CR) 【結果】tmpfile 10(改行コード=LF) 11_(改行コード=LF) 12_1(改行コード=LF) 2_(改行コード=LF) 3_(改行コード=LF) ああ_(改行コード=LF)  _ これがUTF-8だと12までは変換できるのですが、以降が出力されません。 UTF-8でも最後まで変換されるようにするにはどうすれば良いのでしょうか? 初心者で申し訳ありません。 お手数ですが、何卒宜しくお願い致します。

  • 改行コードについて

    改行コードがよく解らないので説明お願いします 様々なサイトの改行コードの説明で LinuxはLF MacはCR WindowsはCRLFと説明しています 私の認識では LF=\n CR=\r CRLF=\r\n だと思っていました ここで疑問なのですが 確かに私の利用した環境ではLinuxの改行コードは\n, Windwosの改行コードは\r\nでした ところがMacの標準のメモ帳(テキストエディット)で文字を入力しても改行コードは\nです 確認方法は od -cというコマンドとfileというコマンドです これはつまりCRではなくLFということですよね? では、なぜ多くのサイトではMacはCRと説明しているのでしょうか? そもそもCR=\rという認識が間違ってるのでしょうか? よろしくお願いします

  • Excel VBS、ADODB.Streamで改行

    助けてください。 Excel VBAでテキストファイル出力をしているのですが、改行をどのように書き込めばいいのかわかりません。 ネットで調べても、改行コードを設定できる情報ばかりで、改行自体を書き入れる方法がわかりませんでした。 \n \r\n などと入力しても文字列としてそのまま出力されていまいます。 Windows 7 64 bit Excel 2007 書き出すファイルが UTF-8 のため、普通の出力ではなくADODB.Streamを使っています。 よろしくお願いします。

  • csvダウンロードで改行コードを指定する事は可能?

    画面から「csvダウンロード」というボタンを押すと、 javaが動いてcsvファイルのダウンロードができるのですが 改行コードがLFになってしまいます。 改行コードCR+LFにしたいのですが・・・。 恐らくサーバがUNIXだからだと思うのですが javaでcsvファイル作製時に改行コードを 変更もしくは指定する事は可能でしょうか? どなたかご教授ください。 よろしくお願いします。

  • 改行コードについて

    HTMLフォームのテキストエリアで改行した場合の処理についてご質問します。 Windowsのローカル環境で試しています。 改行コードLFでPHPを作成しています。 ○改行コードの認識 LF(\n) Unix,Mac OS X CR(\r) Mac OS 9 CRLF(\r\n) ○テキストエリアからの入力値の処理 CRLF、CRをLFに変換しています。 $value= str_replace ("\r\n", "\n", $value); $value = str_replace ("\r", "\n", $value); このあとDBに値を格納しています。 ○出力の際の処理 DBから値を取得。 phpのprint関数で下記を出力。 <textarea >${value}</textarea> 上記処理で、ローカル、サーバともに正常に動作しています。 しかし改行コードがLF(\n)なのでCRLF(\r\n)のWindowsで表示したときには問題が起きそうな気がします(実際には正常に動作)。 なにかしっくりこなくて質問させていただきました。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • テキストファイルの改行コードの確認方法

    某サポートとのやりとりで以下のようなのがありました。 ---引用--- お客さまからご提供いただきました以下の設定ファイルは、 文字コードがUTF-8、改行コードが CRLF に設定されていましたが 正しくは、文字コードはUTF-8、改行コードは LF になります。 現在サーバに置かれている設定ファイルの改行コードが LF に なっているかをご確認ください。 ※ 確認手順に関しましては、誠に恐れ入りますが、 Webのリソース等をご確認いただけないでしょうか。 ---------- Linuxマシンにおいてあるテキストファイルの改行コードを確認する方法を教えてください。 OSのバージョンは下記の通りです。 Red Hat Enterprise Linux ES release 2.1 (Panama) Kernel 2.4.9-e.27 on an i686 トレンドマイクロのサポート冷たいよ。ぼそっ

  • VB6のテキスト処理 さまざまな文字コード/改行で対応

    VB6のテキスト処理で、Open InputとLine inputを使った場合に 文字コード/改行コードが SJIS/CRLFの時は正しく1行を読み込む事ができますが、改行がLFの時は正しく1行を読み取りません。 改行コードがLFもしくはCRの場合でも正しく1行を読み取る方法はあるのでしょうか? また、文字コードに関してもEUCやUTF-8,JISでも対応できる方法がありましたら教えて下さい。

  • 改行コードとテキストエンコーディングについてお伺い致します。

    改行コードとテキストエンコーディングについてお伺い致します。 あるデータファイルの改行コードは「Unix(LF)」, テキストエンコーディングは「UTF-8(BOMなし)」という指定があります。Mac Book (OS X 10.6.4)でテキストエディットで打ち込んだ物を使っているのですが,その指定に該当するのか、もし違うのであれば、どう修正したらよいかわかりません。ご教示いただけたら幸いです。

    • ベストアンサー
    • Mac
  • Windowsでの改行コード

    HTMLを書くのにあたりUNIXサーバが主流なのだから、 UTF-8、改行コードはLFで行うことを勧められました。 Windowsの改行コードはCR LFだそうですが、 LFにした場合、Windows上でJAVAScriptなどのテストをしたときに 何か不都合があるのでしょうか。 改行コードが CR LF でUNIX上でトラブルになった事例は見つけました。 反対のことが良く分かっていません。よろしくお願いします。

  • ファイル出力の改行コードをLFに

    また質問です。よろしくお願いいたします。 WindowsXPでperl5.8.7の環境です。 出力したファイルの文字コードをEUC、改行コードをLFで出力をしようとしています。 なお入力、出力ファイルには日本語が含まれています。 文字コードは希望通りいくのですが改行コードがうまくいきません。 Windowsのデフォルト改行コードCR+LFが出力されてしまいます。 (Terapad(エディタ)の改行コード表示がこうなっています。) (1)binmode(OUT);で行うと、 Wide character in print at jisyo01.pl line 63, <IN> line 97. というエラーが表示され、出力されない。 (2)$xxx[$i] =~ s/\x0D\x0A/\x0A/g; で改行コードを置換しようとしても、置換されず、 CR+LFである。 (3)$/ = pack("C", hex("A"));で 改行コードをchompした後、print OUT "$/";としても、 CR+LFのままである。 上手くいきません。いい方法ないでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • Perl