Fórum Função Copy retornando char. É possível? #239709
25/06/2004
0
Estou tendo um probleminha com a função Copy. Vejam parte do código abaixo:
var Str01: Char; Str02: array[0..1] of Char; begin Str02 := ´D´ + 0; Str01 := Copy (Str02, 1, 1); end;
Se tentar compilar o código acima vai acusar um erro do tipo ´Incompatible types: ´Char´ and ´String´. Teoricamente era para funcionar pois não há erro de lógica na função (eu acho) mas o Delphi se recusa a compilar o programa.
Gostaria de saber se tem alguma função que eu possa usar nesse caso ou se há alguma directiva que faça com que o Delphi ignore a checagem dessa parte do cógigo.
[b:fccebc51d3]Obs: [/b:fccebc51d3]Eu não posso alterar os tipos das variáveis Str01 e Str02.
[b:fccebc51d3]Obs2: [/b:fccebc51d3]Eu não procurei no fórum porque não existem palavras-chave para uma procura.
Tatuweb
Curtir tópico
+ 0Posts
25/06/2004
Paulo_amorim
Nesse caso creio que seja mais fácil fazer o código
Str01 := Str2[0];
Espero que ajude
Até+
Gostei + 0
25/06/2004
Beppe
O Delphi acusa erro pq Copy eé uma função que retorna string. É um idioma comum, entretanto, usar Copy com Length = 1, pq pode retornar uma string vazia, quando indexação geraria uma exceção. O erro não é de lógica mas puramente semântico.
Gostei + 0
25/06/2004
Tatuweb
function StrToChar (Str: array of char): Char; var PStr: ^Char; begin PStr := @Str; Result := PStr^; end;
A função acima foi um outro colega que fez para mim mas prefiro usar a dica do Paulo que é bem mais simples. Obrigado pela ajuda. Funcionou perfeitamente. Tão simples que quase não acreditei. :wink:
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)