Nettoyer une chaîne en supprimant les espaces multiples
Par Delphi Source - March 22, 2026 · Vues: 12 · Catégories: Snippets · Tags: #Texte

Nettoyer une chaîne en supprimant les espaces multiples

Il est fréquent de devoir nettoyer une chaîne contenant des espaces superflus : espaces en début ou fin de ligne, ou plusieurs espaces consécutifs entre les mots.

Voici une fonction Delphi simple et efficace qui ramène tout cela à un espacement propre, avec un seul espace entre chaque mot.

function RemoveExtraSpaces(const InputText: string): string;
var
  I: Integer;
  CleanText: string;
  InsideWord: Boolean;
begin
  CleanText := '';
  InsideWord := False;
  I := 1;

  while (I <= Length(InputText)) and (InputText[I] = ' ') do
    Inc(I);

  while I <= Length(InputText) do
  begin
    if InputText[I] <> ' ' then
    begin
      CleanText := CleanText + InputText[I];
      InsideWord := True;
    end
    else if InsideWord then
    begin
      CleanText := CleanText + ' ';
      InsideWord := False;

      while (I + 1 <= Length(InputText)) and (InputText[I + 1] = ' ') do
        Inc(I);
    end;
    Inc(I);
  end;

  if (Length(CleanText) > 0) and (CleanText[Length(CleanText)] = ' ') then
    Delete(CleanText, Length(CleanText), 1);

  Result := CleanText;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  RawText, TrimmedText: string;
begin
  RawText := '   Hello   world   from   Delphi   ';
  TrimmedText := RemoveExtraSpaces(RawText);
  ShowMessage(TrimmedText); // "Hello world from Delphi"
end;


Un petit clic (J'aime) qui fait plaisir !