テキストファイルを指定サイズ以内に収めて分割するプログラムを組んでみました。
このプログラムは、一行ごとに合計サイズを計算して、あふれたらその一行の分を記録せずに保存することで、指定サイズに収めながら分割するものです。
しかし実行すると、なぜか生成されたテキストのサイズが指定したサイズより大きくなってしまうのです。
アドバイス、よろしくお願いします。
コードは以下の通り。
ちなみに、言語はHSP 3.2を使用しています。
filename="M:\\文章\\小説\\青空文庫\\こころ\\773_ruby_5968\\kokoro.txt" notesel buf :noteload filename :fname=filename :size=notesize cutsize=10240 ;カットするbyte数 cl=0 ;その1ファイルのサイズ(byte) cpn=1 ;ファイル番号(1〜) cpl=strlen(str(int(1.0*size/cutsize)+1)) ;桁数 sdim cut,cutsize ;カットしたファイル max=notemax sdim get,32768 for k,0,max noteget get,k cl+=strlen(get) if cl>=cutsize { cl=0 bsave getpath(fname,1)+"("+strf("%0"+cpl+"d",cpn)+").txt",cut,strlen(cut)-2 cut=get+"\n" cpn+ } else { cut+=get+"\n" } next bsave getpath(fname,1)+"("+strf("%0"+cpl+"d",cpn)+").txt",cut,strlen(cut) end