Delphi 2006 system.delete для широких строк?
-
20-09-2019 - |
Вопрос
существует ли аналог процедуры удаления, который можно использовать для широких строк?Или мне следует просто скопировать и объединить полученные WideStrings?
Решение
Удаление — это «магическая функция компилятора».Компилятор использует свои знания об основном типе данных для соответствующей обработки операции.Для большинства массивов он может просто преобразовать информацию, которую вы записываете в свой код, в фактическое смещение и количество байтов, которые необходимо удалить, и передать это в функцию. _Delete
Вместо этого процедура сборки.Для WideStrings, как отметил Александр, есть специальная процедура _WStrDelete.
Нижняя граница:Если вы можете передать массив или строку в функцию Delete и она скомпилируется, все должно работать нормально.
Другие советы
Внутренние функции RTL, такие как «Удалить», «Вставить», «Длина» и т. д., работают как для строк Ansi, так и для широких строк.
Например, вызов удаления для WideString преобразуется в вызов WStrDelete (см. System.pas).