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 Delphi Discussion :

if sans then


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 187
    Points : 65
    Points
    65
    Par défaut if sans then
    Bonjour tous le monde

    peut-on trouver un if sans then ?!!

    j'ai trouvé cet exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    if (len <= 0) return 0;
    et c'est un code compilé ?!!

  2. #2
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    non ça c'est du C Like (genre PHP, Javascript, C, C++ ou LUA)

    en Delphi la syntaxe c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if {condition} then
      {instruction ou bloc de code}
    else
      {instruction ou bloc de code}
    ce qui correspond au C :
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (/*condition*/) 
      /* instruction ou bloc de code*/
    else 
      /* instruction ou bloc de code*/



    donc pour :

    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (len <= 0) return 0;

    on aura le code Pascal/Delphi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      if len <= 0 then
      begin 
        result := 0;
        exit;
      end;
    et le code Delphi 2009 +
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if len <= 0 then exit(0);

  3. #3
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 187
    Points : 65
    Points
    65
    Par défaut
    donc on peut inclure un code c dans un programme Delphi (comme assembleur) ?!!

    d'ailleur j'ai trouvé un exemple, ou on a un mélange entre le C et Delphi

    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
     
     
    {$ifdef HAS_snprintf}
        snprintf(buf, sizeof(buf), format, a1, a2, a3, a4, a5, a6, a7, a8,
           a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
    {$else}
        sprintf(buf, format, a1, a2, a3, a4, a5, a6, a7, a8,
          a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
    {$endif}
        len := strlen(buf); { old sprintf doesn't return the nb of bytes written }
        if (len <= 0) return 0;
     
        gzprintf := gzwrite(file, buf, len);
    end;
    {$ENDIF}
    et un autre

    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
    40
    41
     
    {$ifndef ORG_DEBUG}
    { Inline versions of _tr_tally for speed: }
     
    #if defined(GEN_TREES_H) || !defined(STDC)
      extern uch _length_code[];
      extern uch _dist_code[];
    #else
      extern const uch _length_code[];
      extern const uch _dist_code[];
    #endif
     
    macro _tr_tally_lit(s, c, flush)
    var
      cc : uch;
    begin
        cc := (c);
        s^.d_buf[s^.last_lit] := 0;
        s^.l_buf[s^.last_lit] := cc;
        Inc(s^.last_lit);
        Inc(s^.dyn_ltree[cc].fc.Freq);
        flush := (s^.last_lit = s^.lit_bufsize-1);
    end;
     
    macro _tr_tally_dist(s, distance, length, flush) \
    var
      len : uch;
      dist : ush;
    begin
        len := (length);
        dist := (distance);
        s^.d_buf[s^.last_lit] := dist;
        s^.l_buf[s^.last_lit] = len;
        Inc(s^.last_lit);
        Dec(dist);
        Inc(s^.dyn_ltree[_length_code[len]+LITERALS+1].fc.Freq);
        Inc(s^.dyn_dtree[d_code(dist)].Freq);
        flush := (s^.last_lit = s^.lit_bufsize-1);
    end;
     
    {$endif}
    c'est possible ?
    pour l'assembleur et dans mon parser j'ingore toute la partie qui commence par ASM et termine par END

    mais pour le C je vois pas ou il peut se trouver, entre les directives {$ifdef} et {$endif} ou bien la directive {$ifndef} ? et es-ce qu'il existe d'autre cas possible ?

    Cordialement

  4. #4
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    il existe deux IDE par borland :

    Delphi (BDS) et CBuilder (BCB).

    on peux trouver du code de BDS et BCB dans les mêmes unité, entouré des directives :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    {$IFDEF BCB}
      'code C'
    {$ELSE}
      {$IFDEF BDS}
      'code Delphi'
      {$ELSE}
        {$IFDEF FPC}
      'code Free pascal'
        {$ENDIF}
      {$ENDIF}
    {$ENDIF}

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/11/2014, 13h11
  2. MDI sans MFC, possible ?
    Par delire8 dans le forum MFC
    Réponses: 4
    Dernier message: 17/06/2002, 08h38
  3. [Kylix] Fiches sans bordure
    Par alex dans le forum EDI
    Réponses: 4
    Dernier message: 28/04/2002, 22h19

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