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

Bases de données Delphi Discussion :

Comment transformer MAJUSCULES en minuscules ?


Sujet :

Bases de données Delphi

  1. #41
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par TicTacToe


    Tu aurais mieux fais de cliquer 100 fois alors si c'était pour arriver à ca !

    à raison de 2 clic par seconde, ca n'aurait pas pris plus d'une minute

    Rentrer 100 fois dans une boucle 'while not eof' en sachant que des la 1ere modif, tu te retrouves en fin de table à cause (probablement) des index...


    J'espère que ce n'est pas un projet professionel, et qu'il n'y a pas quelqu'un qui doit repasser ton code
    Tu as tout-a fait raison TicTacToe, mais je ne sais pas le faire autremment! Si tu as une idée je suis prenant...

  2. #42
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Points : 72
    Points
    72
    Par défaut
    Voici mon côde:
    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
    procedure TForm1.Button1Click(Sender: TObject);
    var chaine : string;
    i:integer;
     
     begin  for i := 1 to 100 do begin
     
    table1.first;
    while not table1.eof do begin
      Chaine:= table1.FieldByName('Nom').AsString;
     
      if Pos('DA', Chaine) = 1 then begin
        table1.Edit;
        table1.FieldByName('Nom').AsString:= 'da'+Copy(Chaine, 3, Length(Chaine)-2);
        table1.Post;   end;
      table1.Next;
    end; end; end;

  3. #43
    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
    Je proposerais plutôt 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    procedure TForm1.Button1Click(Sender: TObject);
    var Chaine : string;
        Trouve : boolean;
    begin
      repeat
        Table1.First;
        Trouve := False;
        while not Table1.EoF do
        begin
          Chaine := Table1.FieldByName('Nom').AsString;
          if (Length(Chaine) > 1) and (Chaine[1] = 'D') and (Chaine[2] = 'A') then
          begin
            Table1.Edit;
            Chaine[1] := 'd'; Chaine[2] := 'a';
            Table1.FieldByName('Nom').AsString := Chaine;
            Table1.Post;
            Trouve := True;
            Break;
          end;
          Table1.Next;
        end;
      until not Trouve;
    end;

  4. #44
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Citation Envoyé par kikica
    Tu as tout-a fait raison TicTacToe, mais je ne sais pas le faire autremment! Si tu as une idée je suis prenant...
    Mais j'ai l'impression que tu as laissé tombé mes conseils depuis un certains temps puisque je n'ai pas eu de retour sur ce que je pensais être l'erreur...
    (modification d'un enreg faisant parti de l'index courant...)

    C'est pô grave

    Je pense que l'interet de ton post c'est pas d'arriver à effectuer tes modifs sur les enregs maintenant, mais de comprendre pourquoi il y a une erreur dans ton code qui est correct syntaxiquement, mais qui pourtant ne fonctionne pas...

    Car tu retomberas certainement sur ce type d'erreur tôt ou tard !

  5. #45
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Dans ce cas précis, je pense qu'un parcours à l'envers marcherait.
    les 'da' sont systématiquement repoussés après les 'DA'.

    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
    procedure TForm1.CLcl1Click(Sender: TObject);
    var
       chaine : string;
    begin
         table1.Last;
         while not table1.bof do
           try
           Chaine:= table1.FieldByName('Nom').AsString;
           if Pos('DA', Chaine) = 1 then
             begin
             table1.Edit;
             table1.FieldByName('Nom').AsString:= 'da'+Copy(Chaine, 3, Length(Chaine)-2);
             table1.Post;
             end;
           finally
           table1.prior;
           end;
    end;
    J'ai repris strictement ton code mais en parcourant la table à l'envers, puisque la base le permet.

    et cela évite une double boucle que je trouve un peu tortueux à la relecture, mais qui marche comme la solution de sjrd.

  6. #46
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 228
    Points : 72
    Points
    72
    Par défaut
    MERCIIIIIIIIIIIIIIIIIIIIII..................... C'est GENIAL!!!

  7. #47
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    pourqoi ne pas charger avec une requette seulement les mot qui commence par 'DA' puis tu execute ton code sans faire le test???

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. Transformer certains champs en majuscules ou minuscules
    Par Rem5962 dans le forum Requêtes
    Réponses: 7
    Dernier message: 23/04/2014, 20h10
  2. Transformer la saisie majuscule en minuscule
    Par piloo2011 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 01/08/2011, 14h06
  3. Réponses: 0
    Dernier message: 31/05/2011, 18h59
  4. Transformer une lettre minuscule en majuscule
    Par star7dust dans le forum Pascal
    Réponses: 16
    Dernier message: 13/01/2008, 09h11
  5. transformer majuscules en minuscules dans un String
    Par barbiche dans le forum Langage
    Réponses: 4
    Dernier message: 28/03/2007, 10h42

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