1 件の投稿を表示中 (合計 6 個)
  • 作成者
    投稿
  • #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);
    なので、これも?です。

    うまくいかない理由を教えてください。

    #21573
    Yutaka Emura
    キーマスター

    Autumn 様

    いつも EmEditor をお使いいただき、誠にありがとうございます。

    4459 というのは古い ID ですが、現在では、CSV を自由に定義できるようになったため、22528 から始まる ID に変わりました。ですから今後は、22528 から始まる ID をお使いになることをおすすめします。ただし、既定では 4459 が 22528 と同じ意味になり、CSV の一覧に最初に定義されている CSV モードを呼び出します。

    書いていただいたマクロですが、こちらでは正しく動作しました。どうして動作しないのかわからないのですが、カスタマイズ ダイアログの CSV タブで、CSV の定義を変更されましたでしょうか?

    よろしくお願い申し上げます。

    #21579
    Autumn
    参加者

    お世話になります。

    本日、もう一度試してみると、昨日のことが嘘のように、正常に作動しました。
    昨日はどうやっても、全くだめだったのですが。

    4459 の古い IDを使って試したり、22528 を使って試したりしたことでしょうか。
    それで不安定になったとか。

    今回試したのは、4459のみです。
    カスタマイズ ダイアログの CSV タブで、CSV の定義は変更していないと思います。
    こんなメニューあったんだと思ったぐらいなので。

    なお、メニューからは動作するといいましたが、これも少し挙動がおかしかった。
    確認しておきたいのですが、
    埋め込み改行があってもCSVモードにすると、変なところで改行されずに表示されるが正常作動でしょうか。
    また、CSV の一覧に最初に定義されている CSV モードとは、どこで確認するんでしょうか。

    たまに、今でもマクロの動作が失敗するようなので、もうちょっと様子見して、安定しているようなら
    4459としている箇所を新しいコードに書き換えたいと思います。

    #21591
    Yutaka Emura
    キーマスター

    Autumn 様

    いつも EmEditor をお使いいただき、誠にありがとうございます。

    また、CSV の一覧に最初に定義されている CSV モードとは、どこで確認するんでしょうか。

    についてですが、

    カスタマイズ ダイアログの CSV タブにある一覧で、一番上に定義されている CSV モードが、一覧に最初に定義されている CSV モードのことです。

    よろしくお願い申し上げます。

    #21602
    Autumn
    参加者

    お世話になります。
    Version 15.0.1

    マクロがうまくいかなかった理由は、
    CSV モードにしたとき、CSVの埋め込み改行コードがある場合
    CSVの埋め込み改行コードのところで改行されない場合と
    改行されたままの場合があるからだと思われます。

    これはソフト側の問題か、こちらのパソコンのシステム上の問題かわからないのですが
    CSVモードにして、CSVの埋め込み改行コードのところで改行されたままだと、CSVの埋め込み改行コードは削除されません。

    それで、再度お聞きしますが、
    EmEditorの動作としては、CSVの埋め込み改行コードがある場合にCSVモードにすると、CSVの埋め込み改行コードのところで改行するのでしょうか、しないのでしょうか。

    また、この症状はVersion 15.0.1辺りからだと思われます。
    それまでは、マクロがエラーを起こすことはこれほど頻繁ではありませんでした。

    よろしくお願いします。

    #21604
    Yutaka Emura
    キーマスター

    Autumn 様

    いつも EmEditor をお使いいただき、誠にありがとうございます。

    [カスタマイズ] ダイアログの [CSV] タブで、使用する CSV フォーマットを選択した状態で、[2重引用符内の改行を許可] がチェックされていれば (既定ではチェックされている)、” ” で囲まれたセル内の改行は、自動的に EmEditor の1行に埋め込まれます。埋め込まれた改行は、ご紹介したマクロや [CSVの埋め込み改行コードを削除] コマンドで検出して削除できます。しかし、2重引用符が付いていないセルや、2重引用符が正しくペアになっていない場合、または2重引用符の外側で改行コードが存在する場合には、1行に埋め込まれず、そこで別の行になってしまいます。その点をご確認いただけると幸いです。

    また、CSV モードの変更を途中でキャンセルした場合も、すべての改行コードが埋め込まれずに残っている可能性があります。

    ファイルに問題がない場合には、EmEditor の不具合の可能性もあるので、もしその部分を再現できる、なるべく小さなサンプル ファイルがあれば、[email protected] あてに送っていただければこちらで再現テストを行ってみます。

    よろしくお願い申し上げます。

1 件の投稿を表示中 (合計 6 個)
  • このトピックに返信するにはログインしてください。