Символ "00"
Символ "00"
Есть файл в кодировке 1200 (UTF-16) в котором есть символ "00".
Редактор фара спотыкается об него. В буфер не копирует и ставить не умеет. Можно заставить?
Редактор фара спотыкается об него. В буфер не копирует и ставить не умеет. Можно заставить?
Занимаюсь роликами и SEO, обращайтесь
- zg
- zero-gravity
- Posts: 6016
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Символ "00"
так в стандартном CF_UNICODETEXT просто ссылка на обычную сишную строку. обсуждали совсем недавно.
- HaRT
- Moderator
- Posts: 10823
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Символ "00"
Неужто даже
GlobalSize
не помогает не обрывать строку раньше времени?
Где-то тут на форуме? Что-то я не смог найти…
Фар есть инструмент, а не нянька. © 2009 DrKnS
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
- zg
- zero-gravity
- Posts: 6016
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Символ "00"
CF_UNICODETEXT
Unicode text format. Each line ends with a carriage return/linefeed (CR-LF) combination. A null character signals the end of the data.
да.
Символ "00"
Ну во-первых ни разу не cсылка на строку. HGLOBAL содержит весь текст.
Во вторых GlobalSize(hMem) может быть больше запрошенного размера,
хотя у себя (Win10 x64) под отладчиком мне такого получить не удалось.
Даже если такое произойдёт, для своих блоков мы можем это отследить и добить блок до выделенного размера
(например пробелами). Кроме того, так как дополнительный терминирующий \0 пишут все (и мы тоже),
реальный конец текста найти можно (для своих блоков гарантированно).
Проблема может быть только для чужих блоков. Надо выяснить когда запрошенный и реальный размер HGLOBAL
могут не совпадать, я бы не удивился, если на современных системах такого вообще не может быть...
Во вторых GlobalSize(hMem) может быть больше запрошенного размера,
хотя у себя (Win10 x64) под отладчиком мне такого получить не удалось.
Даже если такое произойдёт, для своих блоков мы можем это отследить и добить блок до выделенного размера
(например пробелами). Кроме того, так как дополнительный терминирующий \0 пишут все (и мы тоже),
реальный конец текста найти можно (для своих блоков гарантированно).
Проблема может быть только для чужих блоков. Надо выяснить когда запрошенный и реальный размер HGLOBAL
могут не совпадать, я бы не удивился, если на современных системах такого вообще не может быть...
- zg
- zero-gravity
- Posts: 6016
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Символ "00"
это как при реаллоке в меньший размер адрес не может поменяться. ну-ну.
почему нельзя добавить свой формат с размером и когда можно — использовать его?
почему нельзя добавить свой формат с размером и когда можно — использовать его?
Символ "00"
аналогия с реаллоком вряд ли уместна.
речь только о том, что
'свой' можно, просто добавить блок с размером, и если он есть - использовать.
но вставка чужих блоков останется кривой.
речь только о том, что
GlobalSize(GlobalAlloc(size, flags)) >= size
(согласно MSDN).'свой' можно, просто добавить блок с размером, и если он есть - использовать.
но вставка чужих блоков останется кривой.
- HaRT
- Moderator
- Posts: 10823
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Символ "00"
Мне тоже думалось что-то такое.
Можно сделать какой-нибудь Paste Special:
Фар есть инструмент, а не нянька. © 2009 DrKnS
- zg
- zero-gravity
- Posts: 6016
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Символ "00"
с чего вдруг? есть размер, вставляем с размером, нет, как сейчас.2useven10 wrote:но вставка чужих блоков останется кривой.