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

Delphi Discussion :

probleme avec fonction extract


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de babou54
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 137
    Par défaut probleme avec fonction extract
    bonjour bonjour !
    je rencontre un petit probleme avec la fonction extract pour extraire un caractère d 'un chaine de caractères

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
     then begin nbch:=count(nb);
                  i:=1;
                  erreur:= false
                  end;
                  while  not erreur and while i <= nbch do
                         ch:= extract(nb,i,1);
                         if ch <> '0 'and if ch <>'1'
                           then erreur:= true ;
    et là le compilateur me dit "trop de parametre originaux"
    je comprend pas! i need help

  2. #2
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut
    Salut,

    Personnellement j'utilise copy pour extraire des caractères d'une chaine.

    @+.

  3. #3
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    Extract permet de retirer un élément d'une liste (TList, TObjectList, ...).
    J'ai du mal à saisir ce que fais ton code. Tes condition if et while sont bizarres !

    Mais comme le précise Padawan, un simple Copy suffit pour extraire une chaine.

    [edit]
    Présice un peu plus ce que tu veux faire. Quel est le type de nb ? Quel résultat veux-tu obtenir ?
    [/edit]


    @+ Claudius

  4. #4
    Membre confirmé Avatar de babou54
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 137
    Par défaut
    ok ok merci ! jessai

  5. #5
    Membre confirmé Avatar de babou54
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 137
    Par défaut
    en faite mon programme doit convertir des nombres d'une base à une autre
    et dans mon code je gere les erreure de saisie pour un nombre en binaire

  6. #6
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    Alors dans ce cas je te propose ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function IsStringInBase2(s: string): boolean;
    var
      i: integer;
    begin
      result := true;
      for i := 1 to Length(s) do begin
        if (Copy(s, i, 1) <> '0') or (Copy(s, i, 1) <> '1') then
        begin
          result := False;
          exit;
        end;
      end;
    end;
    La fonction te renvoie False si la chaine s ne représente pas un nombre binaire.

    [edit]
    VOIR code de SJRD mieux adapté au contexte plus bas.
    [/edit]

    Voiloù !
    @+ Claudius

  7. #7
    Membre confirmé Avatar de babou54
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 137
    Par défaut
    ca c'est gentil

  8. #8
    Membre chevronné
    Inscrit en
    Octobre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 338
    Par défaut
    bonsoir

    pour en revenir à l'erreur du compilateur je pense qu'il faut remplacer

    while not erreur and while i <= nbch do

    par: while (not erreur) and (i <= nbch) do

    à plus 54!

  9. #9
    Expert confirmé

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Par défaut
    Claudius, utiliser Copy pour comparer un caractère : pas bien
    Et je rajouterais un const dans les paramètres aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function IsStringInBase2(const Str : string) : boolean;
    var I : integer;
    begin
      Result := False;
      for I := 1 to Length(Str) do
        if not (Str[i] in ['0'..'1']) then exit;
      Result := True;
    end;
    Il est pas beau le code beaucoup plus court, plus lisible et plus efficace ?
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

Discussions similaires

  1. [Mail] probleme avec fonction mail() !!!
    Par H-bil dans le forum Langage
    Réponses: 6
    Dernier message: 19/06/2006, 23h45
  2. C++ - Probleme avec fonction virtuelle
    Par vdumont dans le forum C++
    Réponses: 1
    Dernier message: 20/03/2006, 20h49
  3. probleme avec fonctions
    Par Burinho dans le forum C
    Réponses: 8
    Dernier message: 29/12/2005, 21h28
  4. Réponses: 17
    Dernier message: 24/03/2005, 12h24
  5. [langage] problème avec fonction read
    Par domidum54 dans le forum Langage
    Réponses: 2
    Dernier message: 30/03/2004, 20h42

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