※ ChatGPTを利用し、要約された質問です(原文:Adodbの改行コードについて)
Adodbの改行コードについて
このQ&Aのポイント
CSVを読み込み編集しCSVを書き出すHTAでAdodbで躓いてしまいました。改行コードが上手く出力できず悪戦苦闘中です。
AdodbのWriteTextで行区切り文字を指定していますが、指定していないとLFが出力され、指定してもCRLFの後にLFが吐き出されます。
LFが邪魔で仕方ないのですが、必ず出力されてしまうのでしょうか?
お世話になります。
クライアントに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で作成しています。)
お礼
ありがとうございます。CRLFで出力されました。 ただCRのみで出そうと思うと現状のコードでは難有なのですが 改行コードをCRのみで使うことも無さそうなので この方法で参りたいと思います。