IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Pascal Discussion :

[LG]conversion C-> pascal : pointeur sur chaines de caractere


Sujet :

Langage Pascal

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 89
    Points : 67
    Points
    67
    Par défaut [LG]conversion C-> pascal : pointeur sur chaines de caractere
    Bonjour,

    Je ne connais pas la programmation en C.

    Je cherche à traduire un algorithme C en pascal.

    L'algorithme contient comme données des pointeurs sur chaine de caracteres.
    char * Chaine1;

    Et passe cette chaine à une fonction priori en passant le pointeur :
    Convertir(&Chaine1).

    La déclaration de la fonction convertir en pascal est donc :
    function Convertir(Chaine1: Pchar);


    Mais comment définir la variable Chaine1 dans le programme pascal? Je crois qu'en C les chaines de caracteres sont caractérisées par un zéro terminal. Ce qui n'est pas le cas des chaines "string" en pascal.

    Merci pour votre aide.

    Pigoulou.

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 938
    Points : 59 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    En général, les chaînes AZT sont déclarées en Pascal sous la forme
    Je ne sais pas comment ton code est rédigé mais tu pourrais peut-être utiliser la fonction StrPCopy ?
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    En général, les chaînes AZT (dites chaîne ASCIIZ) sont représentées en Pascal par le type PChar.

    On a donc char * équivalent à PChar (le type PChar est un pointeur et est défini de manière simple comme PChar = ^Char : c'est donc strictement la même chose).

    Vu l'appel de ta fonction, je traduirais plus comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    procedure Convertir(var S: PChar);
    Et l'appel se ferait comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var
      Chaine1: PChar;
    begin
      ...
      Convertir(Chaine1);
      ...
    La formulation que propose Alcatîz est utile pour passer du type string au type PChar. Mais si tu utilises directement les PChar, ce problème ne se pose plus.

    Attention toutefois, les PChar se comportement exactement comme en C, il faut bien penser à les allouer avec GetMem et à les libérer avec FreeMem.
    Cet inconvénient n'existe bien entendu pas avec les tring et les tableaux de caractères.

    A noter que la fonction StrPCopy se situe dans l'unité Strings sous Turbo Pascal et dans l'unité SysUtils sous Delphi.

    @++
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 89
    Points : 67
    Points
    67
    Par défaut
    merci pour toutes ces infos

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pointeurs sur chaine
    Par hugo1992 dans le forum C
    Réponses: 10
    Dernier message: 28/10/2007, 23h05
  2. Requete sur chaine de caractere
    Par ALEXM dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/09/2007, 16h30
  3. recherche sql sur chaines de caractere
    Par alexkickstand dans le forum Langage SQL
    Réponses: 5
    Dernier message: 31/08/2007, 09h37
  4. pointeurs et chaines de caracteres
    Par lylia SI dans le forum Débuter
    Réponses: 2
    Dernier message: 19/08/2007, 19h00
  5. operation sur chaine de caracteres
    Par aliboubou dans le forum Access
    Réponses: 11
    Dernier message: 11/01/2007, 11h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo