DELPHI TUTORIEL : COMMENT MANIPULER
LES CHAINES DE CARACTÈRES ?
Comment manipuler les chaines de caractères avec Delphi :

Vous trouverez sur cette page des exemples pour manipuler les chaines de caractères avec Delphi. Comparaison de chaine de caractères. Convertir des caractères en minuscules, en majuscules. Concaténation une suite de chaînes. Rechercher une sous-chaîne dans une chaîne. Etc...
NB : Avant d'utilisé l'une des fonctions suivante n'oublier pas d'ajouter StrUtils à uses

AnsiContainsStr :
function AnsiContainsStr(const AText, ASubText: string): Boolean;

Indique si une sous-chaîne apparaît dans une chaîne (en tenant compte des majuscules minuscules).
Renvoie true si la sous-chaîne apparaît dans la chaîne spécifiée.

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
begin
 if AnsiContainsStr('YAKAFAIRE.EU','FAI')
    then Label1.Caption := 'La sous-chaîne apparaît dans la chaîne spécifiée'
    else Label1.Caption := 'La sous-chaîne n''apparaît pas dans la chaîne spécifiée';
end;
AnsiContainsText :
function AnsiContainsText(const AText, ASubText: string): Boolean;

Indique si une sous-chaîne apparaît dans une chaîne (sans tenir compte des majuscules minuscules).
Renvoie true si la sous-chaîne apparaît dans la chaîne spécifiée.

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
begin
 if AnsiContainsText('YAKAFAIRE.EU','fAi')
    then Label1.Caption := 'La sous-chaîne apparaît dans la chaîne spécifiée'
    else Label1.Caption := 'La sous-chaîne n''apparaît pas dans la chaîne spécifiée';
end;
AnsiEndsStr - EndsStr :
function AnsiEndsStr(const ASubText, AText: string): Boolean;
function EndsStr(const ASubText, AText: string): Boolean;

Indique si la chaîne se termine par la sous-chaîne (en tenant compte des majuscules minuscules).
Renvoie true si la chaîne se termine par la sous-chaîne sinon false.

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
begin
 if AnsiEndsStr('EU','YAKAFAIRE.EU')
    then Label1.Caption := 'la chaîne se termine par la sous-chaîne'
    else Label1.Caption := 'la chaîne ne se termine pas par la sous-chaîne';
end;
AnsiEndsText - EndsText :
function AnsiEndsText(const ASubText, AText: string): Boolean;
function EndsText(const ASubText, AText: string): Boolean;

Indique si la chaîne se termine par la sous-chaîne (sans tenir compte des majuscules minuscules).
Renvoie true si la chaîne se termine par la sous-chaîne sinon false.

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
begin
 if AnsiEndsText('eu','YAKAFAIRE.EU')
    then Label1.Caption := 'la chaîne se termine par la sous-chaîne'
    else Label1.Caption := 'la chaîne ne se termine pas par la sous-chaîne';
end;
AnsiIndexStr - IndexStr :
function AnsiIndexStr(const AText: string; const AValues: array of string): Integer;
function IndexStr(const AText: string; const AValues: array of string): Integer; 

Vérifie si l’une des chaînes de StringList correspond exactement à la chaîne Source. (en tenant compte des majuscules minuscules).
Renvoie son index si une correspondance est trouvée, son index (basé sur 0) est renvoyé. Sinon, -1 est renvoyé.

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
var nom : string;
    position : Integer;
begin
  nom := 'HERVE';
  position := AnsiIndexStr(nom, ['BERNARD', 'MIKE', 'HERVE', 'JEAN']);
  if position > -1 then
  Label1.Caption :='Correspondance trouvée position : ' + inttostr(position)
  else
  Label1.Caption :='Correspondance non trouvée';
end;
AnsiIndexText - IndexText :
function AnsiIndexText(const AText: string; const AValues: array of string): Integer;
function IndexText(const AText: string; const AValues: array of string): Integer;

Vérifie si l’une des chaînes de StringList correspond à la chaîne Source. (sans tenir compte des majuscules minuscules).
Renvoie son index si une correspondance est trouvée, son index (basé sur 0) est renvoyé. Sinon, -1 est renvoyé.

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
var nom : string;
    position : Integer;
begin
  nom := 'hErVe';
  position := AnsiIndexText(nom, ['BERNARD', 'MIKE', 'HERVE', 'JEAN']);
  if position > -1 then
  Label1.Caption :='Correspondance trouvée position : ' + inttostr(position)
  else
  Label1.Caption :='Correspondance non trouvée';
end;
AnsiLeftStr - LeftStr:
function AnsiLeftStr(const AText: string; const ACount: Integer): string;
function LeftStr(const AText: AnsiString; const ACount: Integer): AnsiString;
function LeftStr(const AText: string; const ACount: Integer): string; overload;

Renvoie la sous-chaîne de longueur spécifiée à partir du début d'une chaîne.

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := AnsiLeftStr('YAKAFAIRE.EU',4); 
// Label1.Caption = YAKA
end;
AnsiMatchStr - MatchStr :
function AnsiMatchStr(const AText: string; const AValues: array of string): Boolean;
function MatchStr(const AText: string; const AValues: array of string): Boolean; 

Vérifie si l’une des chaînes de StringList correspond exactement à la chaîne Source. (en tenant compte des majuscules minuscules).
Renvoie true Si une correspondance est trouvée, sinon false.

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
var nom : string;
begin
  nom := 'HERVE';
  if AnsiMatchStr(nom, ['BERNARD', 'MIKE', 'HERVE', 'JEAN'])
  then Label1.Caption :=('Une correspondance est trouvée.')
  else Label1.Caption :=('Pas de correspondance trouvée.');
end;
AnsiMatchText - MatchText :
function AnsiMatchText(const AText: string; const AValues: array of string): Boolean;
function MatchText(const AText: string; const AValues: array of string): Boolean; 

Vérifie si l’une des chaînes de StringList correspond à la chaîne Source. (sans tenir compte des majuscules minuscules).
Renvoie true Si une correspondance est trouvée, sinon false.

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
var nom : string;
begin
  nom := 'HeRvE';
  if AnsiMatchText(nom, ['BERNARD', 'MIKE', 'HERVE', 'JEAN'])
  then Label1.Caption :=('Une correspondance est trouvée.')
  else Label1.Caption :=('Pas de correspondance trouvée.');
end;
AnsiMidStr - MidStr :
function AnsiMidStr(const AText: string; const AStart, ACount: Integer): string;
function MidStr(const AText: AnsiString; const AStart, ACount: Integer): AnsiString; overload;
function MidStr(const AText: string; const AStart, ACount: Integer): string; overload;

Renvoie la sous-chaîne d'une chaîne d'après la longueur et la position spécifiées.

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := AnsiMidStr('YAKAFAIRE.EU',5,5); 
// Label1.Caption = FAIRE
end;
AnsiReplaceStr - ReplaceStr :
function AnsiReplaceStr(const AText, AFromText, AToText: string): string;
function ReplaceStr(const AText, AFromText, AToText: string): string; 

Remplace toutes les occurrences d'une sous-chaîne au sein d'une chaîne, (en tenant compte des majuscules minuscules).

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := AnsiReplaceStr('YiKiFiIRE.EU','i','A');
// Label1.Caption = YAKAFAIRE.EU
end;
AnsiReplaceText - ReplaceText :
function AnsiReplaceText(const AText, AFromText, AToText: string): string;
function ReplaceText(const AText, AFromText, AToText: string): string; 

Remplace toutes les occurrences d'une sous-chaîne au sein d'une chaîne, (sans tenir compte des majuscules minuscules).

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := AnsiReplaceText('YiKiFiIRE.EU','i','A');
// Label1.Caption = YAKAFAARE.EU
end;
AnsiResemblesText - ResemblesText :
function AnsiResemblesText(const AText, AOther: string): Boolean;
function ResemblesText(const AText, AOther: string): Boolean; 

Renvoie true Si les deux chaînes sont similaires, (sans tenir compte des majuscules minuscules).

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
begin
if AnsiResemblesText('yakafaire.eu','YAKAFAIRE.EU')
    then Label1.Caption := 'Les deux chaînes sont similaires.'
    else Label1.Caption := 'Les deux chaînes sont differentes.';
end;
AnsiReverseString - ReverseString :
function AnsiReverseString(const AText: string): string;
function ReverseString(const AText: string): string;

Renvoie la chaîne inversée.

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
begin
   Label1.Caption := AnsiReverseString('YAKAFAIRE.EU');
   // Label1.Caption = UE.ERIAFAKAY
end;
AnsiRightStr - RightStr :
function AnsiRightStr(const AText: string; const ACount: Integer): string;
function RightStr(const AText: AnsiString; const ACount: Integer): AnsiString; overload;
function RightStr(const AText: string; const ACount: Integer): string; overload;

Renvoie la sous-chaîne de longueur spécifiée à partir de la fin d'une chaîne.

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := := AnsiRightStr('YAKAFAIRE.EU',8);
// Label1.Caption = FAIRE.EU
end;
AnsiStartsStr - StartsStr :
function AnsiStartsStr(const ASubText, AText: string): Boolean;
function StartsStr(const ASubText, AText: string): Boolean; 

Indique si la chaîne commence par la sous-chaîne (en tenant compte des majuscules minuscules).
Renvoie true si la chaîne commence par la sous-chaîne sinon false.

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
begin
 if AnsiStartsStr('YAK','YAKAFAIRE.EU')
    then Label1.Caption := 'la chaîne commence par la sous-chaîne'
    else Label1.Caption := 'la chaîne ne commence pas par la sous-chaîne';
end;
AnsiStartsText - StartsText :
function AnsiStartsText(const ASubText, AText: string): Boolean;
function StartsText(const ASubText, AText: string): Boolean; 

Indique si la chaîne commence par la sous-chaîne (sans tenir compte des majuscules minuscules).
Renvoie true si la chaîne commence par la sous-chaîne sinon false.

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
begin
 if AnsiStartsText('yak','YAKAFAIRE.EU')
    then Label1.Caption := 'la chaîne commence par la sous-chaîne'
    else Label1.Caption := 'la chaîne ne commence pas par la sous-chaîne';
end;
ContainsStr :
function ContainsStr(const AText, ASubText: string): Boolean;

Indique si la chaîne contient la sous-chaîne (en tenant compte des majuscules minuscules).
Renvoie true si la chaîne contient la sous-chaîne sinon false.

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
begin
if ContainsStr('YAKAFAIRE.EU LE SITE','KAF')
    then Label1.Caption := 'la chaîne contient la sous-chaîne'
    else Label1.Caption := 'la chaîne ne contient pas la sous-chaîne';
end;
ContainsText :
function ContainsText(const AText, ASubText: string): Boolean;

Indique si la chaîne contient la sous-chaîne (sans tenir compte des majuscules minuscules).
Renvoie true si la chaîne contient la sous-chaîne sinon false.

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
begin
if ContainsText('YAKAFAIRE.EU LE SITE','kAf')
    then Label1.Caption := 'la chaîne contient la sous-chaîne'
    else Label1.Caption := 'la chaîne ne contient pas la sous-chaîne';
end;
DupeString :
function DupeString(const AText: string; ACount: Integer): string;

Renvoie la concaténation d'une chaîne avec elle-même à hauteur d'un nombre donné de répétitions.

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := := := DupeString('Ha',5)+' (MDR)';
// Label1.Caption = HaHaHaHaHa (MDR)
end;
Length :
function Length(S: string or dynamic array): Integer;

Renvoie le nombre de caractères d'une chaîne ou le nombre d'éléments d'un tableau.

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
var nb : integer;
begin
nb := Length('YAKAFAIRE.EU');
Label1.Caption := IntToStr(nb);
// Label1.Caption = 12
end;
Comment récupérer le code ASCII d'un caractère ?
procedure TForm1.Button1Click(Sender: TObject);
var i : integer;
chaine : string;
begin
chaine := 'YAKAFAIRE.EU';
for i := 1 to length(chaine) do  begin
Memo1.Lines.Add(chaine[i]+' = caractère '+IntToStr(Ord(chaine[i])));
// Résultat Memo1
// Y = caractère 89
// A = caractère 65
// K = caractère 75
// A = caractère 65
// F = caractère 70
// A = caractère 65
// I = caractère 73
// R = caractère 82
// E = caractère 69
// . = caractère 46
// E = caractère 69
// U = caractère 85
end;
PosEx :
function PosEx(const SubStr, S: string; Offset: Integer): Integer;

Renvoie l'index de la première occurrence d'une sous-chaîne dans une chaîne. (en tenant compte des majuscules minuscules).

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
begin
 Label1.Caption := IntToStr(PosEx('fa', 'yakafaire.eu', 2));
 // Label1.Caption = 5
end;
RandomFrom :
function RandomFrom(const AValues: array of string): string;

Renvoie un élément choisi au hasard dans un tableau.

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
begin
 Label1.Caption :=  RandomFrom(['BERNARD', 'MIKE', 'HERVE', 'JEAN']);
// Label1.Caption = Renvoie un nom du tableau choisi au hasard.
end;
StuffString :
function StuffString(const AText: string; AStart, ALength: Cardinal; const ASubText: string): string;

Insère une sous-chaîne dans une autre chaîne, en remplaçant les caractères ALength à la position AStart.

Exemple :
procedure TForm1.Button1Click(Sender: TObject);
var source, cible : String;
begin
  source := 'YAKATRAIRE.EU';
  cible := StuffString(source, 5, 2, 'F');
  Label1.Caption :=  'Source = '+source;
  Label2.Caption := 'Cible = '+cible;
  
  // Label1.Caption = YAKATRAIRE.EU
  // Label2.Caption = YAKAFAIRE.EU
end;

1419 visites depuis le 06/01/2023