[リストへもどる]
一括表示
タイトルmemory allocate error!!(stringT)
記事No342
投稿日: 2009/04/14(Tue) 12:00:00
投稿者ft
EBStudioを使って、OEDをEPWINGに変換しようと試みています。

OEDテキスト化スクリプトとWebEdicsの変換ツールを使って、入力ファイルを作るところまではできました。

WindowsのPerlでは01convEB.plがうまくいかなかったのですが、Linuxでやったところうまくいったようで、867,633,540バイトの_oed1というhtmlができました。
これを入力ファイルとしてEBStudioで変換を実行しようとしたところ、

カタログを作成しました。
書籍ファイルの書き込みに失敗しました。
開始時刻:2009/04/14 9:33:06
[OED]
memory allocate error!!(stringT)

というエラーで実行されません。

作業領域は非常に大きくとっているのですが、どんなに大きくしても同じエラーが出ます。
入力ファイルのサイズには制限があるのでしょうか。
あるいは作業領域の設定の仕方がまずいのでしょうか。

考えられる解決法がありましたら教えていただけないでしょうか。

タイトルRe: memory allocate error!!(stringT)
記事No345
投稿日: 2009/04/25(Sat) 19:48:12
投稿者hishida
> EBStudioを使って、OEDをEPWINGに変換しようと試みています。
(略)
> memory allocate error!!(stringT)
>
> というエラーで実行されません。
>
> 作業領域は非常に大きくとっているのですが、どんなに大きくしても同じエラーが出ます。
> 入力ファイルのサイズには制限があるのでしょうか。
> あるいは作業領域の設定の仕方がまずいのでしょうか。

EBStudioはテキストをオンメモリに展開しているので、ある程度以上のサイズになると変換できません。
現状ではファイルを2分割や3分割するしかないと思います。
メモリに制約のないバージョンを作りたいと思っているのですが、作業時間がとれそうもありません。

タイトルRe: memory allocate error!!(stringT)
記事No355
投稿日: 2009/05/01(Fri) 08:43:17
投稿者john
> WindowsのPerlでは01convEB.plがうまくいかなかったのですが、Linuxでやったところう
>まくいったようで、867,633,540バイトの_oed1というhtmlができました。

00autoItOEDで書き出したhtmlファイルであれば、165000番目以降のhtmlファイルは、_oed2.html($fileCntが2のため)に書き出されるようです。出来上がるファイルが2つに分割されるため、EBStudio でmemory allocate error!!(stringT)は出ないと思います。同じフォルダーにある00ALL.ebsを利用してEBStudioで疑似epwingに変換できるはずですが、フォントの扱いが特殊なので、通常のepwing検索ソフトでは文字化けします。

sub reGetDir{
if($cnt > 165000){
httpprint OUT "</dl></font></body></html>";
httpclose(OUT);
http$fileCnt++;
httpmy $outHTML = $root . "/../_oed$fileCnt\.html";
httpopen(OUT, ">$outHTML") || die "cannot open $outHTML\n";
httpprint OUT "<html><head><title>oed</title></head><body><font face=\"Plantin OUP\"><dl>\n";
http$cnt = 0;
}