Skif_off
Gold Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору если не изменяет память, всё, что открывает AkelPad, он автоматом преобразует в UTF-16 LE и внутри при своей работе использует строки в UTF-16 LE (по крайней мере, на WinNT+, т.е. unicode-системах): тогда, получается, нужно забыть про UTF-8/ANSI и прочее и исходить из того, что на каждый символ приходится по два байта (или использовать для проверки файл в UTF-16 LE, вычитая из его размера 2 байта на BOM), т.е. 16 384 символа (включая переносы строк, CRLF, например, уже 4е байта - 0x000D + 0x000A). При этом в коде вроде как строка должна заканчиваться символом 0x0000, а возможно, и начинаться с маркера U+FFFE - т.е. размер буфера будет расходоваться ещё и на "служебные", так сказать, символы. В общем, как-то вот так, хитро, хотя и не объясняет, как может быть больше размера буфера - обычно это причина упасть c Access Violation (если вы не ошиблись в рассчётах ) Т.к. не программист, это не более чем мнение немного нахватавшегося, возможно, чем-то поможет, если есть интерес к деталям |