Относительно возможности открытия больших текстов в BlackBox.
BlackBox не загружает содержимое в память, он читает текст из файла используя кеширование. Но Piece'ы загружаются в память полностью. Поэтому текст с большим количеством не Latin-1 символов может забить память Piece'ами и привести к жутким тормозам. Можете открыть HeapSpy и посмотреть как чередуются в памяти Piece и LPiece. Тормоза можно убрать, если отключить генерацию коротких Piece'ов, записывая все символы только в UTF-16. Для этого можно сделать такой хак в модуле TextModels:
PROCEDURE (wr: StdWriter) WriteChar (ch: CHAR);
VAR t: StdModel; u, un: Run; lp: LPiece; pos, spillPos: INTEGER;
fw: Files.Writer; op: EditOp; bunch: BOOLEAN;
BEGIN
IF ch = 200BX THEN wr.WriteChar(zwspace)
ELSIF ch = 2010X THEN wr.WriteChar(hyphen)
ELSIF ch = 2011X THEN wr.WriteChar(nbhyphen)
ELSE
После него BlackBox сразу открывает файлы даже размером в полтора гигабайта (предварительно сконвентированные в ODC; если этого не сделать, то BlackBox будет сам конвертировать при загрузке в %temp%). Ничего не тормозит вообще, только полоса прокрутки глючит. Потребление памяти при этом - около 500 КБ. Очень большие файлы открыть нельзя ввиду того, что для задания позиций и размеров используется INTEGER (в соответствии с сообщением о языке его размер - 4 байта).
Видимо эти LPiece'ы были добавлены бездумно без учёта последствий. К тому же насколько мне известно BlackBox разрабатывали немцы, а им юникод не нужен.