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]Type mismatch


Sujet :

Langage Pascal

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2002
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 42
    Points : 23
    Points
    23
    Par défaut [LG]Type mismatch
    Bonjour a tous encore un petit soucis, j'ai un type mismatch en code d'erreur sur ma varable NOM qui en fait recupere le nom de ma machine, j'ai voulu la rajouter car je voulais rajouter du texte du style LE NOM DE VOTRE MACHINE EST : NOM, j'ai pas d'autre initiative puique dans le messagebox je meux mettre qu'une variable sans le texte... enfin voila je sais pas trop quoi faire !!!! Merci

    Au passage est ce qu'on pourait m'expliquer en detail la declaration de wsdata et l'intialisation de winsock le $0001, ça m'aiderais a comprendre ce que j'écris j'ai rien trouvé sur le forum et sur google.Fr non plus merci !!!



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    program nouveau;
     
    uses crt,sysutils,windows,winsock;
     
     
     
     
    var nom, nom1 : array [0..255] of char;
     
    wsdata:wsadata;
     
     
     
     
     
     
    begin
     
     
    wsastartup ($0001,wsdata);
     
    gethostname ( nom ,sizeof (nom));
     
     
     
    nom1 :=  'le nom de votre machine est :'+ nom;
     
    messagebox (0,nom1,'NOM DE MACHINE',64);
     
    end.

  2. #2
    Membre à l'essai
    Inscrit en
    Novembre 2002
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 42
    Points : 23
    Points
    23
    Par défaut [RESOLU]
    C ok j'ai trouvé on peut pas concatené un type array avec une chaie de caractere merci !!! a tous et a moi lol !!!

  3. #3
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Salut!

    Je me suis fait 2 fonctions (stpc & pcst) pour convertir une chaîne en pchar (array of char) et inversement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    {-------------------------------------------------------------------------}
    { CONVERT CHAR TO ASCII BYTE (inv Chr)                                    }
    {-------------------------------------------------------------------------}
    function chtoby(mch:string):byte;
    var xch,cht:integer;
    {$s-}begin xch:=0;repeat cht:=-1;
    if copy(mch,1,1)=chr(xch) then cht:=xch;inc(xch);
    Until&#40;xch>255&#41;or&#40;cht<>-1&#41;;
    if&#40;xch>255&#41;then chtoby&#58;=0 else chtoby&#58;=cht;end;
     
    &#123;-------------------------------------------------------------------------&#125;
    &#123; RETURN LENGTH OF PCHAR                                                  &#125;
    &#123;-------------------------------------------------------------------------&#125;
    function pclen&#40;pc&#58;pchar&#41;&#58;word; 
    var x&#58;word;
    begin pclen&#58;=0;
    x&#58;=0;repeat if&#40;pc&#91;x&#93;<>#0&#41;then inc&#40;x&#41;;
    until&#40;x>=$FFFF&#41;or&#40;pc&#91;x&#93;=#0&#41;;
    if&#40;pc&#91;x&#93;=#0&#41;then pclen&#58;=x;end;
     
    &#123;-------------------------------------------------------------------------&#125;
    &#123; CONVERT STRING TO PCHAR                                                 &#125;
    &#123;-------------------------------------------------------------------------&#125;
    function stpc&#40;st&#58;string&#41;&#58;pchar;
    const maxchar=1024;
    var pc2&#58;array&#91;0..maxchar&#93;of char;x&#58;word;
    &#123;$r-&#125;begin for x&#58;=0 to maxchar do pc2&#91;x&#93;&#58;=#0;
    for x&#58;=0 to length&#40;st&#41;-1 do
    begin pc2&#91;x&#93;&#58;=chr&#40;chtoby&#40;copy&#40;st,x+1,1&#41;&#41;&#41;;
    if&#40;x+1=length&#40;st&#41;&#41;then pc2&#91;x+1&#93;&#58;=#0;end;stpc&#58;=pc2;end;
     
    &#123;-------------------------------------------------------------------------&#125;
    &#123; CONVERT PCHAR TO STRING                                                 &#125;
    &#123;-------------------------------------------------------------------------&#125;
    function pcst&#40;pc&#58;pchar&#41;&#58;string;
    var stx&#58;string;x,pcl&#58;word;
    &#123;$r-&#125;begin x&#58;=0;stx&#58;='';pcl&#58;=pclen&#40;pc&#41;;repeat
    if not&#40;pc&#91;x&#93;=#0&#41;then stx&#58;=stx+pc&#91;x&#93;;inc&#40;x&#41;;
    until&#40;pc&#91;x&#93;=#0&#41;or&#40;x>pcl+1&#41;;pcst&#58;=stx;end;
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Var pc&#58;pchar;
    Begin
     pc&#58;=stpc&#40;'Salut à tous!'&#41;;
     pc&#58;=stpc&#40;pcst&#40;pc&#41;+' ça va?'&#41;;
    End;
    Qu'en penses-tu? à+
    De retour parmis vous après 10 ans!!

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2002
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 42
    Points : 23
    Points
    23
    Par défaut j'en pense que !!
    Excuse j'avais pas vu la question en bas ...

    ben j'en pense que pour moi beaucoup de chose sont encore flou mais je sais qu'a long terme il faudra mettre toutes les fonctions et procédure les plus utilisé dans une unité et basta et être tranquille et mettre a jour régulierement biensur ...

    En revanche des qui ya des $0001 et autre moi je suis perdu alors si tu pouvais m'expliquer unpeu c que c avec des exemples concret ça m'arangerais beaucoup !!!

    Tiens par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     wsastartup &#40;$0001,sizeof&#40;nom&#41;&#41;;
    pour le gethostname !!!! Merci @+

  5. #5
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 308
    Points
    4 308
    Par défaut
    $0001 est un paramètre de la fonction GetHostName...
    Regarde sur msdn si tu veux plus de renseignements...
    http://msdn.microsoft.com

    a+
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  6. #6
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    $ permet de distinguer les nombres héxadécimaux des nombres décimaux normaux.
    Tu remarqueras que les "0" devant le chiffre ne sont pas indispensables.
    On peut très bien écrire $0001, ou $1, c'est pareil.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $0000  = 0
    $0001  = 1
    $0002  = 2
    ...
    $0009  = 9
    $000A  = 10
    $000B  = 11
    ...
    $000F  = 15
    $0010  = 16
    $0011  = 17
    ...
    $FFFF  = 65535
    int WSAStartup(
    WORD wVersionRequested,
    LPWSADATA lpWSAData);

    Parameter wVersionRequested
    [in] Highest version of Windows Sockets support that the caller can use. The high-order byte specifies the minor version (revision) number; the low-order byte specifies the major version number.
    La notation héxadécimal est utilisé pour ce paramètre afin de mieux distinguer les 2 octets spécifiant la version.
    $0001 = version 1.0
    Un autre exemple: $0A02 = version 2.10
    Il existe la fonction MakeWord qui permet de constituer ce nombre héxadécimal à partir des 2 octets.
    Ex: MakeWord(2,10); retournera $0A02
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function MakeWord&#40;b1,b2&#58;Byte&#41;&#58;Word;
    Begin
     MakeWord&#58;=b1*$100+b2;
    End;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wsastartup&#40;MakeWord&#40;1,0&#41;, sizeof&#40;nom&#41;&#41;;
    Est-ce-que c'est plus clair à présent? à+
    De retour parmis vous après 10 ans!!

  7. #7
    Membre à l'essai
    Inscrit en
    Novembre 2002
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 42
    Points : 23
    Points
    23
    Par défaut oui !!!
    Oui merci beaucoup c super claire je peux pas esperé mieux Merci !!!

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

Discussions similaires

  1. [VB6] Problème Winsock "Type Mismatch"
    Par ouar dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 27/01/2006, 23h01
  2. Type Mismatch
    Par escafr dans le forum ASP
    Réponses: 5
    Dernier message: 26/10/2005, 16h45
  3. SQL pb avec is null, type mismatch in expression
    Par debdev dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 24/10/2005, 18h05
  4. erreur Data type mismatch in criteria expression
    Par bachilbouzouk dans le forum ASP
    Réponses: 3
    Dernier message: 20/04/2005, 12h48
  5. [LG]Problème "Type Mismatch"
    Par Aezar dans le forum Langage
    Réponses: 9
    Dernier message: 25/02/2005, 23h50

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