|
|
|
|
|
|
||
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 " ".
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;