すごくいい問題ですね!
私も試してみましたが、元のプログラムの291行目で
「1%処理する毎に、変数P$に作業中の変数B$を連結して、B$を一旦空にする」
という処理が入っているため、元のプログラムのほうが早いようでした!
すばらしい処理だと思います。
改良版にもこの処理を入れれば、早くなると思います。
一般に2つの文字列を連結する場合、新しい場所に2つの文字列を順にコピーする(片方の文字列の後にもう片方をコピーするわけではない)ので、処理時間は連結する両方の文字列を足した長さに比例します。
例えば0文字+1文字を連結する時間を1(10文字+10文字なら20)として、10,000文字のファイルを処理する場合、元のプログラムと改良版で、文字列の連結だけでどのくらい処理時間がかかるのか、計算してみると面白いと思います!
(私の計算では、およそ50倍違うようでした)
3そうだね プレイ済み