CSVモードで最後列が分かるようにして欲しNo.31059
hawk-eye さん 12/03/28 10:21
 
Windows XP Pro SP3
秀丸エディタ Version 8.12 使用

CSVモードでテキストが存在する最後列が分かるようにして欲しいです。

例えば、G列がテキストが存在する最後列だった場合、
G列とH列の境目に任意に設定した縦線を表示する方法が考えられると思いますが、
この列が最後だと分かるのであれば、他の方法でも構いません。

これは強い要望ですが、
対応して頂ける場合、すぐの対応でなくても良いです。

よろしくお願い致します。

[ ]
RE:31059 CSVモードで最後列が分かるようNo.31060
hawk-eye さん 12/03/28 10:28
 
誤解のないように補足しますが、
個々の行の最後列という意味ではなくて、
全ての行をチェックした上での最後列という事です。

[ ]
RE:31060 CSVモードで最後列が分かるようNo.31061
秀まるお2 さん 12/03/28 16:18
 
 「折り返し桁数の縦線」ってのがあるのですが、CSV/TSVモードの場合だけそ
れを今回の目的に使ってしまう作戦はあるかなぁと思います。

 それよりももっと簡単そうなのは、ルーラー上で、例えば中身がまだ無い列以
降は灰色表示するとかって作戦もあるかなぁと思います。

 ルーラーの表示を変えるだけならそんなに難しくなさそうな気がします。

 さらに言うなら、前回のご要望(ファイルオープン時に列幅の自動調整をしな
い件)の方が簡単そうですけども、そっちよりもこっちの方が優先順位的には上
になるのでしょうか。

 今ちょっとgrep関係をいろいろいじってるのですが、それが一段落して他にこ
れといった要望が出ないようなら僕の方でトライしてみてもいいかなぁという気
がします。

[ ]
RE:31061 CSVモードで最後列が分かるようNo.31062
秀まるお2 さん 12/03/28 19:30
 
>  「折り返し桁数の縦線」ってのがあるのですが、CSV/TSVモードの場合だけそ
> れを今回の目的に使ってしまう作戦はあるかなぁと思います。

 この作戦でやってみたらうまくいきました。ただ、まだ「とりあえず動いた」
って状態なので、いろいろテストしてみる必要がありますけども…。

 テストしてみて大丈夫そうでしたら、次のβ版に入れてしまうこととさせてい
ただきます。

[ ]
RE:31062 CSVモードで最後列が分かるようNo.31063
hawk-eye さん 12/03/28 21:59
 
お忙しい中、ありがとうございます。
もう返答する必要がないかもしれませんが、一応返答しておきます。

「折り返し桁数の縦線」で上手くいきそうな感じで何よりです。

作戦的には、「折り返し桁数の縦線」を流用する、ルーラーの表示を変える、
いずれでも異論はありません。

前回の要望との優先順位ですが、
対応して頂けるなら、どちらが先でも良いです。

よろしくお願い致します。

[ ]
RE:31062 CSVモードで最後列が分かるようNo.31064
hawk-eye さん 12/03/30 22:13
 
対応して頂いた
秀丸エディタ Version 8.20 Beta12を
こちらでもテストしてみました。

削除したい列のルーラー部分をクリックし、
Delキー、もしくは、BSキーを押して列を削除すると、
この場合だけ「折り返し桁数の縦線」表示の位置が更新されないようです。


ヘルプを参照すると、
「行の最後の区切り以降も計算する」がONの時で、セルの幅が自動調整された時に限り
という条件になっていますが、
これは最終的な仕様でしょうか?

暫定的な仕様であれば良いですが、
そうでなければ、将来的には、
「行の最後の区切り以降も計算する」の設定や自動調整の有無に関わらず、
「折り返し桁数の縦線」を表示して欲しい
という要望がある事を覚えておいて欲しいです。

よろしくお願い致します。

[ ]
RE:31064 CSVモードで最後列が分かるようNo.31068
秀まるお2 さん 12/03/31 16:38
 
 ルーラー部分をクリックしての列の削除については、すみませんがまったく考
えてませんでした。

 その場合でもちゃんと再計算するようにします。

 それと、「abc,xyz」のような場合はうまくいくんですが、「abc,xyz,」のよ
うに、最後がコンマで終わってる場合に1列余計に計算してしまうようでして…。
これもなんとか直そうと思います。

> ヘルプを参照すると、
> 「行の最後の区切り以降も計算する」がONの時で、セルの幅が自動調整された時に限
> り
> という条件になっていますが、
> これは最終的な仕様でしょうか?

 これはこういう仕様にせざるを得ないかなぁと思ったのと、別にそういう仕様
でも困ることも無い気がしたというか…。普通ここのオプションはONで使うんじ
ゃないかというか、そもそもなんでこんなオプションがあるのか意味がよく分か
らずです。

 オプションOFFで使う必要性は…。過去の会議室ログを検索すると出てくるか
もしれませんが…。もしよかったら教えてください。

[ ]
RE:31068 CSVモードで最後列が分かるようNo.31069
colder さん 12/03/31 19:55
 
colderです
> それと、「abc,xyz」のような場合はうまくいくんですが、「abc,xyz,」のよ
>うに、最後がコンマで終わってる場合に1列余計に計算してしまうようでして…。
>これもなんとか直そうと思います。
これ、本当に間違っているんですか?
wikipediaによれば、正しいように思いますけど。
http://ja.wikipedia.org/wiki/Comma-Separated_Values

[ ]
RE:31069 CSVモードで最後列が分かるようNo.31070
アルビレオ さん 12/03/31 20:34
 
アルビレオです。

colderさん
>wikipediaによれば、正しいように思いますけど。
>http://ja.wikipedia.org/wiki/Comma-Separated_Values

現実にはプログラムによって解釈はバラバラです。
RFC4180が公開されたのは2005年とCSVの歴史の古さと比べればごく最近のことで
すし、ほとんどのソフトはこれに従うよりも過去の自社製品との互換性を優先す
るでしょう。

[ ]
RE:31068 CSVモードで最後列が分かるようNo.31071
hawk-eye さん 12/03/31 22:35
 
> オプションOFFで使う必要性は…。過去の会議室ログを検索すると出てくるか
>もしれませんが…。もしよかったら教えてください。

自動調整ON/OFFのオプションを用意した元々の意味は分かりませんが、
何故、私が自動調整がOFFでも対応してもらいたいかと言うと、
テキストが存在する列が複数ある場合に、
他の列の列幅をマウス操作で狭めたりしてる状態で
どこかに文字入力や削除をしたりすると自動調整が働き、
マウス操作で列幅を変更した他の列までが自動調整されてしまうからです。

[ ]
RE:31071 CSVモードで最後列が分かるようNo.31072
秀まるお2 さん 12/03/31 23:28
 
 すみません。1つ勘違いがありました。

 僕の思っていたオプションとは、「行の最後の区切り以降も計算する」の
オプションのことで、これがOFFの場合にもうまく計算するようにするのは難し
いという話のつもりでした。

 それとは別に、「挿入で自動調整」および「削除/改行/タブ挿入で自動調整」
が(両方)ONでないとダメなのは、これはつまり…、自動調整のタイミングで何
カラム目まで使ってるか計算してるので、自動調整が無いと、計算する
タイミングが無いからってことになりますけども…。

 しいて、自動調整OFFの場合でも、何カラム目まで使ってるかの計算だけは独
自にやればいいんですが、それをやるには現状の処理の手直しじゃなくて、新し
い処理を作らないといけなくて、かなり面倒なことになります。

 いろいろやることがありすぎて難しいので、とりあえずこの辺は今の所保留さ
せていただきます。

 いろいろバグ調査とかもありまして…。一段落したら考えたいと思います。

[ ]
RE:31070 CSVモードで最後列が分かるようNo.31073
秀まるお2 さん 12/03/31 23:35
 
 詳しく情報ありがとうございます。

 CSV形式がRFCで規定されてるとは知りませんでした。

 とりあえず、意図して現状の仕様になってるようなので、この処理はそのまま
にしておきます。

 折り返し桁数縦線の計算ロジックは、現状の小手先的な対応ではちょっと無理
がありそうなので、また別のロジックか何か対策を考え直そうと思います。

[ ]
RE:31072 CSVモードで最後列が分かるようNo.31075
hawk-eye さん 12/04/01 07:31
 
「行の最後の区切り以降も計算する」は、私も存在意義が分かりません。
常に表示されていた方が統一感がありますし、
最後列が明確に分かるようになっていた方が良いと単純に思った次第ですが、
難しいという事で了解致しました。

「挿入で自動調整」および「削除/改行/タブ挿入で自動調整」がOFFの場合の件、
了解致しました。

[ ]
RE:31075 CSVモードで最後列が分かるようNo.31079
秀まるお2 さん 12/04/03 12:05
 
> 「挿入で自動調整」および「削除/改行/タブ挿入で自動調整」がOFFの場合の件、
> 了解致しました。

 いろいろ試行錯誤した結果、ここのオプションOFFの場合でも折り返し桁数の
縦線表示出来るようにしました。

 次のβ版にて対応させていただきます。

[ ]
RE:31079 CSVモードで最後列が分かるようNo.31111
hawk-eye さん 12/04/05 21:11
 
対応ありがとうございました。
ヘルプの修正も必要ではないでしょうか?

あと、「折り返し桁数の縦線」だけでなく、「ガイドライン(縦)」もなのですが、
CSVモードで漢字と半角カンマを交互に何度も入力すると面倒なので、
半角/全角を切り替えずに済むように、
以下のような記述がされたマクロファイルを用意し、何らかのキーに割り当て、
CSVモードの時にそのキーを押したら半角カンマが入力されるようにしているのですが、
この場合は半角カンマを入力した時と同じ動作にならないのは仕方ないのでしょうか?
※私の場合は、CSVファイルでタブ文字は入力しないのでTabキーに割り当てました。

●マクロの内容
 if (getconfig( "TabMode" ) & 0xF0F == 0x101)
  insert ",";
 else
  insert "\t";

以上

[ ]
RE:31111 CSVモードで最後列が分かるようNo.31120
秀まるお2 さん 12/04/06 15:48
 
 ヘルプの修正の方は完全に忘れてました。今度また修正させていただきます。

 それと、マクロの方ですが、テストしてみたらたしかに、折り返し桁数の縦線
がうまく自動調整されないようでした。

 いろいろテストしていただくと問題が出るようで…。

 なんとか調べて修正させていただきます。

[ ]
RE:31120 CSVモードで最後列が分かるようNo.31122
秀まるお2 さん 12/04/06 17:50
 
 とりあえずですが、マクロの最後にrefreshtabstop文を入れれば回避だという
話を秀丸担当から教えてもらいました。

 refreshtabstop文を入れなくても折り返し桁の縦線位置だけは再計算するよう
にしようと思います。

[ ]
RE:31122 CSVモードで最後列が分かるようNo.31123
秀まるお2 さん 12/04/06 17:55
 
 すみません。refreshtabstopを使うとカラムの幅の自動調整もいっしょに実行
れました。それでは都合が悪いのでした。

 これは別にして、とにかくマクロ終了時に(マクロでテキストをいじった場合
には)折り返し縦線の位置だけ再計算するような処理を追加させていただきます。

[ ]
RE:31123 CSVモードで最後列が分かるようNo.31125
hawk-eye さん 12/04/07 10:05
 
refreshtabstopの件は、以前秀丸担当さんに教えて頂いていたのですが、
何かのタイミングでマクロから消えてしまい、
CSVモードで漢字入力をたくさんする機会も最近無かったので、
失念していました。すみません。

今、調べてみると、
以下のような結果(○が調整あり、×が調整なし)のようでした。
間違ってたら御免なさい。

●マクロで半角カンマ入力(refreshtabstop無し)
自動調整ONの場合 :「折り返し桁数の縦線」×、「ガイドライン(縦)」×
自動調整OFFの場合:「折り返し桁数の縦線」○、「ガイドライン(縦)」×

●マクロで半角カンマ入力(refreshtabstop有り)
自動調整ONの場合 :「折り返し桁数の縦線」○、「ガイドライン(縦)」○
自動調整OFFの場合:「折り返し桁数の縦線」○、「ガイドライン(縦)」○

●キーボードで半角カンマ入力
自動調整ONの場合 :「折り返し桁数の縦線」○、「ガイドライン(縦)」○
自動調整OFFの場合:「折り返し桁数の縦線」○、「ガイドライン(縦)」×

自動調整ONの場合、
refreshtabstop無しのマクロが
キーボード入力と同じ動作になるのが最終的な理想だと思うので、
マクロ実行後に「折り返し桁数の縦線」の位置のみ再計算しても、
「ガイドライン(縦)」の方が宿題として残るような気がします。

自動調整ONの場合にrefreshtabstop無しのマクロを実行した場合、
「折り返し桁数の縦線」と「ガイドライン(縦)」を
キーボード入力と同じ動作にするのは難しそうでしょうか?
この場合が対応されたら、
マクロで半角入力する場合はrefreshtabstopを記述せずに済みますが、
「折り返し桁数の縦線」のみの対応であれば、
せっかく対応して頂いても、
マクロにrefreshtabstopを記述して使う事になると思います。

よろしくお願い致します。

[ ]
RE:31125 CSVモードで最後列が分かるようNo.31128
秀まるお2 さん 12/04/09 09:15
 
 いろいろテストありがとうございます。

> 自動調整ONの場合にrefreshtabstop無しのマクロを実行した場合、
> 「折り返し桁数の縦線」と「ガイドライン(縦)」を
> キーボード入力と同じ動作にするのは難しそうでしょうか?

 一応、秀丸エディタ的には現状の動作が「わざとそうしてる」ってことなので、
hawk-eyeさんの期待される仕様にしてしまうのはまずいんじゃないかと思います。

 折り返し桁数の縦線についてはどっちにしても修正させていただきますけど、
列幅(カラム幅)の自動調節も必要ってことでしたら、やはりrefreshtabstopを
マクロに入れていただくしか無いかと思います。

[ ]