Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1138 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] Concaténation spécifique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Concaténation spécifique

n°996028
lefoimpeur
Posté le 28-02-2005 à 16:44:33  profilanswer
 

Bonjour,
 
Voici un extrait de code pour ma question:

Citation :


Write #fileNum, stationMES0.nom, stationMES0.ORDRE, stationMES0.UNITE, stationMES0.grandeur
Write #fileNum, stationMES1.nom, stationMES1.ORDRE, stationMES1.UNITE, stationMES1.grandeur
Write #fileNum, stationMES2.nom, stationMES2.ORDRE, stationMES2.UNITE, stationMES2.grandeur...


 
Donc, j'aurai voulu savoir si c'est possible, afin d'éviter de répéter x fois la même ligne, d'utiliser une variable "nb" par exemple comme ceci:

Citation :


for nb=0 to 10
Write #fileNum, stationMES & nb &.nom, stationMES & nb &.ORDRE, stationMES & nb &.UNITE, stationMES & nb &.grandeur
next


Le code que je viens de citer ci-dessus ne fonctionne pas évidemment, c'est pour expliquer ce que j'aimerai faire.
 
Est-il possible de faire ce genre de concaténation?
Si pas possible, existe-t-il une solution alternative?
 
Merci d'avance à tous ceux qui m'aideront.


Message édité par lefoimpeur le 02-03-2005 à 09:59:37
mood
Publicité
Posté le 28-02-2005 à 16:44:33  profilanswer
 

n°996141
djok_fb
C'était mieux avant!
Posté le 28-02-2005 à 17:57:53  profilanswer
 

Ca m'étonnerait que ce que tu veux faire soit faisable en VB.
 
Pourquoi tu n'as pas fait de tableaux?
Les Hashtable ou un truc du genre, ça existe en VB?

n°996170
knakes
Posté le 28-02-2005 à 18:23:44  profilanswer
 

djok_fb a tout a fait raison. Transforme le tout en tableau et après ça ira tout seul.

n°996205
lefoimpeur
Posté le 28-02-2005 à 19:06:40  profilanswer
 

Ah ouais, c'est vrai ça, pas bête l'idée du tableau!
Je tente ça demain ;)
 
Merci

n°996883
lefoimpeur
Posté le 01-03-2005 à 10:41:40  profilanswer
 

Donc en fait je vais m'expliquer un peu plus car l'idée du tableau c'est bien, mais...
 
J'ai développé un logiciel pour des stations météos et j'aimerais sauvegarder la configuration de chaque station dans un fichier de config sachant que ce fichier ne comportera pas toujours le même nombre de lignes.
Ce fichier contiendra les infos types noms, localisation de la station..., les paramètres de communication et la ou ça se corce c'est pour les paramètres concernant le nombre de données provenant de cette station.
Si la station nous envoi 3 mesures, il me faut pour chaque mesure paramètrer son nom, son unité.... donc un fichier de ce type:

Citation :


station1.cfg
 nom,localisation
 parametres de communication
 donnee1,vitesse vent,m/s
 donnee2,direction vent,°
 donnee1,température,°C


 
Pour une autre station il n'y aura par exemple que 2 données:

Citation :


station2.cfg
 nom,localisation
 paramètres de communication
 donnee1,vitesse vent,m/s
 donnee2,direction vent,°


 
J'aimerais faire une fonction de lecture et une d'écriture d'un fichier de config qui serve pour tous les cas mais je ne sais comment faire pour que ce soit le plus dynamique et le plus souple possible au niveau de la prog...
 
Merci à tous ceux qui pourront m'aider.

n°997002
yokaichan
Posté le 01-03-2005 à 12:45:38  profilanswer
 

Je sais ke pour moi ca marche avec un fichier csv ou txt en faisant comme suit:
                   
    Open App.Path & ".\fichier.txt" For Output As #1
    For j = 1 To n
    a = "stationMES" & nb &.nom
    b = "stationMES" & nb &.ORDRE
    c = "stationMES" & nb &.UNITE
    d = "stationMES" & nb &.grandeur  
    Write #1, a,b,c,d
    Next j
    Close #1
 
Par contre pour le nombre de ligne c'est a toi de voir si tu peux le rechercher automatikement a chake fois,ou si c toi ki le mets j'espere ke ca pourra t'aider :D

n°997042
lefoimpeur
Posté le 01-03-2005 à 13:33:31  profilanswer
 

Ah ben ça va faire mon bonheur si ça marche comme ça!
Cet aprem je ne suis pas à la boite, donc je verrais ça demain matin, mais si tu dis que chez toi ça passe je te fais confiance!!
 
Je te previendrais mon avancement, merci ;)

n°997049
yokaichan
Posté le 01-03-2005 à 13:36:28  profilanswer
 

Ouais enfin on est jamais sur de rien lol tiens moi au courant via le site ou yokaichan@hotmail.com etant donne ke je suis debutant mais ke je travaille sur certains trucs kan meme ca m'interesse de savoir ou tu en es lol merci d'avance :d

n°997066
lefoimpeur
Posté le 01-03-2005 à 13:46:16  profilanswer
 

No pb t'inquiète, en général je répond toujours ;)

n°997490
knakes
Posté le 01-03-2005 à 20:31:56  profilanswer
 

Voilà ce que moi je te propose : un tableau
 
Dans un module tu mets cela (hors de Sub ou Function)

Code :
  1. Private Const NbreStationMax = 100 ' Définition du nombre maximum de station (peut être modifié)
  2. Private Type UserStation
  3.   Nom As String
  4.   Localisation As String
  5.   PramCom As String
  6.   Donnée1 As String
  7.   ' etc etc
  8. End Type
  9. Dim Station(NbreStationMax) As UserStation


Dans ta commande d'écriture tu appelle la fonction Ecrire()

Code :
  1. Function Ecrire()
  2. Open App.Path & "\station.txt" For Output As #1 ' Attention : toutes les données présentes dans le fichier seront effacées
  3.     For i = 0 To NbreStationMax
  4.       If Station(i).Nom = "" Then Exit For 'Si nom station vide alors fin du traitement
  5.         Print #1, "<"
  6.         Print #1, "n" & Station(i).Nom
  7.         Print #1, "l" & Station(i).Localisation
  8.         Print #1, "c" & Station(i).PramCom
  9.         If Not Station(i).Donnée1 = "" Then Print #1, "d" & Station(i).Donnée1
  10.         Print #1, ">"
  11.     Next i
  12. Close #1
  13. End Function


Dans ta commande de lecture tu apelle la fonction Lire()

Code :
  1. Function lire()
  2. Dim a As String
  3. Dim i As Integer
  4. i = 0
  5. Open App.Path & "\station.txt" For Input As #1
  6.     While Not EOF(1)
  7.       Input #1, a
  8.       If a = "<" Then
  9.         While Not a = ">"
  10.           Input #1, a
  11.           Select Case Left(a, 1)
  12.           Case "n"
  13.             Station(i).Nom = Right(a, Len(a) - 1)
  14.           Case "l"
  15.             Station(i).Localisation = Right(a, Len(a) - 1)
  16.           Case "c"
  17.             Station(i).PramCom = Right(a, Len(a) - 1)
  18.           Case "d"
  19.             Station(i).Donnée1 = Right(a, Len(a) - 1)
  20.           'etc etc
  21.           Case Else
  22.           End Select
  23.       End If
  24.     Wend
  25. Close #1
  26. End Function

Et voila :)  
Si problème(s) envoie(z) un message privé.

mood
Publicité
Posté le 01-03-2005 à 20:31:56  profilanswer
 

n°997575
lefoimpeur
Posté le 01-03-2005 à 21:28:55  profilanswer
 

C'est sympa à vous tous de m'aider comme ça!  :hello:  
 
En fait ton idée de tableau ressemble fort à ce que j'ai fait sauf qu'au lieu de déclarer "Dim Station(NbreStationMax) As UserStation" je met "Dim Station As UserStation"!!! J'utilisais ça en tant que structure, je ne savais pas qu'on pouvait faire ça!! Du coup ça simplifierait plusieurs trucs dans mon code ça :)
 
Je me suis renseigné aussi pour faire un fichier .ini et avec toutes vos idées je pense pouvoir faire quelque chose de bien.
 
Je m'y met dès que je suis au boulot demain ;)
Merci beaucoup!!  :bounce:  
 
Je donnerais de mes news de mon avancement!

n°997875
lefoimpeur
Posté le 02-03-2005 à 09:58:15  profilanswer
 

Hello!!
 
Bon ben je vous remercie tous!!!
Ca fonctionne comme je le souhaitais.
 
Encore MERCI!!!

n°998211
knakes
Posté le 02-03-2005 à 13:41:23  profilanswer
 

Ben moi je suis ravi pour toi. :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] Concaténation spécifique

 

Sujets relatifs
probleme en utilisant htmlentities[résolu]Notice : Undefined Offset ??? [Resolu]
[Résolu] VS7-syntaxe highlighting avec n'importe quelle ext° fichierIIS, Tomcat, NTLM & REMOTE USER [RESOLU]
[Résolu][VBA Word] insertion de rendez-vous dans outlookexecutable de + de 7Mo [Résolu]
[résolu]tableau avec CSS, pb sous IERessource (presque résolu)[résolu]
cin desynchro! [resolu][resolu] [SWT et MVC] modifier une pripriété d'un GUI de l'extérieur ?
Plus de sujets relatifs à : [Résolu] Concaténation spécifique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR