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 :

Récupérer une chaine avec apostrophe dans un TEdit


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Étudiant
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Points : 15
    Points
    15
    Par défaut Récupérer une chaine avec apostrophe dans un TEdit
    Bonjour a tous....
    Alors mon problème est que je veux récupérer des chaînes de caractères à partir d'un TEdit mais lorsque l'utilisateur tape une apostrophe ça ne marche plus étant donné qu'en deplhi pour une apostrophe on doit en mettre 2..comment faire??
    ps: j'utilise deplhi6

  2. #2
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    ca ne viens pas de la.

    Ne pas confondre analyse et execution.
    A l'execution, le programme traite l'edit comme une chaine de caractere traditionnelle. il ne l'interprete pas. heureusement sinon on pourrait ecrire du code dans un edit pour faire des choses ... heuu .. pas claire

    L'analyse se deroule quand Delphi traduit le code texte d'un programme en code binaire. Vu qu'il utilise le caractere apostrophe pour delimiter une chaine, il doit savoir faire la difference entre l'apostrophe text et l'apostrophe delimiteur. Une fois compilé, ta chaine dans ton programme est stockée sans double apostrophe.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  3. #3
    Membre à l'essai
    Étudiant
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Points : 15
    Points
    15
    Par défaut toujour l'apostrophe...
    en fait je veux récupérer un nom par exemple que j'utiliserai dans une requête SQL....par exemple

    'select * from tableau where nom='''+editNom.text+'''';

    et là s'il y a une apostrophe dans le nom ,ça me dit qu'il y a erreur que la chaîne ne se termine pas correctement???

  4. #4
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    ok .. donc la on est pas dans le cadre du delphi mais dans le cadre du SQL.
    et dans ce cas oui, on est en phase d'interpretation de code SQL, donc les apostrophes sont a pendre en compte.

    La rapidement, je vois 2 solutions : Detecter la facon de coder les apostrophes dans une chaine SQL et :
    - Soit saisir cette syntaxe directement dans l'edit
    - Soit analyser la chaine caractere par caractere et si on detecte une apostrophe, alors corriger le codage du caractere.

    sinon, il me semble que SQL comme pas mal de langages maintenant sont a double definition : cotes (") et apostrophes ('). En jouant sur l'une et l'autre on devrais pouvoir utiliser les apostrophes sans avoir a modifier la chaine sasie ....
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  5. #5
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    str :=Self.edit1.text;
    sql :='';
    for i := 1 to length() do
      if str[i] = '[apostrophe]' then sql := sql+'\[apostrophe]' else sql := sql+str[i];
    ou bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sql :='select * from tableau where nom=[cotes]'+editNom.text+'[cotes]';
    pour plus de lisibilité j'ai remplace les caracteres par [type de caractere]
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 36
    Points : 38
    Points
    38
    Par défaut
    Salut

    Sinon tu a la fonction QuotedStr.

    Extrait de l'aide delphi :
    Utilisez QuotedStr pour convertir la chaîne AnsiString S en une chaîne guillemetée. Un caractère simple (') est inséré au début et à la fin de S et les guillemets simples dans la chaîne sont répétés.

    Birdyz

  7. #7
    Membre à l'essai
    Étudiant
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Points : 15
    Points
    15
    Par défaut Merci beaucoup
    merci beaucoup
    c'est bon ça marche...

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

Discussions similaires

  1. [MySQL] Récupérer une chaine de caractère dans un colonne
    Par djdamage dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 29/07/2009, 15h40
  2. [MySQL] Récupérer une chaine de caractere dans une variable
    Par Mais.Ouais dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 26/05/2009, 11h41
  3. [Debutant]Mettre une chaine de caractère dans un TEdit
    Par M E H D I dans le forum C++Builder
    Réponses: 2
    Dernier message: 02/10/2007, 14h08
  4. Réponses: 10
    Dernier message: 25/03/2007, 21h39
  5. Récupérer une chaine de caractère dans une page
    Par BrunS dans le forum Langage
    Réponses: 3
    Dernier message: 15/11/2005, 14h28

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