Ne pourrais tu pas utiliser la fonction StrToInt, et stocker le
résultat dans un byte après avoir vérifier qu'il n'y a pas eu de
problème de dépassement de capacité ?
Pour ByteToStr il suffit d'utiliser IntToStr, la conversion est implicite.
StrToByte n'est possible que si le string indique un nombre entre 0 et 255. On peut faire:
function StrToByte(Str: string): byte;
var
int: integer;
begin
try
int:= StrToInt(str);
if (int>=0) and (int<=255) then
result:= byte(int)
else
result:= 0;
except
result:= 0;
end;
end;
Sinon, pour la fonction que j'avais mise avant, il faut en fait créer un type comme
type
TTabByte= array of byte;
et le mette comme résultat de la fonction.
Si c'est la valeur du caractère ASCII que tu cherches, tu peux l'avoir en faisant :
ShowMessage(IntToStr(Ord(maChaine[i])));
où i représente le numéro du caractère qui t'intéresse...
Et bien, en fait un string occupe un byte par caractère. Tu ne peux pas le mettre dans un seul byte. En revanche tu peux en fair un tableau de byte:
function StrToByte(Str: string): array of byte;
var
i: integer;
begin
SetLength(result, Length(Str));
for i:=0 to Length(Str) do
result[i]:= Byte(Str[i]);
end;
Ici, on prend même le caractère 0, ce qui n'est pas obligatoire.