Section courante

A propos

Section administrative du site

COPY

Copie
Turbo Pascal 1+ System

Syntaxe

Function Copy(S:String; Index, Count: Integer):String;

Paramètres

Nom Description
S Ce paramètre permet d'indiquer la chaîne de caractères
Index Ce paramètre permet d'indiquer la position dans la chaîne de caractères
Count Ce paramètre permet d'indiquer la longueur du morceau de la chaîne de caractères

Description

Cette fonction permet d'extraire un sous-chaîne de caractères dans une chaîne de caractères.

Remarques

Exemples

Voici quelques exemples typiques de l'utilisation de cette fonction :

Essayer maintenant !
  1. Program CopySamples;
  2.  
  3. Const
  4.  chaine:String = 'Bonjour le monde !';
  5.  
  6. BEGIN
  7.  WriteLn(Copy(chaine,1,255));
  8.  WriteLn(Copy(chaine,4,255));
  9.  WriteLn(Copy(chaine,4,7));
  10. END.

on obtiendra le résultat suivant :

Bonjour le monde !
jour le monde !
jour le

Cet exemple permet d'utiliser une fonction similaire à la fonction Left du Visual Basic :

Essayer maintenant !
  1. Program LeftSamples;
  2.  
  3. Function Left(S:String;Num:Byte):String;Assembler;ASM
  4.  CLD
  5.  LES DI,@Result
  6.  PUSH DS
  7.   LDS SI,S
  8.   MOV CL,DS:[SI]
  9.   MOV CH,0
  10.   INC CX
  11.   PUSH DI;REP MOVSB;POP DI
  12.   MOV AL,Num
  13.   CMP ES:[DI],AL
  14.   JB  @1
  15.   MOV ES:[DI],AL
  16. @1:
  17.  POP DS
  18. END;
  19.  
  20. BEGIN
  21.  WriteLn('Left("Gladir.com",6) = ',Left('Gladir.com',6));
  22.  WriteLn('Left("Gladir.com",10) = ',Left('Gladir.com',10));
  23.  WriteLn('Left(""Gladir.com"",15) = ',Left('Gladir.com',15));
  24. END.

on obtiendra le résultat suivant :

Left("Gladir.com",6) = Gladir
Left("Gladir.com",10) = Gladir.com
Left("Gladir.com",15) = Gladir.com

Cet exemple permet de changer un format «jj/mm/aaa» en «mm/jj/aaa» :

Essayer maintenant !
  1. Program JMAToMJA;
  2.  
  3. Function JMA2MJA(Const S:String):String;Begin
  4.  JMA2MJA := Copy(S,4,2) + '/' +  Copy(S,1,2) + Copy(S,6,255);
  5. End;
  6.  
  7. BEGIN
  8.  WriteLn('jj/mm/aaa=',JMA2MJA('jj/mm/aaa'));
  9.  WriteLn('31/12/101=',JMA2MJA('31/12/101'));
  10.  WriteLn('01/01/101=',JMA2MJA('31/12/101'));
  11.  WriteLn('jj/mm/aaaa=',JMA2MJA('jj/mm/aaaa'));
  12.  WriteLn('31/09/2001=',JMA2MJA('31/09/2001'));
  13. END.

on obtiendra le résultat suivant :

jj/mm/aaa=mm/jj/aaa
31/12/101=12/31/101
01/01/101=12/31/101
jj/mm/aaaa=mm/jj/aaaa
31/09/2001=09/31/2001

Voir également

Langage de programmation - Turbo Pascal - Référence de procédures et fonctions - CONCAT
Langage de programmation - Turbo Pascal - Référence de procédures et fonctions - DELETE
Langage de programmation - Turbo Pascal - Référence de procédures et fonctions - INSERT
Langage de programmation - Turbo Pascal - Référence de procédures et fonctions - LENGTH
Langage de programmation - Turbo Pascal - Référence de procédures et fonctions - POS

Références

Aide-mémoire de Turbo Pascal versions de 3 à 6, Edition Marabout, De Groote, Virga, 1992, ISBN: 2-501-01833-8, page 134.
Le grand livre du Turbo & Borland Pascal 7.0, Edition Micro Application, Reiner Scholles, 1993, ISBN: 2-86899-873-9, page 1219.

Dernière mise à jour : Dimanche, le 25 janvier 2015