Delphi 2006 System.Delete para Wideestrings?
-
20-09-2019 - |
Pergunta
Existe uma contrapartida do procedimento de exclusão que possa ser usado para as amplas redes? Ou devo apenas usar a cópia e concatenar os widestrings resultantes?
Solução
Delete é uma função "Magic do compilador". O compilador usa seu conhecimento do tipo de dados básico para lidar com a operação adequadamente. Para a maioria das matrizes, ele pode simplesmente traduzir as informações que você escreve em seu código para o deslocamento real e o número de bytes que precisam ser excluídos e passa isso para o _Delete
rotina de montagem em vez disso. Para Widestrings, como Alexander apontou, ele tem uma rotina especial de _wstrdelete.
Conclusão: se você pode passar uma matriz ou string para excluir e ela compila, ela deve funcionar bem.
Outras dicas
Funções internas de RTL como excluir, inserir, comprimento, etc. funciona tanto para ANSI quanto de cordas largas.
Por exemplo, a exclusão de chamadas no widestring é transformada em chamada WSTRDELETE (consulte System.PAs).