3DVL

Motion Inspector script

Chaines de caractères






 


Les chaînes de caractères sont un type particulier pour 3DVL. Cependant il est possible d’utiliser des opérateurs sur les chaînes de caractères :


var s1 := ‘Chaîne 1’ ;

var s2 := ‘Chaîne 2’ ;


var s3 := s1 + ‘ ‘ + s2 ;

var c := s3[1] ;


Print s3, endl ;

Print c, endl ;



Les opérateurs + , = et [ ] peuvent être utilisés sur les chaînes (comme sur les autres types de variables).

Les chaînes de caractères sont définies par des opérateurs ' ' ou " ".




CharPos


Usage


long CharPos(string s, string c) ;


Description


Détermine la position (première) de la sous chaîne c (en fait un caractère) dans la chaîne s.


Valeur retournée


La valeur retourné est égale à la position de c dans la chaîne. Si aucune occurrence n’a été trouvée, renvoie -1


Exemple



Function ChangeExt(name, ext)

// Changement d'extension du nom d’un fichier

// name (string) : correspond au nom du fichier

// ext (string) : nom de l'entension (ex .trt)

var dot := sizeof(name) - CharPos(-Name, '.'); // position du dernier point

var new := NIL;

if (dot > 1) then //si le nom contient le point ‘.’

var len := sizeof(name);

new := SubString(name, 0, dot-1);//extraction du nom

new := new + ext; //ajout de l'extension

else

new := name + ext;

end;

return new;

end;





Str


Usage


string Str(x)


Description


Converti une variable (sauf les vecteurs) en une chaîne de caractères.



Exemple


Procedure Main()

var name := GetFileName("Fichier C3D|*.c3d");

if OpenFile(name) then

var nc := GetNbCol();

var nl := GetNbLig();

var msg;

msg := "Fichier "+name+endl;

msg := msg + "Nombre de Lignes : " + str(nl)+endl;

msg := msg + "Nombre de Colonnes : "+ str(nc);

Message(msg);

end;

End;




Left



Usage


String Left(String)


Description


Enlève les espaces à gauche de la chaîne de caractères


Valeur Retournée


Renvoie la nouvelle chaîne de caractères


Exemple



Procedure Main()

var string := " Ceci est une chaîne de caractères ";

var l := left(string);

message(l);

End;





Right


Usage


String Right(String)


Description


Enlève les espaces à droite de la chaîne de caractères


Valeur Retournée


Renvoie la nouvelle chaîne de caractères


Exemple



Procedure Main()

var string := " Ceci est une chaîne de caractères ";

var r := Right(string);

message(r);

End;




SubString


Usage


string SubString(string s, long start, long len) ;


Description


Extrait une sous chaîne d’une chaîne de caractères.

La sous chaîne commence à la position start et sa longueur est de len caractères.

Le premier caractère d’une chaîne est à la position 0.


Exemple


Function ChangeExt(name, ext)

// Changement d'extension

// name (string) : correspond au nom du fichier

// ext (string) : nom de l'entension (ex .trt)

var dot := sizeof(name) - CharPos(-Name, '.'); // position du dernier point

var new := NIL;

if (dot > 1) then //si le nom contient

var len := sizeof(name);

new := SubString(name, 0, dot-1);//extraction du nom

new := new + ext; //ajout de l'extension

else

new := name + ext;

end;

return new;

end;





Atol


Usage


long Atol(string s) ;


Description

Converti une chaîne de caractères en un nombre entier.

La chaîne peut contenir (dans l’ordre)

Des espaces et tabulations

Un signe

une suite de nombre

Dans cette fonction, le premier caractère non reconnu arrête la conversion.


Exemple


Procedure Main()

var name := GetFileName("Fichier C3D|*.c3d");

if OpenFile(name) then

var nbc := GetNbCol();

var msg := GetMessage("Numéro de la colonne ", "1");

var nc := atol(msg);


if nc <= nbc then // calcul....

end;


end;

End;




Atof


Usage


double Atof(string s) ;


Description


Atof converti une chaîne de caractères en un nombre réel.

La chaîne peut contenir (dans l’ordre)

Des espaces et tabulations

Un signe

une suite de nombre avec un séparateur ‘.’ pour la partie décimal

un symbole e ou E suivi de nombres.



Exemple


Procedure Main()

var name := GetFileName("Fichier C3D|*.c3d");

if OpenFile(name) then

var nbc := GetNbCol();

var msg := GetMessage("Fréquence de coupure du filtre (Hz)", "50");

var fc := atof(msg);

// ....

end;

End;




Chr


Usage


string Chr(long a) ;


Description


Cette fonction converti un nombre en sont équivalent en caractère ASCII.

Ce nombre doit être compris entre 0 et 255.


Valeur renvoyée


La valeur renvoyé est une chaîne d’un seul caractère


Exemple


Procedure Main()

var Tabulation := Chr(9);

var EndLine := Chr(13);

var Space := Chr(32);

End;



StrUpr


Usage


String Strupr(string)


Description


Conversion d’une chaîne de caractères en majuscule.


Valeur Retournée


Renvoie la nouvelle chaîne de caractères


Exemple


Procedure Main()

var min := "miniscule";

var maj := strupr(min);

message(maj);

End;





Strlwr


Usage


String Strlwr(String)


Description


Conversion d’une chaîne de caractères en minuscule.


Valeur Retournée


Renvoie la nouvelle chaîne de caractères


Exemple


Procedure Main()

var maj := "MAJUSCULE";

var min := strlwr(maj);

message(min);

End;




AsciiToByte

ByteToAscii


Usage


Ivector AsciiToByte(String chaine)

String ByteToAscii(Ivector v)


Description


AsciiToByte : Conversion d’une chaîne de caractères en un tableau d’entier (byte) correspondant aux valeurs de chaque octet de la chaîne de caractères.


ByteToAscii : Conversion d’un tableau d’entier en une chaîne de caractères suivant le codage ASCII.

Les entier doivent être des nombres entre 0 et 255.



Exemple


Procedure Main()

NewOutput();

var s := "ABCDEFG";

var v := AsciiToByte(s);

var i;

var len := sizeof(v);

for(i := 0; i < len; i++)

print v[i]," ";

v[i] := V[i] + 32;

end;

print endl;


var s2 := ByteToAscii(v);

Message(s2);

End;