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

Algorithmes et structures de données Discussion :

Traitement de chaines de caractères


Sujet :

Algorithmes et structures de données

  1. #1
    Membre émérite Avatar de Cpt Anderson
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 624
    Points : 2 477
    Points
    2 477
    Par défaut Traitement de chaines de caractères
    Bonjour,

    j'ai un petit problème à soumettre:

    imaginons que j'ai des chaines de caractères comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "toto", "l"éléphant"; "l"autruche"
    comment puis-je détecter que le ' " ' n'est pas la fin d'une chaine dans tous les cas mais qu'il peut-être une apostrophe ?
    La difficulté est de traiter tout dans son ensemble et pas chaines par chaines.

    Merci de votre aide.
    Voici la méthode de mon chef:

    copy (DateTimeToStr(Now),7,4)+
    copy (DateTimeToStr(Now),4,2)+copy (DateTimeToStr(Now),1,2)+copy (DateTimeToStr(Now),12,2)+
    copy (DateTimeToStr(Now),15,2)+copy (DateTimeToStr(Now),18,2)

    Je lui ai dit que FormatDateTime irait surement mieux


  2. #2
    Membre actif Avatar de Acrim
    Profil pro
    En recherche d'emploi
    Inscrit en
    Septembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Septembre 2010
    Messages : 134
    Points : 204
    Points
    204
    Par défaut
    Pourquoi ne pas utiliser les séparateurs (, et : ) présents entre les mots ? (à moins que les caractères utilisés comme séparateurs puissent aussi présents entre les guillemets)
    « La science informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes. » — Edsger Dijkstra

  3. #3
    Membre éclairé
    Avatar de edfed
    Profil pro
    être humain
    Inscrit en
    Décembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : être humain

    Informations forums :
    Inscription : Décembre 2007
    Messages : 476
    Points : 701
    Points
    701
    Billets dans le blog
    1
    Par défaut
    "toto", "l"éléphant"; "l"autruche"
    je verais plus ça:

    "l'elephant", "l'autruche"

    et donc, au final:

    si la chaine contient un ', elle peut etre entre " "
    si elle contient un ", elle peut etre entre ' '
    si elle contient les deux, il faut trouver un autre moyen de délimiter.

  4. #4
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    "l\"elephant"

  5. #5
    Membre éclairé
    Avatar de edfed
    Profil pro
    être humain
    Inscrit en
    Décembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : être humain

    Informations forums :
    Inscription : Décembre 2007
    Messages : 476
    Points : 701
    Points
    701
    Billets dans le blog
    1
    Par défaut
    utiliser \ comme caractère special est assez maladroit.
    si pour une raison quelconque, la chaine doit contenir un \, ça va poser des problèmes.

    par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "le caractère \ sert de séparateur dans un chemin sous DOS","l'elephant et l'autruche sont des animaux"
    je ne comprend pas pourquoi tu utilises " au lieu de ' dans tes exemples.

    explique plus en details ton cas, les chaines sont elles dans un fichier texte utilisé par le programme? sont elles dans le programme lui meme en section de données, ou sont elles dans le fichier source, declarées en tant que chaines, ou autre cas? selon le cas, le probleme peut se resoudre très differement.

  6. #6
    Membre émérite Avatar de Cpt Anderson
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 624
    Points : 2 477
    Points
    2 477
    Par défaut
    Citation Envoyé par edfed Voir le message
    utiliser \ comme caractère special est assez maladroit.
    si pour une raison quelconque, la chaine doit contenir un \, ça va poser des problèmes.

    par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "le caractère \ sert de séparateur dans un chemin sous DOS","l'elephant et l'autruche sont des animaux"
    je ne comprend pas pourquoi tu utilises " au lieu de ' dans tes exemples.

    explique plus en details ton cas, les chaines sont elles dans un fichier texte utilisé par le programme? sont elles dans le programme lui meme en section de données, ou sont elles dans le fichier source, declarées en tant que chaines, ou autre cas? selon le cas, le probleme peut se resoudre très differement.
    en fait, j'écris un pilote SQL Server ave Delphi et je dois traiter des cas particulier de passage de paramètres directement dans la requête SQL.

    J'ai une base en UTF8. Quand j'ecris une requete comme:

    Select * from matable where monnom=:monnom
    query.paramByName['monnom']:='toto';
    query.open

    là, ca marche, pas de souci, par contre si je fais:

    Select * from matable where monnom="toto"
    query.open;

    la requête doit ressembler à:
    Select * from matable where monnom=N"toto"

    L'exemple avec "toto" est simple mais si j'ai "l"éléphant", ça devient plus compliqué.
    Voici la méthode de mon chef:

    copy (DateTimeToStr(Now),7,4)+
    copy (DateTimeToStr(Now),4,2)+copy (DateTimeToStr(Now),1,2)+copy (DateTimeToStr(Now),12,2)+
    copy (DateTimeToStr(Now),15,2)+copy (DateTimeToStr(Now),18,2)

    Je lui ai dit que FormatDateTime irait surement mieux


Discussions similaires

  1. [RegEx] Traitement de chaines de caractères
    Par ctrl+z dans le forum Langage
    Réponses: 17
    Dernier message: 09/02/2009, 15h11
  2. Traitement de chaine de caractère
    Par kroax dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/06/2007, 15h09
  3. [VB6]Traitement de chaine de caractère + conversion
    Par kboo dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 24/04/2006, 09h23
  4. [XSL] Optimisation d'un traitement de chaines de caractères
    Par mathieu dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 05/02/2006, 18h57
  5. Traitement de chaine de caractères
    Par lapartdombre dans le forum Langage
    Réponses: 9
    Dernier message: 03/02/2006, 09h29

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