1 行ごとに配列へNo.04205
Iranoan さん 04/03/24 12:03
 
 皆さん今日は、Iranoan です。
 http://www.maruo.co.jp/hidesoft/2/x16943_.html#16950 から移動してき
ました。

 以下 sk2910 さんへ
 マクロ・ヘルプから引用すると、文字列は、
> 文字列型変数の扱える文字列は,長さが8000バイト程度まで
という制限があり、配列を使うときには、
> 秀丸マクロでは,変数を記憶するためのメモリを640Kバイト用意しています。
> これを越えるような大量の変数を使うとエラーとなります。エラーになるとそ
> の場でマクロの実行は中断されてしまいます。配列変数を多用するとこの制限
> を越えてしまう恐れがあるので注意してください。
という注意が必要です。ですから一行のデータなど不定な長さのデータを扱う
ときは、場合によっては不適切かもしれません。

 また文字列の取得には、gettext() 関数も有ります。
>   selectline;
は直前の改行から次に改行までですが、
>   deleteline;
は見かけ上の折り返しの行を対象にします。よってこの組み合わせは良くない
です。最終的に何をやりたいか不明なので、見当違いかもしれませんが、以上
のことから、ファイル全体を取得する例で示すと、
while( #i < linecount )
{
  $string[ #i ] = gettext( 0, #i, width + 2, #i );
  //↓改行も取得する方法
  //$string[ #i ] = gettext( 0, #i, 0, #i + 1);
  #i = #i + 1;
}
menuarray $string, #i;
という方法も有ります。

> ゴミみたいなようなものが入っていて…
 おそらく「ごみ」というのは、改行文字のことだと思います。

> Perlでいうchomp見たいな関数を使ってnewlineを削除する
> 必要があるのでしょうか?
 Perl をご存じなら、秀丸から外部プログラムを呼び出せるし、Perl で処理
してしまった方がよいかもしれません。

[ ]