CSV/TSVモードの右寄せ表示No.37230
Micky さん 19/03/08 18:28
 
CSV/TSVモードの右寄せ表示

まいどお世話になります。

ググったらだいぶ前に一度要望があったようですが、
たぶんまだネタリストに入ったままの状態かな(?)と思います。
(ヘルプで見つけられなかったので)

以前の要望は自動認識とかいくつか条件があったようですが、
ちょっと簡単に
1.デフォルト左だけど、自分は全部右寄せで使いたい
  → できればファイルタイプ別設定で保存
2.この列だけ右寄せにしたい(列右クリックとかでメニューイメージ)
  → 私はこの情報は保存できなくても事足りるかなと思います。

みたいなことできないですかね。

今ちょっと表計算ソフトで計算した結果をテキストで残したくて、
でも桁数がいろいろで左によるとやっぱりわかりにくいな〜と思いまして。

右寄せにした後はTAB → 空白変換して別のテキストファイルにもっていくので
上の2ような一時的なものでも実用になるのではないかと思います。

[ ]
RE:37230 CSV/TSVモードの右寄せ表示No.37233
秀丸担当 さん 19/03/11 09:36
 

CSV/TSVモードで右寄せにする表示は確かにできないです。
やるとしたら、単なる表示だけでなく、カーソル移動や、右にあるタブ文字/カンマ
の扱いをどうするかなど、基本的なところに影響がありそうで、簡単ではないかもし
れないです。
現状でやるとしたら、マクロで該当列にダミーの空白を入れて揃えたように見せると
いう方法も考えられます。
一時的でもよければ、こういった方法のほうが現実的かもしれないですがどうでしょ
うか。

マクロの例:

  if(version<888){
    message "V8.88以降必要";
    endmacro;
  }
  #tabmode = getconfig("TabMode");
  if( (#tabmode & 0x0001) == 0 ) {
    message "TSV/CSVモードで実行してください";
    endmacro;
  }
  if( (#tabmode & 0x0f00) == 0x0100 ) {
    $tabchar=",";
  } else if( (#tabmode & 0x0f00) == 0x0000 ) {
    $tabchar="\t";
  } else {
    message "不明なモード";
    endmacro;
  }
  disabledraw;
 
  #tc=tabcolumn;
  #line=lineno;
  forwardtab;
  if(tabcolumn!=(#tc+1)){
    message "区切り判断失敗";
    endmacro;
  }
  #x2=xview;
  backtab;
  #x1=xview;
  #width=#x2-#x1;
 
  $s="";
  #i = 0;
  while( #i < #width ) {
    $s=$s+" ";
    #i=#i+1;
  }
 
  begingroupundo;
  #i = 1;
  while( #i <= linecount2 ) {
    selectcolumn #tc,#tc,#i,#i;
    if( tabcolumn == #tc ) {
      $a=gettext(seltopx,seltopy,selendx,selendy,1);
      if( rightstr($a,1)==$tabchar && strlen($a)<#width) {
        insert rightstr($s+$a,#width);
      }
    }
    #i=#i+1;
  }
  endgroupundo;
 
  refreshtabstop;
  selectcolumn #tc,#tc,#line,#line;
  escape;

[ ]
RE:37233 CSV/TSVモードの右寄せ表示No.37235
Micky さん 19/03/11 11:16
 
まいどお世話になります。

秀丸担当 さん write:

>やるとしたら、単なる表示だけでなく、カーソル移動や、右にあるタブ文字/カンマの
>扱いをどうするかなど、基本的なところに影響がありそうで、簡単ではないかもしれ
>ないです。
なるほど、いろいろ大変そうですね。

>マクロの例:
ありがとうございます。
頻繁にやる作業ではないのですが、先日の作業の内容をやってみました。
やっぱり楽ちんですね。
境界幅を広く変えとくとそこに合わせてくれるのも使いやすいと思いました。

[ ]