Accueil > Turbo Pascal > Turbo Pascal – Le traitement du texte

Turbo Pascal – Le traitement du texte

This entry is part 16 of 24 in the series Turbo Pascal - Tutoriel
  1. Détail d’une chaîne de caractères
    1. Concat
    2. Copy
    3. Delete
    4. FillChar
    5. Insert
    6. Pos
    7. Str
    8. Val
  2. La table de caractères ASCII
  3. La casse
    1. StrUpper
    2. StrLower

On a vu comment afficher du texte avec write et writeln. Nous allons
maintenant voir comment formater ce texte.


Détail d’une chaîne de caractères


On a vu dans les variables qu’une chaîne de caractères est un tableau
du type char.

Ainsi, n’ayons pas peur d’écrire :

var MyTexte : array[1..5] Of Char; {Un tableau de Char}

begin
MyTexte[1] := ‘H’;
MyTexte[2] := ‘e’;
MyTexte[3] := ‘l’;
MyTexte[4] := ‘l’;
MyTexte[5] := ‘o’;
writeln(MyTexte); {Affichage du tableau comme si c’était une chaine}
end. {Sortie -> Hello}


Partant de ce principe, on peut facilement modifier n’importe quel caractère d’une chaîne, du
moment que l’on sait la longueur de la chaîne.

Car rappelons que l’on peut limiter la taille du chaîne de caractères à la déclaration. Si on
indique un index supérieur à sa longueur, une erreur se produit.

L’index 0 de la table correspond à la longueur de la chaîne de caractère. On peut ainsi écrire :

var MyTexte : String;

begin
MyTexte := ‘Bonjour le Web!’;
MyTexte[0] := Chr(7); {La chaîne ne fait plus que 7 caractères}
writeln(MyTexte); {Sortie -> Bonjour}
end.


Il existe une multitude de fonctions permettant de triturer du texte :


Concat


Cette fonction permet de concaténer plusieurs chaînes de caractères en une seule.

Elle est équivalente à ces même chaînes « additionnées » :

var MyTexte1 : String;
MyTexte2 : String;
strM1 : String;
strM2 : String;
strM3 : String;

begin
strM1 := ‘Salut! ‘;
strM2 := ‘Les copains! ‘;
strM3 := ‘C »est moi!’;

MyTexte1 := Concat(strM1, strM2, strM3);
MyTexte2 := strM1 + strM2 + strM3;

writeln(’MyTexte1=MyTexte2 : ‘, MyTexte1=MyTexte2); {Affiche TRUE
si les 2 sont identiques}
end.


Copy


Cette fonction retourne une partie bien précise d’une chaîne de caractères en fonction d’une position
specifiée. Voici la syntaxe :

Copy(Chaine : String, Debut : Integer, Long : Integer) : String;

Chaine représente la chaîne dans laquelle extraire les caractères, Debut
définit le caractère où commencer la copie et Long la longueur de la copie :

var MyTexte : String;

begin
MyTexte := ‘123456789′;
writeln(Copy(MyTexte, 3, 5)); {Sortie -> 34567}
writeln(Copy(MyTexte, 7, 3)); {Sortie -> 789}
end.


Delete


Cette procédure supprime des caractères d’une chaîne de caractères. Voici la syntaxe :

Delete(Chaine : String, Debut : Integer, Long : Integer);

Chaine représente la chaîne dans laquelle supprimer les caractères, Debut
définit le caractère où commencer la suppression et Long la longueur de la suppression :

var MyTexte : String;

begin
{123456789012345678901}
MyTexte := ‘Ceci est un gros trou’;
Delete(MyTexte, 13, 5); {Suppression de 5 caractères}
writeln(MyTexte); {Sortie -> Ceci est un trou}
end.


FillChar


FillChar permet d’inserer un caractère (type Char) ou un chiffre (type Byte)
un nombre de fois spécifiée dans une chaîne de caractères. Voici la syntaxe :

FillChar(Chaine : String, Nombre, Valeur);

FillChar correspond à la chaîne de caractères dans laquelle inserer Nombre
de fois Valeur :

var MyTexte : String[80];

begin
FillChar(MyTexte, 80, ‘$’);
writeln(MyTexte); {80 $}
end.


Insert


Cette procédure insere des caractères dans une chaîne de caractères. Voici la syntaxe :

Insert(Source : String, Destination : String, Debut : Integer);

Source représente la chaîne qui va être insérée dans la chaîne Destination
à partir du caractère Debut :

var MyTexte : String;
MyEnorme : String;

begin
MyTexte := ‘Ceci est un trou’;
MyEnorme := ‘enorme ‘;
Insert(MyEnorme, MyTexte, 13); {Insertion de la chaine MyEnorme dans MyTexte}
writeln(MyTexte); {Sortie -> Ceci est un enorme trou}
end.


Pos


Pos effectue la recherche d’une chaîne de caractère dans une autre. Voici sa syntaxe :

Pos(Recherche : String, Chaine : String) : Byte;

Recherche représente l’ocurence à rechercher dans la chaîne Chaine. La
valeur renvoyée correspond à la position de la chaine Recherche. En cas d’echec,
la valeur renvoyée est 0 :

var MyTexte : String;

begin
MyTexte := ‘Ceci est une phrase de sept mots’;
writeln(Pos(’phrase’, MyTexte)); {Sortie -> 14}
end.


Str


Cette procédure permet de convertir une variable numérique en une chaîne de caractères. Voici
la syntaxe :

Str(Nombre : Real, Chaine : String);

Nombre represente la variable numérique et Chaine, la chaîne de destination :

var MyNumber : Real;
MyTexte : String;

begin
MyNumber := Pi;
Str(MyNumber, MyTexte);
writeln(MyTexte);
end.


Val


Cette procédure effectue l’opération inverse à la procédure Str : elle convertit
une variable numérique en une chaîne de caractères. Voici la syntaxe :

Val(Chaine : String, Nombre : Real, Code : Integer);

Chaine represente la chaîne de caractère et Nombre, la variable de destination.
La variable Code renvoi un code d’erreur corespondant au caractère fautif de la chaîne
de caractères en cas d’erreur :

var MyNumber : Real;
MyTexte : String;
MyCode : Integer;

begin
MyTexte := ‘123456′;
Val(MyTexte, MyNumber, MyCode);
writeln(MyNumber);
end.


La table de caractères ASCII


La table de caractères ASCII est une table où sont regroupés les 256 caractères (numérotés de
0 à 255) pouvant être utilisés.

On peut afficher ces caractères en maintenant la touche Alt enfoncée et en tapant le code
du caractère désirés.

On peut aussi utiliser la fonction Chr. Cette fonction se charge d’afficher le caractère
ASCII correspondant au rang qui lui est transmis en argument.

Le programme suivant affiche les 256 caractères de la table :

var i : integer;

begin
for i := 0 To 255 Do
writeln(Chr(i));
end.


On peut aussi écrire le caractère en utilisant le caractère dièse (#) comme préfixe :

begin
writeln(#177);
end.

La fonction Ord effectue l’opération inverse et renvoi le code correspondant d’un caractère :

begin
writeln(Ord(’A')); {Renvoi 65}
end.


La casse


On peut modifier facilement la casse (MAJUSCULES/minuscules) d’une chaîne de caractères à l’aide
des fonctions suivantes :


StrUpper


Renvoi la chaîne de caractères transmise en argument en majuscules. Nécessite l’unité Strings :

uses strings;

begin
writeln(StrUpper(’bonjour’)); {Sortie -> BONJOUR}
end.


StrLower


Renvoi la chaîne de caractères transmise en argument en minuscules. Nécessite l’unité Strings :

uses strings;

begin
writeln(StrLower(’BONJOUR’)); {Sortie -> bonjour}
end.

Series Navigation«Turbo Pascal – Les mathsTurbo Pascal – Affichage du texte»
Categories: Turbo Pascal Tags:
  1. cheikh bamba diop
    27/04/2004 à 23:49 | #1

    comment extraire un caractaire dans une chaine de caractaire?

  1. Pas encore de trackbacks