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 :

Probleme de position de chaine


Sujet :

Langage Delphi

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Juin 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2004
    Messages : 59
    Points : 31
    Points
    31
    Par défaut Probleme de position de chaine
    bonjour à tous,

    j'ai un petit souci.
    Dans mon memo2, j'ai ceci :
    Technologiederobot 12
    Systèmesd'armes 74
    Technologiedelaser 13
    (la il n'y a que 3 lignes mais mon memo en contient 30. De plus, les valeurs sont issus d'un copier/coller, donc je ne connais pas les valeurs en lancant l'application).

    Le code suivant est sencé me donner dans le champs "defarmes", la valeur "74" mais elle me donne la valeur 1.
    Pourriez me dire pourquoi et me dire ou est l'erreur dans mon code ?
    Je sais q'uil n'est pas super mais c'est la seule facon que j'ai trouvé pour recuperer la dite valeur.

    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
    for i:= 0 to memo2.Lines.Count
        do
          begin
            if pos('Systèmesd''armes',memo2.lines[i])=0
              then
                begin
                  for x := 0 to length(memo2.Lines[i])
                    do
                      if (memo2.Lines[i][x]='0')
                        or (memo2.Lines[i][x]='1')
                        or (memo2.Lines[i][x]='2')
                        or (memo2.Lines[i][x]='3')
                        or (memo2.Lines[i][x]='4')
                        or (memo2.Lines[i][x]='5')
                        or (memo2.Lines[i][x]='6')
                        or (memo2.Lines[i][x]='7')
                        or (memo2.Lines[i][x]='8')
                        or (memo2.Lines[i][x]='9')
                          then
                            txtdefarmes.Text:= memo2.Lines[i][x]
                end
              {else
                txtdefbouclier.Text:='';}
          end;

  2. #2
    Expert éminent sénior

    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 : 34
    Localisation : Suisse

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Points
    10 154
    Par défaut Re: Probleme de position de chaine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Text := memo2.Text;
    Debut := Pos('Systèmesd''armes', Text);
    while (Debut <= Length(Text)) and (not (Text[Debut] in ['0'..'9']))) do inc(Debut);
    Fin := Debut;
    while (Fin <= Length(Text)) and (Text[Fin] in ['0'..'9']) do inc(Fin);
    txtdefarmes.Text := Copy(Text, Debut, Fin-Debut);
    Valà c'est tout Pas besoin de plus

    D'abord on repère 'Systèmesd''armes' dans tout le texte du memo, puis on repère le premier chiffre qui suit cela, et puis on cherche le premier non-chiffre qui suit le premier chiffre.
    Ensuite on utilise la fonction Copy pour récupérer ce qu'il y a entre
    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.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Juin 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2004
    Messages : 59
    Points : 31
    Points
    31
    Par défaut
    Ben, ca marche nickel.
    Quel difference entre nos 2 codes : 24 lignes (qui ne marchent pas ) contre 7 (qui fonctionnent)...la difference entre un pro et un utilisateur du dimanche.
    Je vais decortiquer ton code avec plein de commentaires et tout et tout...
    Merci beaucoup.

  4. #4
    En attente de confirmation mail Avatar de Matt2094
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 295
    Points : 237
    Points
    237
    Par défaut
    Citation Envoyé par kubito
    Ben, ca marche nickel.
    Quel difference entre nos 2 codes : 24 lignes (qui ne marchent pas ) contre 7 (qui fonctionnent)...la difference entre un pro et un utilisateur du dimanche.
    Je vais decortiquer ton code avec plein de commentaires et tout et tout...
    Merci beaucoup.
    Mais aussi, toi, tu as éxagérément éspacé ton code ...

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Juin 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2004
    Messages : 59
    Points : 31
    Points
    31
    Par défaut
    ben, j'ai fait comme on m'a appris...et puis, comme je le disais, je suis une quiche

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

Discussions similaires

  1. Probleme de parsing de chaine, tronquer une chaine
    Par Voodo'o_d'ool dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 06/08/2008, 11h28
  2. Probleme de tri de chaine de caractere...
    Par GESCOM2000 dans le forum Access
    Réponses: 12
    Dernier message: 28/12/2005, 13h43
  3. [Firebird]position sous-chaine dans chaine
    Par rahan15 dans le forum SQL
    Réponses: 4
    Dernier message: 10/09/2005, 12h14
  4. [xml-xsl] Probleme avec position()
    Par seb30 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 21/04/2005, 11h10
  5. Probleme dans request.QueryString("chaine")
    Par soufienne dans le forum ASP
    Réponses: 8
    Dernier message: 24/08/2004, 14h49

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