Recupérer le code ASCII de chaque caractere d'une string

Signaler
Messages postés
6
Date d'inscription
mardi 26 juillet 2005
Statut
Membre
Dernière intervention
7 mai 2008
-
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
-
Bonjour :D

j'ai une phrase dans un Edit.text.
Je voudrais faire une boucle pour lister ttes les lettres et faire une action suivant leur caractere ANSII.

J'ai donc commencé par :

var
Longueur: Integer;
i : integer;
L :  string;
begin
Longueur := Length(Edit2.Text);
  for i:=1 to Longueur  do
    begin
        L := Copy(Edit2.Text,i,1);
        // Showmessage ici
    end;
end;

Chaque lettre est donc stockée tour à tour dans la variable L.
Comment puis-je afficher son caractere ANSII
Je sais que c'est avec Ord, mais j'echoue a chaque fois sur des types de variables incompatible.

Merci beaucoup pour toute aide :D

6 réponses

Messages postés
92
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
12 avril 2010

var

L : Char;

Alex
Messages postés
6
Date d'inscription
mardi 26 juillet 2005
Statut
Membre
Dernière intervention
7 mai 2008

Si je met :
L: Char

j'ai une erreur ici :
L := Copy(Edit2.Text,i,1);
Type incompatible 'Char' et 'tcaption'
Messages postés
92
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
12 avril 2010

Oui en effet il faut déclarer une deuxième variable string qui prend la valeur de Edit2.Text

ensuite

L := MaVar[I];

Alex
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13
Bonjour,


var
  Longueur: Integer;
  i : integer;
  L :  char;
...
  Longueur := Length(Edit2.Text);
  for i:=1 to Longueur  do begin
    L := Edit2.Text[i];
    Showmessage(IntToStr(Ord(L)));
  end;
Messages postés
4199
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
28
procedure GetStringCharCodes(const S: String; var CharCodes: TByteDynArray);
var L : integer;
begin
  L := Length(S);
  SetLength(CharCodes, L);
  Move(S[1], CharCodes[0], L);
// ou (mesurer les performances)
//  CopyMemory(@CharCodes[0], PChar(S), L);
end;



 

Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13
... Question perfs, c'est poil kif-kif.