Função Copy retornando char. É possível?
Olá pessoal,
Estou tendo um probleminha com a função Copy. Vejam parte do código abaixo:
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.
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
Curtidas 0
Respostas
Paulo_amorim
25/06/2004
Olá
Nesse caso creio que seja mais fácil fazer o código
Espero que ajude
Até+
Nesse caso creio que seja mais fácil fazer o código
Str01 := Str2[0];
Espero que ajude
Até+
GOSTEI 0
Beppe
25/06/2004
Vc pode fazer como o Amorim falou, esse é a maneira correta de obter um elemento(caractere) de um array(string).
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.
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
Tatuweb
25/06/2004
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