- 作成者投稿
- 2015年4月11日 1:39 pm #21567
Autumn
参加者CSVの埋め込み改行コードを削除にて、下記のマクロでは削除できていない。
Version 15.0.1です。
以前、教えていただいた下記のマクロで、CSVの埋め込み改行コードを削除ができなくなっていることに気づきました。editor.ExecuteCommandByID(4459); // make sure CSV mode is set.
nLines = document.GetLines(); // get the total lines of the document.
for( i = 1; i <= nLines; i++ ){
s = document.GetLine( i ); // get a line
if( s.indexOf(“\r”) != -1 || s.indexOf(“\n”) != -1 ) { // if ‘/r’ or ‘/n’ is contained?
//alert( s ); // uncomment thie line to debug
document.selection.SetActivePoint( eePosLogical, 1, i ); // move the cursor to the line
document.selection.SelectLine(); // select the line
document.selection.Text = s.replace(/\r|\n/g, “”) + “\r\n”; // remove ‘/r’ and ‘/n’.
}
}試しに、新機能のCSVの埋め込み改行コードを削除を使用してみようと思い
メニューからは、うまくいったのですが
これをマクロに置き換えて、editor.ExecuteCommandByID(4459); // make sure CSV mode is set.
editor.ExecuteCommandByID(3922);//CSVの埋め込み改行コードを削除とした場合、CSVの埋め込み改行コードが削除できていませんでした。
ちなみに、CSVモードはマクロの記録を使用すると
editor.ExecuteCommandByID(22528);
と記録されます。ヘルプで確認すると、CSVモードは
editor.ExecuteCommandByID(4459);
なので、これも?です。うまくいかない理由を教えてください。
2015年4月12日 8:18 am #21573Yutaka Emura
キーマスターAutumn 様
いつも EmEditor をお使いいただき、誠にありがとうございます。
4459 というのは古い ID ですが、現在では、CSV を自由に定義できるようになったため、22528 から始まる ID に変わりました。ですから今後は、22528 から始まる ID をお使いになることをおすすめします。ただし、既定では 4459 が 22528 と同じ意味になり、CSV の一覧に最初に定義されている CSV モードを呼び出します。
書いていただいたマクロですが、こちらでは正しく動作しました。どうして動作しないのかわからないのですが、カスタマイズ ダイアログの CSV タブで、CSV の定義を変更されましたでしょうか?
よろしくお願い申し上げます。
2015年4月12日 11:17 am #21579Autumn
参加者お世話になります。
本日、もう一度試してみると、昨日のことが嘘のように、正常に作動しました。
昨日はどうやっても、全くだめだったのですが。4459 の古い IDを使って試したり、22528 を使って試したりしたことでしょうか。
それで不安定になったとか。今回試したのは、4459のみです。
カスタマイズ ダイアログの CSV タブで、CSV の定義は変更していないと思います。
こんなメニューあったんだと思ったぐらいなので。なお、メニューからは動作するといいましたが、これも少し挙動がおかしかった。
確認しておきたいのですが、
埋め込み改行があってもCSVモードにすると、変なところで改行されずに表示されるが正常作動でしょうか。
また、CSV の一覧に最初に定義されている CSV モードとは、どこで確認するんでしょうか。たまに、今でもマクロの動作が失敗するようなので、もうちょっと様子見して、安定しているようなら
4459としている箇所を新しいコードに書き換えたいと思います。2015年4月13日 1:40 pm #21591Yutaka Emura
キーマスターAutumn 様
いつも EmEditor をお使いいただき、誠にありがとうございます。
また、CSV の一覧に最初に定義されている CSV モードとは、どこで確認するんでしょうか。
についてですが、
カスタマイズ ダイアログの CSV タブにある一覧で、一番上に定義されている CSV モードが、一覧に最初に定義されている CSV モードのことです。
よろしくお願い申し上げます。
2015年4月14日 10:45 pm #21602Autumn
参加者お世話になります。
Version 15.0.1マクロがうまくいかなかった理由は、
CSV モードにしたとき、CSVの埋め込み改行コードがある場合
CSVの埋め込み改行コードのところで改行されない場合と
改行されたままの場合があるからだと思われます。これはソフト側の問題か、こちらのパソコンのシステム上の問題かわからないのですが
CSVモードにして、CSVの埋め込み改行コードのところで改行されたままだと、CSVの埋め込み改行コードは削除されません。それで、再度お聞きしますが、
EmEditorの動作としては、CSVの埋め込み改行コードがある場合にCSVモードにすると、CSVの埋め込み改行コードのところで改行するのでしょうか、しないのでしょうか。また、この症状はVersion 15.0.1辺りからだと思われます。
それまでは、マクロがエラーを起こすことはこれほど頻繁ではありませんでした。よろしくお願いします。
2015年4月15日 1:42 am #21604Yutaka Emura
キーマスターAutumn 様
いつも EmEditor をお使いいただき、誠にありがとうございます。
[カスタマイズ] ダイアログの [CSV] タブで、使用する CSV フォーマットを選択した状態で、[2重引用符内の改行を許可] がチェックされていれば (既定ではチェックされている)、” ” で囲まれたセル内の改行は、自動的に EmEditor の1行に埋め込まれます。埋め込まれた改行は、ご紹介したマクロや [CSVの埋め込み改行コードを削除] コマンドで検出して削除できます。しかし、2重引用符が付いていないセルや、2重引用符が正しくペアになっていない場合、または2重引用符の外側で改行コードが存在する場合には、1行に埋め込まれず、そこで別の行になってしまいます。その点をご確認いただけると幸いです。
また、CSV モードの変更を途中でキャンセルした場合も、すべての改行コードが埋め込まれずに残っている可能性があります。
ファイルに問題がない場合には、EmEditor の不具合の可能性もあるので、もしその部分を再現できる、なるべく小さなサンプル ファイルがあれば、[email protected] あてに送っていただければこちらで再現テストを行ってみます。
よろしくお願い申し上げます。
- 作成者投稿
- このトピックに返信するにはログインしてください。