• [^] # Re: Modules non GPL et tours de passe-passe

    Posté par . En réponse à la dépêche Modules non GPL et tours de passe-passe. Évalué à 1.

    Le type PChar est un pointeur sur un caractère et peut être utilisé pour cela.

    Les compilos que j'utilise (Celui de delphi et de freepascal) incluent dans une lib toutes les fonctions standard pour travailler sur les chaines à 0 terminal (Obtention de la taille, d'un caractère, d'un sous chaine, ...)

    La conversion d'un PChar vers le type chaine est quant à elle implicite la fonction Length par exemple travaille sur le type string mais Length(unPChar) marche très bien.

    A noter aussi que les Strings Pascal sont dans les nouveaux compilateurs aussi à 0 terminal (En plus d'avoir le nombre de caractères stoqués) ce qui permets d'utiliser @maString[0] comme une chaine à 0 terminal valide.

    Pour ceux qui ne se sont pas mis à jour depuis le turbo pascal, en pascal object les chaines (appelés AnsiString car on peut aussi instancier les anciennes versions) ont une taille dynamique et ont un compteur de référence qui permets qu'il n'y ait pas de copie de la varaible faite à l'assignement, mais on peut aussi avec la fonction SetLength(String) Fixer une taille.
    Note: Le dépassement est troujours vérifié sur le type String empéchant les buffer overflow.

    Note : L'opérateur @ en pascal donne l'adresse d'une variable.

    Note: Quand je parle de Pascal Objet je n'inclus pas que l'objet, mais aussi toutes les améliorations apportés par l'équipe de borland (Notement A.Heisenberg qui travaille maintenant sur le C# chez Microsoft) qui sont inclues dans FreePascal et en partie dans le compilo GnuPascal.

    Note: A noter que dans sa forme actuelle le Pascal est très proche du C# (en fonctionnalités pas en syntaxe), la personne qui as le plus fait évoluer le Pascal (Créateur du Turbo Pascal) ayant été celui qui as dirigé la conception du C#.