Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Thu 20 April 2006 12:08

V. Girault
Participant actif
Lieu: Clermont-Ferrand
Date d'inscription: 22 Sep 2005
Messages: 106

Création d'une chaîne par concaténation de variables

Bonjour

Je suis en train d'essayer de créer une chaîne par concaténation de variables successives et après moultes essais, je n'y parvient pas trop.
Le but du jeu est d'obtenir au final dans une chaine COL1, COL2, COL3, COL4 et ainsi de suite.

Je lit d'abord le nombre de champs ou colonnes que possède d'une table
Au départ, j'était partie sur un algo de ce type :

Code:

For J = 1 to NbCT1        'ici, construction de chaine a revoir
      Note "J:"+J
      Ch1 = "COL"+J+","
      K=J+1
      If K< NbCT1
           Ch2 = Ch1 + "COL"+K+","
      End If
Next
ChaineFinale = Ch2+Ch1
Note ChaineFinale

NbCT1 récupère bien le nombre total de champ de la table.
Je ne récupère que COL2,COL3, COL4 dans ChaineFinale, il doit sûrement manquer un petit quelquechose....
Effectivement, l'idée de départ était bonne, mais comme le nombre de colonne de la table varie, je n'arrive pas à contourner ce problème. Je ne vois pas comment constituer la boucle, ou faire la bonne boucle, si une boucle suffit.

Ensuite, après avoir tortillé le code dans tous les sens sans parvenir à rien, je suis partie sur le fait de créer un fichier texte construit de cette façon pour en obtenir ensuite des variables en lecture ligne à ligne, sachant que le nombre de colonne varie d'une table à l'autre, puisque c'est de celà qu'il s'agit ici.

Voilà le fichier texte :

(
COL1
COL2
COL3
COL4
)


Ce cheminement pourrait-il fonctionner pour pouvoir construire au final une chaîne qui corresponde à ceci : (COL1, COL2, COL3, COL4), je vois bien pour la lecture du fichier texte mais pour la reconstitution de la chaîne, je ne voit pas trop comment faire.... Si vous avez quelques idées...

Cette chaîne sera ensuite à introduire dans une commande MB de ce type :

Insert into TABLE1 (COL1, COL2, COL3, COL4) Select COL1, COL2, COL3, COL4 from TABLE2


Pouvez-vous m'aider ?

Merci beaucoup

Hors ligne

 

#2 Thu 20 April 2006 13:00

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: Création d'une chaîne par concaténation de variables

Bonjour,
A priori ce premier code est presque bon sauf qu'il suffirrait de dire:
Ch1=""
For J = 1 to NbCT1
      If J< NbCT1
           Ch1 = Ch1 + "COL"+J+","
      Else
           Ch1 = Ch1 + "COL"+J
      End If
Next
Note Ch1

Hors ligne

 

#3 Fri 21 April 2006 10:15

V. Girault
Participant actif
Lieu: Clermont-Ferrand
Date d'inscription: 22 Sep 2005
Messages: 106

Re: Création d'une chaîne par concaténation de variables

big_smile
Bonjour,

Merci beaucoup à Maurice Nadal wink, effectivement, il ne manquait vraiment pas grand chose dans la boucle et comme d'habitude, en cherchant d'autres solutions, je me suis noyée dans des tests un peu plus compliqués....

Rien ne vaut le regard neuf d'un autre programmeur qui n'est pas dans le développement de l'outil convoité.
@ + tard...

Hors ligne

 

Pied de page des forums

Powered by FluxBB