警告:文字列の上限に達しています。No.02781
cent さん 09/07/31 04:22
 
検索・置換えの文字数の制限を大幅に緩和すると
お聞きしていましたが

検索文字数が4KB程度で警告が出ます。

改善の途中でしょうか?
v8の仕様でしょうか?
検索の方法が悪いのでしょうか?

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

[ ]
RE:02781 警告:文字列の上限に達していNo.02787
秀丸担当 さん 09/07/31 10:00
 

>検索文字数が4KB程度で警告が出ます。

V8.00の仕様ということでお願いします。
約16倍に増えました。
どんなに長くてもまるごと検索できるというようには、今後もならないかもしれ
ません。申し訳ありませんが、仕様ということでお願いします。

[ ]
RE:02787 警告:文字列の上限に達していNo.02794
cent さん 09/07/31 12:03
 
>
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>ません。申し訳ありませんが、仕様ということでお願いします。


RE:26365 マクロエラー:文字列が長すぎます No.26368
cent さん 09/03/17 01:38 [ コメントを投稿する ]  
 
>もしこのマクロ一文だけでなく、変数に格納したり、関数を使ったり、「+」で
>文字列を連結したりとかしている場合、そこで起きているのだと思いますが、

ほぼご指摘の通りの使い方を行っています。
変数を工夫し改善はしましたが
やはりエラーを吐いてしまいます。

仕様を考慮して、改善に時間を費やすことは
無意味に感じます。

ところでご質問ですが
Q1 マクロエラー:文字列が長すぎます の意味は何でしょうか?
Q2 Float v 7.10 を使っていますが64bit版では変わりますか?
Q3 エラーの場合プロセスHidemaru.exeを一つずつ終わらせる必要がありますが解決
策はございますか?

よろしくお願いいたします。
 
 
[ △ ]  

RE:26368 マクロエラー:文字列が長すぎます No.26369
秀丸担当 さん 09/03/17 09:47 [ コメントを投稿する ]  
 
>ほぼご指摘の通りの使い方を行っています。
>変数を工夫し改善はしましたが
>やはりエラーを吐いてしまいます。
>
>仕様を考慮して、改善に時間を費やすことは
>無意味に感じます。

申し訳ありません。
現状では、いろいろ工夫していただくしかないと思います。

>ところでご質問ですが
>Q1 マクロエラー:文字列が長すぎます の意味は何でしょうか?

繰り返しになりますが、文字列型変数で長い文字列を扱うときなどに出と思いま
す。

例えば、

 $a = $b + $c;

でとても長くなる場合や、

 $a = gettext(seltopx,seltopy,selendx,selendy);

で大きな範囲を選択して取り込むときなどに出ると思います。
あと、変数に格納しなくても、関数の結果として長い場合も出ることがありまし
た。

 message gettext(seltopx,seltopy,selendx,selendy);


>Q2 Float v 7.10 を使っていますが64bit版では変わりますか?

64bit版でも変わらないです。

>Q3 エラーの場合プロセスHidemaru.exeを一つずつ終わらせる必要がありますが解決
>策はございますか?

どういうマクロなのか分からないのでなんとも言えないですが、通常であれば、
メッセージが出た後、普通に終了させることができると思います。
もしかしたら、showwindow 0;をしている最中に出た場合は、見えないままのウ
ィンドウが残ってしまうこともあるかもしれません。
見えないウィンドウがある場合、もしかしたら適当に新規作成して、[ファイル]
→[全終了]すると終わらせることが出来る場合もあるかもしれないです。
他にも残ってしまうケースがあるのかもしれないですが、今考えた限りでは思い
つきませんでした。
 
 
[ △ ]  

RE:26361 マクロエラー:文字列が長すぎます No.26745
cent さん 09/06/20 07:45 [ コメントを投稿する ]  
  再び上記のエラーで苦しんでいます。


>例えば、
>
> $a = $b + $c;
>
>でとても長くなる場合や、
>
> $a = gettext(seltopx,seltopy,selendx,selendy);
>
>で大きな範囲を選択して取り込むときなどに出ると思います。



> $a = gettext(seltopx,seltopy,selendx,selendy);

上記のケースで 
マクロエラー:文字列が長すぎます 
を出さないようにするにはどうしたらよろしいでしょうか?

仕様でしたら代替回避方法はありますか?
改善の予定はありますか?

$aは 現在 18KBから100KB くらいです。

 
 
[ △ ]  

RE:26745 マクロエラー:文字列が長すぎます No.26749
秀丸担当 さん 09/06/22 10:05 [ コメントを投稿する ]  
 
>上記のケースで 
>マクロエラー:文字列が長すぎます 
>を出さないようにするにはどうしたらよろしいでしょうか?
>
>仕様でしたら代替回避方法はありますか?

現状では、このエラーが出る場合は、変数に格納する前に文字数を数えてか
ら判断するなどの処理を作っていただく必要があると思います。
centさんの以前のコメントで言われている通り、文字列の長さを事前に推測する
労力とエラー時にエラーを回避する労力が必要、ということになってしまうと思
います。申し訳ありません。

あるいは、どのようなマクロなのかわからないのでなんとも言えませんが、もし
クリップボードにコピーして済ませられるような処理であれば、制限は無いので
クリップボードを使って回避できるかもしれません。
copy文やpaste文のほかにも、setclipboard文やaddclipboard文などの文もありま
す。

>改善の予定はありますか?

centさんからご意見をいただいたことで、V8.00ではより大きな文字列も扱えるよ
うに改善を検討しています。
V8.00はβ版を7月末までには公開を始める予定です。
 
 
[ △ ]  

RE:26749 マクロエラー:文字列が長すぎます No.26752
cent さん 09/06/22 13:04 [ コメントを投稿する ]  
 
>>改善の予定はありますか?
>
>centさんからご意見をいただいたことで、V8.00ではより大きな文字列も扱えるよ
>うに改善を検討しています。
>V8.00はβ版を7月末までには公開を始める予定です。


毎度、ご丁寧な回答ありがとうございます。

>V8.00はβ版

で推測せずに入れ出しできるversionの
一日も早い公開を期待いたします。
 
======================================================


わずか4KBごときを16倍にしたのご説明ですが
検索文字数を増やすことはシステムに影響を
及ぼすとは考え効くいのですが。

この様な検索や置き換えを行うことは
極めてまれなケースですが
この様なケースのために上限を考慮したり
4KB単位の分割を行って置き換えを行わざるを得ないのは
情けないお話です。
警告が出たとたんに とほと・・・・・。

テキストエディタの
大きな文字列とは4KBでしょうか?

1MBくらいかと期待しておりました。
最大行数の1000万行もネックです。


[ ]
RE:02794 警告:文字列の上限に達していNo.02795
秀丸担当 さん 09/07/31 12:49
 

申し訳ありません。
マクロの変数については、全体で約1MB、1つの変数の上限も約1MBになり
ました。
以前にお話しがあった変数のことはエラーは出なくなっているのではないかと思
います。

検索については、内部的な都合もあって、1MBに増やすのは難しいかもしれま
せん。

テストいているうち、マクロでsearchdownで大きな文字列入れた変数を指定して
検索しようとすると異常終了してしまうバグが見つかってしまいした。異常終了
しないようにβ4で修正させていただきます。

[ ]
RE:02795 警告:文字列の上限に達していNo.02820
IKKI さん 09/08/02 01:27
 
こんにちは。ユーザの IKKI です。

この件に関連して、ヘルプの「検索/置換文字列の上限について」の記述を
更新していただけますようお願いします。

秀丸エディタ v8.00β3

[ ]
RE:02820 警告:文字列の上限に達していNo.02848
秀丸担当 さん 09/08/03 13:34
 

>この件に関連して、ヘルプの「検索/置換文字列の上限について」の記述を
>更新していただけますようお願いします。

ご指摘ありがとうございます。
ここも修正しておきます。
前の記述も残しつつ、追記しておこうと思います。

[ ]