Syxfull
Messages postés19Date d'inscriptionjeudi 19 avril 2007StatutMembreDernière intervention12 juin 2007
-
16 mai 2007 à 08:32
Syxfull
Messages postés19Date d'inscriptionjeudi 19 avril 2007StatutMembreDernière intervention12 juin 2007
-
16 mai 2007 à 10:47
Bonjours a tous,
J'aimerais savoir si il etait possible de modifier de facon "dynamique" une expression par quelque moyen que se soit.
Je m'explique, actiellemetn j'ai un fichier INI jusque là pas de probleme enffef je disposse de plusieur [Section] ayant tous la meme syntaxe, Biblio_Option.Decodage_Rapport.Colonne1(Index)
Biblio_Option.Decodage_Rapport.Colonne2(Index)
Biblio_Option.Decodage_Rapport.Colonne3(Index) Cela jusqu'a 8
J'aimerais donc créer une boucle du type:
dim a as integer
a=0
Do
Biblio_Option.Decodage_Rapport.Colonne"a"(Index)
ACTIONS
Loop While a<8
je precise juste que dans mon Cas a peut prendre prendre plusieur valeur max et donc variable et poru evité de créer une succession je voudrais réalisé cette petite bidouille
j'ai essayer en passant par un string masi aprés je ne peut plsu utilisé l'expression qui est de type string et donc ne me renvoi pas la valeur mais juste le text.
Help merci a vous tous
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 16 mai 2007 à 08:42
Bonjour,
Si tu n'en as que 8, pourquoi ne pas utiliser tout simplement
on a gosub toto0, toto1, toto2, toto3, toto4; toto5, toto6, toto7
toto0 :
.........
toto1:
.....
.
.
toto7:
........
Syxfull
Messages postés19Date d'inscriptionjeudi 19 avril 2007StatutMembreDernière intervention12 juin 2007 16 mai 2007 à 08:54
Ben justement je pensé avori expliqué le mieu possible dsl
enffait je decode des rapport en .txt
suivant le type du rapport Type 1 ou Type2 j'aurrai un nombre changeant de Colonne a lire soit 8 en type 1 et 12 en type 2
Ainsi je voudrais faire
une lecture mid comme cela
If mid(ligne de rapport , Biblio_Option.Decodage_Rapport.Colonne3(Index) ) ="1632" then
Vanne3=1632
End If
et donc remplacer le "3" de colonne et vanne de facon automatique sans devoir créer 12 fois la meme suite de test pour simplifier la lecture du code
le Ini est du style (en racourcci)
;Options Decodage D'un Rapport
;-------------------------------------------------
;
;
[Type]
Type1 = ALTOP
Type2 = ASIType3 Type4
[colonne11]colonne1 colonne2 121,8colonne3 colonne4 ;
Voila et comme vous le remarqué les chiffre sont inseré dans l'execution Mid( ligne , chiffre) chiffre = exemple 121,8 et op le tour et jouer
Vous n’avez pas trouvé la réponse que vous recherchez ?
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 16 mai 2007 à 08:59
re,
je suis désolé mais j'ai toujours du mal à bien saisir.
Qu'est ce que Biblio_Option.Decodage_Rapport.Colonne1(index)
- Un controle?
- Une classe?
Juste pour dire,
Tu peux acceder à un contrôle par une chaine de caractere en passant par la collection Control de l'objet Form.
Tu pourrais utiliser un tableau de String pour Vanne
car si Vanne3 est une chaine de caractere, tu ne pourras pas t'y référerer pour y pointer à l'aider d'une autre chaine.
Bref encore plus de précision et un exemple simple serait le bienvenu.
(peu être que c'est par ce que c'est le dernier jour de taf, mais vraiment je ne comprends pas très bien)
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 16 mai 2007 à 09:02
"oui mais je susi pas trés "Adroit" j'ai commencer VB que depuis 3 semaine donc je susi un peut limité dsl "
L'es-tu suffisamment (adroit) pour ouvrir ton aide en ligne et voir (accompagnés d'exemples clairs) On... Gosub ... et Return ?
J'espère que oui... (c'est très facile : un click sur l'onglet "?", "Aide", "Help" ou "MSDN" , selon ta version de VB)
Syxfull
Messages postés19Date d'inscriptionjeudi 19 avril 2007StatutMembreDernière intervention12 juin 2007 16 mai 2007 à 09:12
Tu sais etre plus calé qu'une personne ne te permet en aucun cas de la prendre poru un inbecile et si je fait appel a vous c'est que j'ai rien trouvé dans les termes de recherche sur l'aide en ligne a present j'ai une piste avec le gosub masi je doute que cela me sauve
cela dit merci de m'aidé a cherché et a trouvé une solution a mon probleme
Biblio_Option.Decodage_Rapport.Colonne1(index) est enffait issu d'une autre fonction que j'utilise, elle me racourcci la récupération des donné de mon .INI elle inclue Getprivatesetting etc et je la resume ainsi
donc pour le moment il m'est impossible de modifier comment oké toto"a" peut pas faire totoa donc soit je doit répété le nombre de fois utile a toute mes colonne soit j'utilise une collection je vais voir comme réalisé sa
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 16 mai 2007 à 09:16
Salut,
Pour le Vanne3 tu peux très bien faire un
Public Vanne(1 To 5) As String 'Par exempleVanne(3) "Blabla" 'remplacera alors Vanne3 "Blabla", ----
[code.aspx?ID=41455 By Renfield]
J'ai toujours du mal avec Biblio_Option.Decodage_Rapport.Colonne1(index)
Je pense que tu ferais mieux de nous donner la procédure qui utilise GetPrivateProfileString ca pourrais nous aider
@+: =89254 Ju£i?n Pensez: Réponse acceptée
Syxfull
Messages postés19Date d'inscriptionjeudi 19 avril 2007StatutMembreDernière intervention12 juin 2007 16 mai 2007 à 09:23
Alors :
'On lance une boucle DO...Loop pour recuperer tous les Type
Index = 0
Do 'on définit la section Type du fichier ini
Section = "Colonne"
'On definiet la clé
Key = "Colonne" & (Index + 1)
'Appel de la fonction de récupération INI
Biblio_Option.Decodage_Rapport.Colonne(Index) = GetPrivateSetting(Chemin, Section, Key, Defaut)
'Incrémentation de Index
Index = Index + 1
Loop While Index <= 9 'Recommencer Tant que Index inférieur ou égal a 9
Cela utilise:
Function GetPrivateSetting(ByVal szFileName As String, ByVal szSection As String, ByVal szKey As String, ByVal szDefault As String) As String
'---------------------------------------------------
' Charger une donnée d'un fichier ini
'---------------------------------------------------
'---------------------------------------------------
Dim lResult As Long
Dim szResult As String
Dim lpResult As String * 1024
Dim lSize As Long
'If lResult >= 0 Then
If lResult >= 0 Then
szResult = Left(lpResult, lResult)
Else
szResult = szDefault
End If
'Valeur de retour
GetPrivateSetting = szResult
Exit Function
Erreur:
GetPrivateSetting = szDefault
End Function
et donc moi j'utilise direct Biblio_Option.Decodage_Rapport.Colonne1(index) qui est etable et déclaré comme suit:
Public Type Type_Option_Decodage_Rapport
Type_Vanne(9) As String
Numero1(9) As String
Numero2(9) As String
Colonne(9) As String
Colonne1(9) As String
Colonne2(9) As String
Colonne3(9) As String
Colonne4(9) As String
Colonne5(9) As String
Colonne6(9) As String
Colonne7(9) As String
Colonne8(9) As String
Colonne9(9) As String
Colonne10(9) As String
Colonne11(9) As String
End Type
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 16 mai 2007 à 09:25
Je regrette, Syxfull , que tu interprêtes l'exposé d'une méthode (et l'invite à ouvrir ton aide en ligne pour y voir des exemples d'utilisation) comme la marque de ce que l'on te prend pour un imbécile ...
J'y voyais plutôt, au conbtraire, la marque de ce que je pensais que tu serais capable de celà... et de comprendre..
Syxfull
Messages postés19Date d'inscriptionjeudi 19 avril 2007StatutMembreDernière intervention12 juin 2007 16 mai 2007 à 09:29
se que je veut dire jmfmarques c'est que je ne serait pas sur se forum si j'avais trouvé la solution dans l'aide que je consulte par ailleur beaucoup car comme je le rappel j'ai decouvers VB il y a 3 semaines dans le cadre d'un stage et je susi débarqué directement sur un sujet a 50% entammé j'ai donc du tous comprendre décrypter et utilisé pour continuer se projet et avec aucune expérience ben croit moi c'est pas facile les premiere ligne directement en connection de BDD datagrid etc
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 16 mai 2007 à 09:40
Re,
ALors est ce que j'ai bien compris,
Tu veux charger en mémoire le contenu de ton fichier INI? c'est ca? NOTE: Si tu ne sais pas de quelle type c'est il vaut dévlarer pour 12 que pour 8
Syxfull
Messages postés19Date d'inscriptionjeudi 19 avril 2007StatutMembreDernière intervention12 juin 2007 16 mai 2007 à 09:41
si je trouve pas de reponse je pense donc utilisé un Switch case et donc atribuer poru chaque valeur de ma boucle une commande Biblio_Option.Decodage_Rapport.Colonne1(index)
comme donc
Do
Select Case colonne
Case 1
a=Biblio_Option.Decodage_Rapport.Colonne1(index)
Case 2
a=Biblio_Option.Decodage_Rapport.Colonne2(index)
Case 3
a=Biblio_Option.Decodage_Rapport.Colonne3(index)
Case 4
a=Biblio_Option.Decodage_Rapport.Colonne4(index)
Case 5
a=Biblio_Option.Decodage_Rapport.Colonne5(index)
End Select
If Mid(ligne,a) = " truc" then
Mon action
End If
Loop While Colonne < ma limite
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 16 mai 2007 à 09:45
Salut,
Au vu du Type que tu utilises, je peux te conseiller d'utiliser un Tableau a 2 dimension, la premiere dimension représente l'indice de la colonne, le second la valeur associée
Syxfull
Messages postés19Date d'inscriptionjeudi 19 avril 2007StatutMembreDernière intervention12 juin 2007 16 mai 2007 à 09:47
le charmemetn en memoir est fait et fonctionne niquel et donc losque j'utilise
Biblio_Option.Decodage_Rapport.Colonne1(index) je visualise se qui est contenu dans la Section Colonne1 a la ligne Index
si on regarde mon ini donc : Biblio_Option.Decodage_Rapport.Colonne1(0)=21,8 voila
Ce 21,8 est utilisé dans mid(ligne,21,8) pour lire du 21ieme carractére jusqu'au 28ieme
tous sa marche je cherché juste une solution pour rendre la déclaration des Biblio_Option.Decodage_Rapport.Colonne1(index) dépendant du numéro de la boucle en cour boucle 2 Biblio_Option.Decodage_Rapport.Colonne"2"(index) voila tous
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 16 mai 2007 à 10:03
Salut,
Bah non tu ne perds pas l'avantage du fichier INI. c'est juste le remplissage qui va changer. ton fichir INI lui sert toujours à la meme chose.
Mias le traitement sera différent.