J'ai fait différents tests afin d'exploiter la focntion Split mais je
ne débouche sur rien de concret.
J'ai fait différents tests afin d'exploiter la focntion Split mais je
ne débouche sur rien de concret.
J'ai fait différents tests afin d'exploiter la focntion Split mais je
ne débouche sur rien de concret.
(par contre, je ne sais pas si on peut faire un split sur un vbcrlf)
(par contre, je ne sais pas si on peut faire un split sur un vbcrlf)
(par contre, je ne sais pas si on peut faire un split sur un vbcrlf)
Salutations *~Jean-Marc~* !
Dans <news:
tu nous disais :(par contre, je ne sais pas si on peut faire un split sur un vbcrlf)
Correction : on peut !
Test = "Machine1" & vbcrlf & "Machine2" & vbcrlf & "Machine3"
StrArrayTemp = split(Test, vbcrlf)
for i = 0 to Ubound(StrArrayTemp)
MsgBox StrArrayTemp(i)
next
@+
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Salutations *~Jean-Marc~* !
Dans <news:uef9sA7XFHA.3464@TK2MSFTNGP10.phx.gbl>
tu nous disais :
(par contre, je ne sais pas si on peut faire un split sur un vbcrlf)
Correction : on peut !
Test = "Machine1" & vbcrlf & "Machine2" & vbcrlf & "Machine3"
StrArrayTemp = split(Test, vbcrlf)
for i = 0 to Ubound(StrArrayTemp)
MsgBox StrArrayTemp(i)
next
@+
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Salutations *~Jean-Marc~* !
Dans <news:
tu nous disais :(par contre, je ne sais pas si on peut faire un split sur un vbcrlf)
Correction : on peut !
Test = "Machine1" & vbcrlf & "Machine2" & vbcrlf & "Machine3"
StrArrayTemp = split(Test, vbcrlf)
for i = 0 to Ubound(StrArrayTemp)
MsgBox StrArrayTemp(i)
next
@+
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Bonjour et merci pour ces informations.
Suite à vos indications, je ne sais pas si cette fonction est la plus
adaptée à mes besoins.
Peut être auriez vous une autre piste pour aborder mon problème:
je dispose d'un fichier à 4 colonnes
(nom_serveur1;type_imprimanteA;nom_imprimanteXXX;adresse_ip
nom_serveur2;type_imprimanteB;nom_imprimanteYYY;adresse_ip
nom_serveur1;type_imprimanteB;nom_imprimanteZZZ;adresse_ip...)
en fonction du nom_serveur que je connais je dois récupérer dans des
variables les 3 autres champs sachant qu'il peut il y avoir plusieur
fois présent le nom_serveur.
Donc je dois parcourir l'ensemble du fichier et à chaque fois que je
croise le nom_serveur en entrée, je dois ranger les 3 autres champs
qui suivent dans des variables puis faire une opération et
recommencer jusqu'à la fin du fichier.
J'arrive à récuperer un champs mais pas trois.
Bonjour et merci pour ces informations.
Suite à vos indications, je ne sais pas si cette fonction est la plus
adaptée à mes besoins.
Peut être auriez vous une autre piste pour aborder mon problème:
je dispose d'un fichier à 4 colonnes
(nom_serveur1;type_imprimanteA;nom_imprimanteXXX;adresse_ip
nom_serveur2;type_imprimanteB;nom_imprimanteYYY;adresse_ip
nom_serveur1;type_imprimanteB;nom_imprimanteZZZ;adresse_ip...)
en fonction du nom_serveur que je connais je dois récupérer dans des
variables les 3 autres champs sachant qu'il peut il y avoir plusieur
fois présent le nom_serveur.
Donc je dois parcourir l'ensemble du fichier et à chaque fois que je
croise le nom_serveur en entrée, je dois ranger les 3 autres champs
qui suivent dans des variables puis faire une opération et
recommencer jusqu'à la fin du fichier.
J'arrive à récuperer un champs mais pas trois.
Bonjour et merci pour ces informations.
Suite à vos indications, je ne sais pas si cette fonction est la plus
adaptée à mes besoins.
Peut être auriez vous une autre piste pour aborder mon problème:
je dispose d'un fichier à 4 colonnes
(nom_serveur1;type_imprimanteA;nom_imprimanteXXX;adresse_ip
nom_serveur2;type_imprimanteB;nom_imprimanteYYY;adresse_ip
nom_serveur1;type_imprimanteB;nom_imprimanteZZZ;adresse_ip...)
en fonction du nom_serveur que je connais je dois récupérer dans des
variables les 3 autres champs sachant qu'il peut il y avoir plusieur
fois présent le nom_serveur.
Donc je dois parcourir l'ensemble du fichier et à chaque fois que je
croise le nom_serveur en entrée, je dois ranger les 3 autres champs
qui suivent dans des variables puis faire une opération et
recommencer jusqu'à la fin du fichier.
J'arrive à récuperer un champs mais pas trois.
Bonjour et merci pour ces informations.
Suite à vos indications, je ne sais pas si cette fonction est la plus
adaptée à mes besoins.
Peut être auriez vous une autre piste pour aborder mon problème:
je dispose d'un fichier à 4 colonnes
(nom_serveur1;type_imprimanteA;nom_imprimanteXXX;adresse_ip
nom_serveur2;type_imprimanteB;nom_imprimanteYYY;adresse_ip
nom_serveur1;type_imprimanteB;nom_imprimanteZZZ;adresse_ip...)
en fonction du nom_serveur que je connais je dois récupérer dans des
variables les 3 autres champs sachant qu'il peut il y avoir plusieur
fois présent le nom_serveur.
Donc je dois parcourir l'ensemble du fichier et à chaque fois que je
croise le nom_serveur en entrée, je dois ranger les 3 autres champs
qui suivent dans des variables puis faire une opération et
recommencer jusqu'à la fin du fichier.
J'arrive à récuperer un champs mais pas trois.
En tout cas je vous remercie pour votre intervention
Raphaël
"~Jean-Marc~ [MVP]" wrote:Salutations *~Jean-Marc~* !
Dans <news:
tu nous disais :(par contre, je ne sais pas si on peut faire un split sur un vbcrlf)
Correction : on peut !
Test = "Machine1" & vbcrlf & "Machine2" & vbcrlf & "Machine3"
StrArrayTemp = split(Test, vbcrlf)
for i = 0 to Ubound(StrArrayTemp)
MsgBox StrArrayTemp(i)
next
@+
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Bonjour et merci pour ces informations.
Suite à vos indications, je ne sais pas si cette fonction est la plus
adaptée à mes besoins.
Peut être auriez vous une autre piste pour aborder mon problème:
je dispose d'un fichier à 4 colonnes
(nom_serveur1;type_imprimanteA;nom_imprimanteXXX;adresse_ip
nom_serveur2;type_imprimanteB;nom_imprimanteYYY;adresse_ip
nom_serveur1;type_imprimanteB;nom_imprimanteZZZ;adresse_ip...)
en fonction du nom_serveur que je connais je dois récupérer dans des
variables les 3 autres champs sachant qu'il peut il y avoir plusieur
fois présent le nom_serveur.
Donc je dois parcourir l'ensemble du fichier et à chaque fois que je
croise le nom_serveur en entrée, je dois ranger les 3 autres champs
qui suivent dans des variables puis faire une opération et
recommencer jusqu'à la fin du fichier.
J'arrive à récuperer un champs mais pas trois.
En tout cas je vous remercie pour votre intervention
Raphaël
"~Jean-Marc~ [MVP]" wrote:
Salutations *~Jean-Marc~* !
Dans <news:uef9sA7XFHA.3464@TK2MSFTNGP10.phx.gbl>
tu nous disais :
(par contre, je ne sais pas si on peut faire un split sur un vbcrlf)
Correction : on peut !
Test = "Machine1" & vbcrlf & "Machine2" & vbcrlf & "Machine3"
StrArrayTemp = split(Test, vbcrlf)
for i = 0 to Ubound(StrArrayTemp)
MsgBox StrArrayTemp(i)
next
@+
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Bonjour et merci pour ces informations.
Suite à vos indications, je ne sais pas si cette fonction est la plus
adaptée à mes besoins.
Peut être auriez vous une autre piste pour aborder mon problème:
je dispose d'un fichier à 4 colonnes
(nom_serveur1;type_imprimanteA;nom_imprimanteXXX;adresse_ip
nom_serveur2;type_imprimanteB;nom_imprimanteYYY;adresse_ip
nom_serveur1;type_imprimanteB;nom_imprimanteZZZ;adresse_ip...)
en fonction du nom_serveur que je connais je dois récupérer dans des
variables les 3 autres champs sachant qu'il peut il y avoir plusieur
fois présent le nom_serveur.
Donc je dois parcourir l'ensemble du fichier et à chaque fois que je
croise le nom_serveur en entrée, je dois ranger les 3 autres champs
qui suivent dans des variables puis faire une opération et
recommencer jusqu'à la fin du fichier.
J'arrive à récuperer un champs mais pas trois.
En tout cas je vous remercie pour votre intervention
Raphaël
"~Jean-Marc~ [MVP]" wrote:Salutations *~Jean-Marc~* !
Dans <news:
tu nous disais :(par contre, je ne sais pas si on peut faire un split sur un vbcrlf)
Correction : on peut !
Test = "Machine1" & vbcrlf & "Machine2" & vbcrlf & "Machine3"
StrArrayTemp = split(Test, vbcrlf)
for i = 0 to Ubound(StrArrayTemp)
MsgBox StrArrayTemp(i)
next
@+
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Dans le message:,Bonjour et merci pour ces informations.
Suite à vos indications, je ne sais pas si cette fonction est la plus
adaptée à mes besoins.
Peut être auriez vous une autre piste pour aborder mon problème:
je dispose d'un fichier à 4 colonnes
(nom_serveur1;type_imprimanteA;nom_imprimanteXXX;adresse_ip
nom_serveur2;type_imprimanteB;nom_imprimanteYYY;adresse_ip
nom_serveur1;type_imprimanteB;nom_imprimanteZZZ;adresse_ip...)
en fonction du nom_serveur que je connais je dois récupérer dans des
variables les 3 autres champs sachant qu'il peut il y avoir plusieur
fois présent le nom_serveur.
Donc je dois parcourir l'ensemble du fichier et à chaque fois que je
croise le nom_serveur en entrée, je dois ranger les 3 autres champs
qui suivent dans des variables puis faire une opération et
recommencer jusqu'à la fin du fichier.
J'arrive à récuperer un champs mais pas trois.
En tout cas je vous remercie pour votre intervention
Raphaël
"~Jean-Marc~ [MVP]" wrote:Salutations *~Jean-Marc~* !
Dans <news:
tu nous disais :(par contre, je ne sais pas si on peut faire un split sur un vbcrlf)
Correction : on peut !
Test = "Machine1" & vbcrlf & "Machine2" & vbcrlf & "Machine3"
StrArrayTemp = split(Test, vbcrlf)
for i = 0 to Ubound(StrArrayTemp)
MsgBox StrArrayTemp(i)
next
@+
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Bonjour,
Pour un tel fichier, l'utilisation d'une connexion type base de données
pourrait te simplifier la tâche.
exemple :
8<------------------------
Set oConnection=createObject( _
"ADODB.Connection")
oConnection.Open _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=c:;" & _
"Extensions=asc,csv,tab,txt"
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv " & _
"WHERE srv='nom_serveur1'")
While Not oRecordSet.EOF
MsgBox oRecordSet("srv")
oRecordSet.MoveNext
Wend
oConnection.Close
8<---------------------------
J'ai simplement ajouté une ligne d'en-tête au dessus des trois lignes que tu
donnes en exemple.
Le fichier texte ainsi obtenu est enregistré à la racine du lecteur c: sous
le nom 'source.csv'.
'srv' correspond au nom de la première colonne.
On peut faire les choses un peu plus rigoureusement en utilisant les objets
de type 'parameter' mais je pense que cela suffira ainsi dans ton cas.
Fais attention au cas où les lignes de l'exemple seraient coupées. Je les ai
raccourci mais sait-on jamais.
--
Fred
Dans le message:428FB358-C84F-4696-B3DC-150410C3268F@microsoft.com,
Bonjour et merci pour ces informations.
Suite à vos indications, je ne sais pas si cette fonction est la plus
adaptée à mes besoins.
Peut être auriez vous une autre piste pour aborder mon problème:
je dispose d'un fichier à 4 colonnes
(nom_serveur1;type_imprimanteA;nom_imprimanteXXX;adresse_ip
nom_serveur2;type_imprimanteB;nom_imprimanteYYY;adresse_ip
nom_serveur1;type_imprimanteB;nom_imprimanteZZZ;adresse_ip...)
en fonction du nom_serveur que je connais je dois récupérer dans des
variables les 3 autres champs sachant qu'il peut il y avoir plusieur
fois présent le nom_serveur.
Donc je dois parcourir l'ensemble du fichier et à chaque fois que je
croise le nom_serveur en entrée, je dois ranger les 3 autres champs
qui suivent dans des variables puis faire une opération et
recommencer jusqu'à la fin du fichier.
J'arrive à récuperer un champs mais pas trois.
En tout cas je vous remercie pour votre intervention
Raphaël
"~Jean-Marc~ [MVP]" wrote:
Salutations *~Jean-Marc~* !
Dans <news:uef9sA7XFHA.3464@TK2MSFTNGP10.phx.gbl>
tu nous disais :
(par contre, je ne sais pas si on peut faire un split sur un vbcrlf)
Correction : on peut !
Test = "Machine1" & vbcrlf & "Machine2" & vbcrlf & "Machine3"
StrArrayTemp = split(Test, vbcrlf)
for i = 0 to Ubound(StrArrayTemp)
MsgBox StrArrayTemp(i)
next
@+
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Bonjour,
Pour un tel fichier, l'utilisation d'une connexion type base de données
pourrait te simplifier la tâche.
exemple :
8<------------------------
Set oConnection=createObject( _
"ADODB.Connection")
oConnection.Open _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=c:;" & _
"Extensions=asc,csv,tab,txt"
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv " & _
"WHERE srv='nom_serveur1'")
While Not oRecordSet.EOF
MsgBox oRecordSet("srv")
oRecordSet.MoveNext
Wend
oConnection.Close
8<---------------------------
J'ai simplement ajouté une ligne d'en-tête au dessus des trois lignes que tu
donnes en exemple.
Le fichier texte ainsi obtenu est enregistré à la racine du lecteur c: sous
le nom 'source.csv'.
'srv' correspond au nom de la première colonne.
On peut faire les choses un peu plus rigoureusement en utilisant les objets
de type 'parameter' mais je pense que cela suffira ainsi dans ton cas.
Fais attention au cas où les lignes de l'exemple seraient coupées. Je les ai
raccourci mais sait-on jamais.
--
Fred
Dans le message:,Bonjour et merci pour ces informations.
Suite à vos indications, je ne sais pas si cette fonction est la plus
adaptée à mes besoins.
Peut être auriez vous une autre piste pour aborder mon problème:
je dispose d'un fichier à 4 colonnes
(nom_serveur1;type_imprimanteA;nom_imprimanteXXX;adresse_ip
nom_serveur2;type_imprimanteB;nom_imprimanteYYY;adresse_ip
nom_serveur1;type_imprimanteB;nom_imprimanteZZZ;adresse_ip...)
en fonction du nom_serveur que je connais je dois récupérer dans des
variables les 3 autres champs sachant qu'il peut il y avoir plusieur
fois présent le nom_serveur.
Donc je dois parcourir l'ensemble du fichier et à chaque fois que je
croise le nom_serveur en entrée, je dois ranger les 3 autres champs
qui suivent dans des variables puis faire une opération et
recommencer jusqu'à la fin du fichier.
J'arrive à récuperer un champs mais pas trois.
En tout cas je vous remercie pour votre intervention
Raphaël
"~Jean-Marc~ [MVP]" wrote:Salutations *~Jean-Marc~* !
Dans <news:
tu nous disais :(par contre, je ne sais pas si on peut faire un split sur un vbcrlf)
Correction : on peut !
Test = "Machine1" & vbcrlf & "Machine2" & vbcrlf & "Machine3"
StrArrayTemp = split(Test, vbcrlf)
for i = 0 to Ubound(StrArrayTemp)
MsgBox StrArrayTemp(i)
next
@+
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Bonjour,
Pour un tel fichier, l'utilisation d'une connexion type base de données
pourrait te simplifier la tâche.
exemple :
8<------------------------
Set oConnection=createObject( _
"ADODB.Connection")
oConnection.Open _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=c:;" & _
"Extensions=asc,csv,tab,txt"
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv " & _
"WHERE srv='nom_serveur1'")
While Not oRecordSet.EOF
MsgBox oRecordSet("srv")
oRecordSet.MoveNext
Wend
oConnection.Close
8<---------------------------
J'ai simplement ajouté une ligne d'en-tête au dessus des trois lignes que tu
donnes en exemple.
Le fichier texte ainsi obtenu est enregistré à la racine du lecteur c: sous
le nom 'source.csv'.
'srv' correspond au nom de la première colonne.
On peut faire les choses un peu plus rigoureusement en utilisant les objets
de type 'parameter' mais je pense que cela suffira ainsi dans ton cas.
Fais attention au cas où les lignes de l'exemple seraient coupées. Je les ai
raccourci mais sait-on jamais.
--
Fred
Fred, Jean-Marc,
Je vous remercie de l'intérêt que vous portez à mon problème.
Jean-marc as tu reçu mon mail avec les sources du script et le
fichier txt ? je suis passé par l'adresse
http://msmvps.com/docxp/contact.aspx
Fred, merci pour ta nouvelle orientation.
Si j'ai bien compris srv est l'entête de ma première colonne, mais
comment j'accede à la suite de l'enregistrement (les trois autres
colonnes).
en faite je ne désire pas les afficher mais les rentrer dans 3
variables distinctes afin d'effectuer une opération derrière
(installation d'une imprimante en locale via un outil)
(respectivement type_imprimante, nom_imprimante et adresse_ip)
En tout cas merci pour tout à vous deux
RaphaëlDans le message:,Bonjour et merci pour ces informations.
Suite à vos indications, je ne sais pas si cette fonction est la
plus adaptée à mes besoins.
Peut être auriez vous une autre piste pour aborder mon problème:
je dispose d'un fichier à 4 colonnes
(nom_serveur1;type_imprimanteA;nom_imprimanteXXX;adresse_ip
nom_serveur2;type_imprimanteB;nom_imprimanteYYY;adresse_ip
nom_serveur1;type_imprimanteB;nom_imprimanteZZZ;adresse_ip...)
en fonction du nom_serveur que je connais je dois récupérer dans des
variables les 3 autres champs sachant qu'il peut il y avoir plusieur
fois présent le nom_serveur.
Donc je dois parcourir l'ensemble du fichier et à chaque fois que je
croise le nom_serveur en entrée, je dois ranger les 3 autres champs
qui suivent dans des variables puis faire une opération et
recommencer jusqu'à la fin du fichier.
J'arrive à récuperer un champs mais pas trois.
En tout cas je vous remercie pour votre intervention
Raphaël
"~Jean-Marc~ [MVP]" wrote:Salutations *~Jean-Marc~* !
Dans <news:
tu nous disais :(par contre, je ne sais pas si on peut faire un split sur un
vbcrlf)
Correction : on peut !
Test = "Machine1" & vbcrlf & "Machine2" & vbcrlf & "Machine3"
StrArrayTemp = split(Test, vbcrlf)
for i = 0 to Ubound(StrArrayTemp)
MsgBox StrArrayTemp(i)
next
@+
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Bonjour,
Pour un tel fichier, l'utilisation d'une connexion type base de
données pourrait te simplifier la tâche.
exemple :
8<------------------------
Set oConnection=createObject( _
"ADODB.Connection")
oConnection.Open _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=c:;" & _
"Extensions=asc,csv,tab,txt"
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv " & _
"WHERE srv='nom_serveur1'")
While Not oRecordSet.EOF
MsgBox oRecordSet("srv")
oRecordSet.MoveNext
Wend
oConnection.Close
8<---------------------------
J'ai simplement ajouté une ligne d'en-tête au dessus des trois
lignes que tu donnes en exemple.
Le fichier texte ainsi obtenu est enregistré à la racine du lecteur
c: sous le nom 'source.csv'.
'srv' correspond au nom de la première colonne.
On peut faire les choses un peu plus rigoureusement en utilisant les
objets de type 'parameter' mais je pense que cela suffira ainsi dans
ton cas.
Fais attention au cas où les lignes de l'exemple seraient coupées.
Je les ai raccourci mais sait-on jamais.
--
Fred
Fred, Jean-Marc,
Je vous remercie de l'intérêt que vous portez à mon problème.
Jean-marc as tu reçu mon mail avec les sources du script et le
fichier txt ? je suis passé par l'adresse
http://msmvps.com/docxp/contact.aspx
Fred, merci pour ta nouvelle orientation.
Si j'ai bien compris srv est l'entête de ma première colonne, mais
comment j'accede à la suite de l'enregistrement (les trois autres
colonnes).
en faite je ne désire pas les afficher mais les rentrer dans 3
variables distinctes afin d'effectuer une opération derrière
(installation d'une imprimante en locale via un outil)
(respectivement type_imprimante, nom_imprimante et adresse_ip)
En tout cas merci pour tout à vous deux
Raphaël
Dans le message:428FB358-C84F-4696-B3DC-150410C3268F@microsoft.com,
Bonjour et merci pour ces informations.
Suite à vos indications, je ne sais pas si cette fonction est la
plus adaptée à mes besoins.
Peut être auriez vous une autre piste pour aborder mon problème:
je dispose d'un fichier à 4 colonnes
(nom_serveur1;type_imprimanteA;nom_imprimanteXXX;adresse_ip
nom_serveur2;type_imprimanteB;nom_imprimanteYYY;adresse_ip
nom_serveur1;type_imprimanteB;nom_imprimanteZZZ;adresse_ip...)
en fonction du nom_serveur que je connais je dois récupérer dans des
variables les 3 autres champs sachant qu'il peut il y avoir plusieur
fois présent le nom_serveur.
Donc je dois parcourir l'ensemble du fichier et à chaque fois que je
croise le nom_serveur en entrée, je dois ranger les 3 autres champs
qui suivent dans des variables puis faire une opération et
recommencer jusqu'à la fin du fichier.
J'arrive à récuperer un champs mais pas trois.
En tout cas je vous remercie pour votre intervention
Raphaël
"~Jean-Marc~ [MVP]" wrote:
Salutations *~Jean-Marc~* !
Dans <news:uef9sA7XFHA.3464@TK2MSFTNGP10.phx.gbl>
tu nous disais :
(par contre, je ne sais pas si on peut faire un split sur un
vbcrlf)
Correction : on peut !
Test = "Machine1" & vbcrlf & "Machine2" & vbcrlf & "Machine3"
StrArrayTemp = split(Test, vbcrlf)
for i = 0 to Ubound(StrArrayTemp)
MsgBox StrArrayTemp(i)
next
@+
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Bonjour,
Pour un tel fichier, l'utilisation d'une connexion type base de
données pourrait te simplifier la tâche.
exemple :
8<------------------------
Set oConnection=createObject( _
"ADODB.Connection")
oConnection.Open _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=c:;" & _
"Extensions=asc,csv,tab,txt"
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv " & _
"WHERE srv='nom_serveur1'")
While Not oRecordSet.EOF
MsgBox oRecordSet("srv")
oRecordSet.MoveNext
Wend
oConnection.Close
8<---------------------------
J'ai simplement ajouté une ligne d'en-tête au dessus des trois
lignes que tu donnes en exemple.
Le fichier texte ainsi obtenu est enregistré à la racine du lecteur
c: sous le nom 'source.csv'.
'srv' correspond au nom de la première colonne.
On peut faire les choses un peu plus rigoureusement en utilisant les
objets de type 'parameter' mais je pense que cela suffira ainsi dans
ton cas.
Fais attention au cas où les lignes de l'exemple seraient coupées.
Je les ai raccourci mais sait-on jamais.
--
Fred
Fred, Jean-Marc,
Je vous remercie de l'intérêt que vous portez à mon problème.
Jean-marc as tu reçu mon mail avec les sources du script et le
fichier txt ? je suis passé par l'adresse
http://msmvps.com/docxp/contact.aspx
Fred, merci pour ta nouvelle orientation.
Si j'ai bien compris srv est l'entête de ma première colonne, mais
comment j'accede à la suite de l'enregistrement (les trois autres
colonnes).
en faite je ne désire pas les afficher mais les rentrer dans 3
variables distinctes afin d'effectuer une opération derrière
(installation d'une imprimante en locale via un outil)
(respectivement type_imprimante, nom_imprimante et adresse_ip)
En tout cas merci pour tout à vous deux
RaphaëlDans le message:,Bonjour et merci pour ces informations.
Suite à vos indications, je ne sais pas si cette fonction est la
plus adaptée à mes besoins.
Peut être auriez vous une autre piste pour aborder mon problème:
je dispose d'un fichier à 4 colonnes
(nom_serveur1;type_imprimanteA;nom_imprimanteXXX;adresse_ip
nom_serveur2;type_imprimanteB;nom_imprimanteYYY;adresse_ip
nom_serveur1;type_imprimanteB;nom_imprimanteZZZ;adresse_ip...)
en fonction du nom_serveur que je connais je dois récupérer dans des
variables les 3 autres champs sachant qu'il peut il y avoir plusieur
fois présent le nom_serveur.
Donc je dois parcourir l'ensemble du fichier et à chaque fois que je
croise le nom_serveur en entrée, je dois ranger les 3 autres champs
qui suivent dans des variables puis faire une opération et
recommencer jusqu'à la fin du fichier.
J'arrive à récuperer un champs mais pas trois.
En tout cas je vous remercie pour votre intervention
Raphaël
"~Jean-Marc~ [MVP]" wrote:Salutations *~Jean-Marc~* !
Dans <news:
tu nous disais :(par contre, je ne sais pas si on peut faire un split sur un
vbcrlf)
Correction : on peut !
Test = "Machine1" & vbcrlf & "Machine2" & vbcrlf & "Machine3"
StrArrayTemp = split(Test, vbcrlf)
for i = 0 to Ubound(StrArrayTemp)
MsgBox StrArrayTemp(i)
next
@+
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Bonjour,
Pour un tel fichier, l'utilisation d'une connexion type base de
données pourrait te simplifier la tâche.
exemple :
8<------------------------
Set oConnection=createObject( _
"ADODB.Connection")
oConnection.Open _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=c:;" & _
"Extensions=asc,csv,tab,txt"
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv " & _
"WHERE srv='nom_serveur1'")
While Not oRecordSet.EOF
MsgBox oRecordSet("srv")
oRecordSet.MoveNext
Wend
oConnection.Close
8<---------------------------
J'ai simplement ajouté une ligne d'en-tête au dessus des trois
lignes que tu donnes en exemple.
Le fichier texte ainsi obtenu est enregistré à la racine du lecteur
c: sous le nom 'source.csv'.
'srv' correspond au nom de la première colonne.
On peut faire les choses un peu plus rigoureusement en utilisant les
objets de type 'parameter' mais je pense que cela suffira ainsi dans
ton cas.
Fais attention au cas où les lignes de l'exemple seraient coupées.
Je les ai raccourci mais sait-on jamais.
--
Fred
Set oConnection=createObject( _
"ADODB.Connection")
oConnection.Open _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=c:;" & _
"Extensions=asc,csv,tab,txt"
Dans son message
moratella nous dit :Fred, Jean-Marc,
Je vous remercie de l'intérêt que vous portez à mon problème.
Jean-marc as tu reçu mon mail avec les sources du script et le
fichier txt ? je suis passé par l'adresse
http://msmvps.com/docxp/contact.aspx
Fred, merci pour ta nouvelle orientation.
Si j'ai bien compris srv est l'entête de ma première colonne, mais
comment j'accede à la suite de l'enregistrement (les trois autres
colonnes).
en faite je ne désire pas les afficher mais les rentrer dans 3
variables distinctes afin d'effectuer une opération derrière
(installation d'une imprimante en locale via un outil)
(respectivement type_imprimante, nom_imprimante et adresse_ip)
En tout cas merci pour tout à vous deux
RaphaëlDans le message:,Bonjour et merci pour ces informations.
Suite à vos indications, je ne sais pas si cette fonction est la
plus adaptée à mes besoins.
Peut être auriez vous une autre piste pour aborder mon problème:
je dispose d'un fichier à 4 colonnes
(nom_serveur1;type_imprimanteA;nom_imprimanteXXX;adresse_ip
nom_serveur2;type_imprimanteB;nom_imprimanteYYY;adresse_ip
nom_serveur1;type_imprimanteB;nom_imprimanteZZZ;adresse_ip...)
en fonction du nom_serveur que je connais je dois récupérer dans des
variables les 3 autres champs sachant qu'il peut il y avoir plusieur
fois présent le nom_serveur.
Donc je dois parcourir l'ensemble du fichier et à chaque fois que je
croise le nom_serveur en entrée, je dois ranger les 3 autres champs
qui suivent dans des variables puis faire une opération et
recommencer jusqu'à la fin du fichier.
J'arrive à récuperer un champs mais pas trois.
En tout cas je vous remercie pour votre intervention
Raphaël
"~Jean-Marc~ [MVP]" wrote:Salutations *~Jean-Marc~* !
Dans <news:
tu nous disais :(par contre, je ne sais pas si on peut faire un split sur un
vbcrlf)
Correction : on peut !
Test = "Machine1" & vbcrlf & "Machine2" & vbcrlf & "Machine3"
StrArrayTemp = split(Test, vbcrlf)
for i = 0 to Ubound(StrArrayTemp)
MsgBox StrArrayTemp(i)
next
@+
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Bonjour,
Pour un tel fichier, l'utilisation d'une connexion type base de
données pourrait te simplifier la tâche.
exemple :
8<------------------------
Set oConnection=createObject( _
"ADODB.Connection")
oConnection.Open _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=c:;" & _
"Extensions=asc,csv,tab,txt"
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv " & _
"WHERE srv='nom_serveur1'")
While Not oRecordSet.EOF
MsgBox oRecordSet("srv")
oRecordSet.MoveNext
Wend
oConnection.Close
8<---------------------------
J'ai simplement ajouté une ligne d'en-tête au dessus des trois
lignes que tu donnes en exemple.
Le fichier texte ainsi obtenu est enregistré à la racine du lecteur
c: sous le nom 'source.csv'.
'srv' correspond au nom de la première colonne.
On peut faire les choses un peu plus rigoureusement en utilisant les
objets de type 'parameter' mais je pense que cela suffira ainsi dans
ton cas.
Fais attention au cas où les lignes de l'exemple seraient coupées.
Je les ai raccourci mais sait-on jamais.
--
Fred
Oui, j'avais un peu trop raccourci la ligne !
En fait tu accèdes au contenu des différentes colonnes par leur nom.
J'avais écrit oRecordSet("srv") pour récupérer le contenu de la colonne srv.
Tu peux faire de même avec :
8<------
Type_Imp = oRecordSet("typeimp")
Nom_Imp = oRecordSet("nomimp")
Adr_Imp = oRecordSet("adrimp")
8<-------
Ici tu récupères les données dans trois variables comme tu le souhaitais.
Je suppose bien sûr que typeimp, nomimp et adrimp sont les en-têtes des
trois dernière colonnes.
Tu peux aussi supprimer la clause WHERE que j'avais mis pour l'exemple et
illustrer le fait qu'on a une grande souplesse pour l'extraction des
données.
La ligne deviendrait :
8<---------
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv "
8<---------
--
Fred
Set oConnection=createObject( _
"ADODB.Connection")
oConnection.Open _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=c:;" & _
"Extensions=asc,csv,tab,txt"
Dans son message 6FC8CF67-B608-4407-B19E-93116F12261F@microsoft.com
moratella nous dit :
Fred, Jean-Marc,
Je vous remercie de l'intérêt que vous portez à mon problème.
Jean-marc as tu reçu mon mail avec les sources du script et le
fichier txt ? je suis passé par l'adresse
http://msmvps.com/docxp/contact.aspx
Fred, merci pour ta nouvelle orientation.
Si j'ai bien compris srv est l'entête de ma première colonne, mais
comment j'accede à la suite de l'enregistrement (les trois autres
colonnes).
en faite je ne désire pas les afficher mais les rentrer dans 3
variables distinctes afin d'effectuer une opération derrière
(installation d'une imprimante en locale via un outil)
(respectivement type_imprimante, nom_imprimante et adresse_ip)
En tout cas merci pour tout à vous deux
Raphaël
Dans le message:428FB358-C84F-4696-B3DC-150410C3268F@microsoft.com,
Bonjour et merci pour ces informations.
Suite à vos indications, je ne sais pas si cette fonction est la
plus adaptée à mes besoins.
Peut être auriez vous une autre piste pour aborder mon problème:
je dispose d'un fichier à 4 colonnes
(nom_serveur1;type_imprimanteA;nom_imprimanteXXX;adresse_ip
nom_serveur2;type_imprimanteB;nom_imprimanteYYY;adresse_ip
nom_serveur1;type_imprimanteB;nom_imprimanteZZZ;adresse_ip...)
en fonction du nom_serveur que je connais je dois récupérer dans des
variables les 3 autres champs sachant qu'il peut il y avoir plusieur
fois présent le nom_serveur.
Donc je dois parcourir l'ensemble du fichier et à chaque fois que je
croise le nom_serveur en entrée, je dois ranger les 3 autres champs
qui suivent dans des variables puis faire une opération et
recommencer jusqu'à la fin du fichier.
J'arrive à récuperer un champs mais pas trois.
En tout cas je vous remercie pour votre intervention
Raphaël
"~Jean-Marc~ [MVP]" wrote:
Salutations *~Jean-Marc~* !
Dans <news:uef9sA7XFHA.3464@TK2MSFTNGP10.phx.gbl>
tu nous disais :
(par contre, je ne sais pas si on peut faire un split sur un
vbcrlf)
Correction : on peut !
Test = "Machine1" & vbcrlf & "Machine2" & vbcrlf & "Machine3"
StrArrayTemp = split(Test, vbcrlf)
for i = 0 to Ubound(StrArrayTemp)
MsgBox StrArrayTemp(i)
next
@+
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Bonjour,
Pour un tel fichier, l'utilisation d'une connexion type base de
données pourrait te simplifier la tâche.
exemple :
8<------------------------
Set oConnection=createObject( _
"ADODB.Connection")
oConnection.Open _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=c:;" & _
"Extensions=asc,csv,tab,txt"
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv " & _
"WHERE srv='nom_serveur1'")
While Not oRecordSet.EOF
MsgBox oRecordSet("srv")
oRecordSet.MoveNext
Wend
oConnection.Close
8<---------------------------
J'ai simplement ajouté une ligne d'en-tête au dessus des trois
lignes que tu donnes en exemple.
Le fichier texte ainsi obtenu est enregistré à la racine du lecteur
c: sous le nom 'source.csv'.
'srv' correspond au nom de la première colonne.
On peut faire les choses un peu plus rigoureusement en utilisant les
objets de type 'parameter' mais je pense que cela suffira ainsi dans
ton cas.
Fais attention au cas où les lignes de l'exemple seraient coupées.
Je les ai raccourci mais sait-on jamais.
--
Fred
Oui, j'avais un peu trop raccourci la ligne !
En fait tu accèdes au contenu des différentes colonnes par leur nom.
J'avais écrit oRecordSet("srv") pour récupérer le contenu de la colonne srv.
Tu peux faire de même avec :
8<------
Type_Imp = oRecordSet("typeimp")
Nom_Imp = oRecordSet("nomimp")
Adr_Imp = oRecordSet("adrimp")
8<-------
Ici tu récupères les données dans trois variables comme tu le souhaitais.
Je suppose bien sûr que typeimp, nomimp et adrimp sont les en-têtes des
trois dernière colonnes.
Tu peux aussi supprimer la clause WHERE que j'avais mis pour l'exemple et
illustrer le fait qu'on a une grande souplesse pour l'extraction des
données.
La ligne deviendrait :
8<---------
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv "
8<---------
--
Fred
Set oConnection=createObject( _
"ADODB.Connection")
oConnection.Open _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=c:;" & _
"Extensions=asc,csv,tab,txt"
Dans son message
moratella nous dit :Fred, Jean-Marc,
Je vous remercie de l'intérêt que vous portez à mon problème.
Jean-marc as tu reçu mon mail avec les sources du script et le
fichier txt ? je suis passé par l'adresse
http://msmvps.com/docxp/contact.aspx
Fred, merci pour ta nouvelle orientation.
Si j'ai bien compris srv est l'entête de ma première colonne, mais
comment j'accede à la suite de l'enregistrement (les trois autres
colonnes).
en faite je ne désire pas les afficher mais les rentrer dans 3
variables distinctes afin d'effectuer une opération derrière
(installation d'une imprimante en locale via un outil)
(respectivement type_imprimante, nom_imprimante et adresse_ip)
En tout cas merci pour tout à vous deux
RaphaëlDans le message:,Bonjour et merci pour ces informations.
Suite à vos indications, je ne sais pas si cette fonction est la
plus adaptée à mes besoins.
Peut être auriez vous une autre piste pour aborder mon problème:
je dispose d'un fichier à 4 colonnes
(nom_serveur1;type_imprimanteA;nom_imprimanteXXX;adresse_ip
nom_serveur2;type_imprimanteB;nom_imprimanteYYY;adresse_ip
nom_serveur1;type_imprimanteB;nom_imprimanteZZZ;adresse_ip...)
en fonction du nom_serveur que je connais je dois récupérer dans des
variables les 3 autres champs sachant qu'il peut il y avoir plusieur
fois présent le nom_serveur.
Donc je dois parcourir l'ensemble du fichier et à chaque fois que je
croise le nom_serveur en entrée, je dois ranger les 3 autres champs
qui suivent dans des variables puis faire une opération et
recommencer jusqu'à la fin du fichier.
J'arrive à récuperer un champs mais pas trois.
En tout cas je vous remercie pour votre intervention
Raphaël
"~Jean-Marc~ [MVP]" wrote:Salutations *~Jean-Marc~* !
Dans <news:
tu nous disais :(par contre, je ne sais pas si on peut faire un split sur un
vbcrlf)
Correction : on peut !
Test = "Machine1" & vbcrlf & "Machine2" & vbcrlf & "Machine3"
StrArrayTemp = split(Test, vbcrlf)
for i = 0 to Ubound(StrArrayTemp)
MsgBox StrArrayTemp(i)
next
@+
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet : http://communautes-ms.akro-net.org/
Bonjour,
Pour un tel fichier, l'utilisation d'une connexion type base de
données pourrait te simplifier la tâche.
exemple :
8<------------------------
Set oConnection=createObject( _
"ADODB.Connection")
oConnection.Open _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=c:;" & _
"Extensions=asc,csv,tab,txt"
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv " & _
"WHERE srv='nom_serveur1'")
While Not oRecordSet.EOF
MsgBox oRecordSet("srv")
oRecordSet.MoveNext
Wend
oConnection.Close
8<---------------------------
J'ai simplement ajouté une ligne d'en-tête au dessus des trois
lignes que tu donnes en exemple.
Le fichier texte ainsi obtenu est enregistré à la racine du lecteur
c: sous le nom 'source.csv'.
'srv' correspond au nom de la première colonne.
On peut faire les choses un peu plus rigoureusement en utilisant les
objets de type 'parameter' mais je pense que cela suffira ainsi dans
ton cas.
Fais attention au cas où les lignes de l'exemple seraient coupées.
Je les ai raccourci mais sait-on jamais.
--
Fred
Oui, j'avais un peu trop raccourci la ligne !
En fait tu accèdes au contenu des différentes colonnes par leur nom.
J'avais écrit oRecordSet("srv") pour récupérer le contenu de la colonne srv.
Tu peux faire de même avec :
8<------
Type_Imp = oRecordSet("typeimp")
Nom_Imp = oRecordSet("nomimp")
Adr_Imp = oRecordSet("adrimp")
8<-------
Ici tu récupères les données dans trois variables comme tu le souhaitais.
Je suppose bien sûr que typeimp, nomimp et adrimp sont les en-têtes des
trois dernière colonnes.
Tu peux aussi supprimer la clause WHERE que j'avais mis pour l'exemple et
illustrer le fait qu'on a une grande souplesse pour l'extraction des
données.
La ligne deviendrait :
8<---------
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv "
8<---------
--
Fred
Jean-marc as tu reçu mon mail avec les sources du script et le
fichier txt ?
Jean-marc as tu reçu mon mail avec les sources du script et le
fichier txt ?
Jean-marc as tu reçu mon mail avec les sources du script et le
fichier txt ?
Merci Fred pour le complément d'info...
encore une dernière question... et oui..:-)
le select me permet bien de prendre la ligne qui contient le
nom-serveur que je connais et de récupérer par la suite les trois
autres champs avec le oRecordSet
donc si je veux effectuer cette opération à chaque fois que je
rencontre une ligne contenant le nom_serveur je dois faire :
While Not oRecordSet.EOF
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv " & _
"WHERE srv='nom_serveur1'")
Type_Imp = oRecordSet("typeimp")
Nom_Imp = oRecordSet("nomimp")
Adr_Imp = oRecordSet("adrimp")
"mon module d'installation de l'imprimante"
oRecordSet.MoveNext
Wend
où alors
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv " & _
"WHERE srv='nom_serveur1'")
While Not oRecordSet.EOF
Type_Imp = oRecordSet("typeimp")
Nom_Imp = oRecordSet("nomimp")
Adr_Imp = oRecordSet("adrimp")
oRecordSet.MoveNext
Wend
enfin dans cette partie:Set oConnection=createObject( _
"ADODB.Connection")
oConnection.Open _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=c:;" & _
"Extensions=asc,csv,tab,txt"
tu définie la connexion type base de données et je ne comprends pas
trop les associations d'extensions (asc,csv,tab,txt)
Cela transforme mon fichier .txt en .csv?
En tout cas merci de ta patience
RaphaëlDans son message
moratella nous dit :Fred, Jean-Marc,
Je vous remercie de l'intérêt que vous portez à mon problème.
Jean-marc as tu reçu mon mail avec les sources du script et le
fichier txt ? je suis passé par l'adresse
http://msmvps.com/docxp/contact.aspx
Fred, merci pour ta nouvelle orientation.
Si j'ai bien compris srv est l'entête de ma première colonne, mais
comment j'accede à la suite de l'enregistrement (les trois autres
colonnes).
en faite je ne désire pas les afficher mais les rentrer dans 3
variables distinctes afin d'effectuer une opération derrière
(installation d'une imprimante en locale via un outil)
(respectivement type_imprimante, nom_imprimante et adresse_ip)
En tout cas merci pour tout à vous deux
RaphaëlDans le message:,Bonjour et merci pour ces informations.
Suite à vos indications, je ne sais pas si cette fonction est la
plus adaptée à mes besoins.
Peut être auriez vous une autre piste pour aborder mon problème:
je dispose d'un fichier à 4 colonnes
(nom_serveur1;type_imprimanteA;nom_imprimanteXXX;adresse_ip
nom_serveur2;type_imprimanteB;nom_imprimanteYYY;adresse_ip
nom_serveur1;type_imprimanteB;nom_imprimanteZZZ;adresse_ip...)
en fonction du nom_serveur que je connais je dois récupérer dans
des variables les 3 autres champs sachant qu'il peut il y avoir
plusieur fois présent le nom_serveur.
Donc je dois parcourir l'ensemble du fichier et à chaque fois que
je croise le nom_serveur en entrée, je dois ranger les 3 autres
champs qui suivent dans des variables puis faire une opération et
recommencer jusqu'à la fin du fichier.
J'arrive à récuperer un champs mais pas trois.
En tout cas je vous remercie pour votre intervention
Raphaël
"~Jean-Marc~ [MVP]" wrote:Salutations *~Jean-Marc~* !
Dans <news:
tu nous disais :(par contre, je ne sais pas si on peut faire un split sur un
vbcrlf)
Correction : on peut !
Test = "Machine1" & vbcrlf & "Machine2" & vbcrlf & "Machine3"
StrArrayTemp = split(Test, vbcrlf)
for i = 0 to Ubound(StrArrayTemp)
MsgBox StrArrayTemp(i)
next
@+
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet :
http://communautes-ms.akro-net.org/
Bonjour,
Pour un tel fichier, l'utilisation d'une connexion type base de
données pourrait te simplifier la tâche.
exemple :
8<------------------------
Set oConnection=createObject( _
"ADODB.Connection")
oConnection.Open _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=c:;" & _
"Extensions=asc,csv,tab,txt"
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv " & _
"WHERE srv='nom_serveur1'")
While Not oRecordSet.EOF
MsgBox oRecordSet("srv")
oRecordSet.MoveNext
Wend
oConnection.Close
8<---------------------------
J'ai simplement ajouté une ligne d'en-tête au dessus des trois
lignes que tu donnes en exemple.
Le fichier texte ainsi obtenu est enregistré à la racine du lecteur
c: sous le nom 'source.csv'.
'srv' correspond au nom de la première colonne.
On peut faire les choses un peu plus rigoureusement en utilisant
les objets de type 'parameter' mais je pense que cela suffira
ainsi dans ton cas.
Fais attention au cas où les lignes de l'exemple seraient coupées.
Je les ai raccourci mais sait-on jamais.
--
Fred
Oui, j'avais un peu trop raccourci la ligne !
En fait tu accèdes au contenu des différentes colonnes par leur nom.
J'avais écrit oRecordSet("srv") pour récupérer le contenu de la
colonne srv. Tu peux faire de même avec :
8<------
Type_Imp = oRecordSet("typeimp")
Nom_Imp = oRecordSet("nomimp")
Adr_Imp = oRecordSet("adrimp")
8<-------
Ici tu récupères les données dans trois variables comme tu le
souhaitais.
Je suppose bien sûr que typeimp, nomimp et adrimp sont les en-têtes
des trois dernière colonnes.
Tu peux aussi supprimer la clause WHERE que j'avais mis pour
l'exemple et illustrer le fait qu'on a une grande souplesse pour
l'extraction des données.
La ligne deviendrait :
8<---------
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv "
8<---------
--
Fred
Merci Fred pour le complément d'info...
encore une dernière question... et oui..:-)
le select me permet bien de prendre la ligne qui contient le
nom-serveur que je connais et de récupérer par la suite les trois
autres champs avec le oRecordSet
donc si je veux effectuer cette opération à chaque fois que je
rencontre une ligne contenant le nom_serveur je dois faire :
While Not oRecordSet.EOF
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv " & _
"WHERE srv='nom_serveur1'")
Type_Imp = oRecordSet("typeimp")
Nom_Imp = oRecordSet("nomimp")
Adr_Imp = oRecordSet("adrimp")
"mon module d'installation de l'imprimante"
oRecordSet.MoveNext
Wend
où alors
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv " & _
"WHERE srv='nom_serveur1'")
While Not oRecordSet.EOF
Type_Imp = oRecordSet("typeimp")
Nom_Imp = oRecordSet("nomimp")
Adr_Imp = oRecordSet("adrimp")
oRecordSet.MoveNext
Wend
enfin dans cette partie:
Set oConnection=createObject( _
"ADODB.Connection")
oConnection.Open _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=c:;" & _
"Extensions=asc,csv,tab,txt"
tu définie la connexion type base de données et je ne comprends pas
trop les associations d'extensions (asc,csv,tab,txt)
Cela transforme mon fichier .txt en .csv?
En tout cas merci de ta patience
Raphaël
Dans son message 6FC8CF67-B608-4407-B19E-93116F12261F@microsoft.com
moratella nous dit :
Fred, Jean-Marc,
Je vous remercie de l'intérêt que vous portez à mon problème.
Jean-marc as tu reçu mon mail avec les sources du script et le
fichier txt ? je suis passé par l'adresse
http://msmvps.com/docxp/contact.aspx
Fred, merci pour ta nouvelle orientation.
Si j'ai bien compris srv est l'entête de ma première colonne, mais
comment j'accede à la suite de l'enregistrement (les trois autres
colonnes).
en faite je ne désire pas les afficher mais les rentrer dans 3
variables distinctes afin d'effectuer une opération derrière
(installation d'une imprimante en locale via un outil)
(respectivement type_imprimante, nom_imprimante et adresse_ip)
En tout cas merci pour tout à vous deux
Raphaël
Dans le message:428FB358-C84F-4696-B3DC-150410C3268F@microsoft.com,
Bonjour et merci pour ces informations.
Suite à vos indications, je ne sais pas si cette fonction est la
plus adaptée à mes besoins.
Peut être auriez vous une autre piste pour aborder mon problème:
je dispose d'un fichier à 4 colonnes
(nom_serveur1;type_imprimanteA;nom_imprimanteXXX;adresse_ip
nom_serveur2;type_imprimanteB;nom_imprimanteYYY;adresse_ip
nom_serveur1;type_imprimanteB;nom_imprimanteZZZ;adresse_ip...)
en fonction du nom_serveur que je connais je dois récupérer dans
des variables les 3 autres champs sachant qu'il peut il y avoir
plusieur fois présent le nom_serveur.
Donc je dois parcourir l'ensemble du fichier et à chaque fois que
je croise le nom_serveur en entrée, je dois ranger les 3 autres
champs qui suivent dans des variables puis faire une opération et
recommencer jusqu'à la fin du fichier.
J'arrive à récuperer un champs mais pas trois.
En tout cas je vous remercie pour votre intervention
Raphaël
"~Jean-Marc~ [MVP]" wrote:
Salutations *~Jean-Marc~* !
Dans <news:uef9sA7XFHA.3464@TK2MSFTNGP10.phx.gbl>
tu nous disais :
(par contre, je ne sais pas si on peut faire un split sur un
vbcrlf)
Correction : on peut !
Test = "Machine1" & vbcrlf & "Machine2" & vbcrlf & "Machine3"
StrArrayTemp = split(Test, vbcrlf)
for i = 0 to Ubound(StrArrayTemp)
MsgBox StrArrayTemp(i)
next
@+
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet :
http://communautes-ms.akro-net.org/
Bonjour,
Pour un tel fichier, l'utilisation d'une connexion type base de
données pourrait te simplifier la tâche.
exemple :
8<------------------------
Set oConnection=createObject( _
"ADODB.Connection")
oConnection.Open _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=c:;" & _
"Extensions=asc,csv,tab,txt"
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv " & _
"WHERE srv='nom_serveur1'")
While Not oRecordSet.EOF
MsgBox oRecordSet("srv")
oRecordSet.MoveNext
Wend
oConnection.Close
8<---------------------------
J'ai simplement ajouté une ligne d'en-tête au dessus des trois
lignes que tu donnes en exemple.
Le fichier texte ainsi obtenu est enregistré à la racine du lecteur
c: sous le nom 'source.csv'.
'srv' correspond au nom de la première colonne.
On peut faire les choses un peu plus rigoureusement en utilisant
les objets de type 'parameter' mais je pense que cela suffira
ainsi dans ton cas.
Fais attention au cas où les lignes de l'exemple seraient coupées.
Je les ai raccourci mais sait-on jamais.
--
Fred
Oui, j'avais un peu trop raccourci la ligne !
En fait tu accèdes au contenu des différentes colonnes par leur nom.
J'avais écrit oRecordSet("srv") pour récupérer le contenu de la
colonne srv. Tu peux faire de même avec :
8<------
Type_Imp = oRecordSet("typeimp")
Nom_Imp = oRecordSet("nomimp")
Adr_Imp = oRecordSet("adrimp")
8<-------
Ici tu récupères les données dans trois variables comme tu le
souhaitais.
Je suppose bien sûr que typeimp, nomimp et adrimp sont les en-têtes
des trois dernière colonnes.
Tu peux aussi supprimer la clause WHERE que j'avais mis pour
l'exemple et illustrer le fait qu'on a une grande souplesse pour
l'extraction des données.
La ligne deviendrait :
8<---------
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv "
8<---------
--
Fred
Merci Fred pour le complément d'info...
encore une dernière question... et oui..:-)
le select me permet bien de prendre la ligne qui contient le
nom-serveur que je connais et de récupérer par la suite les trois
autres champs avec le oRecordSet
donc si je veux effectuer cette opération à chaque fois que je
rencontre une ligne contenant le nom_serveur je dois faire :
While Not oRecordSet.EOF
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv " & _
"WHERE srv='nom_serveur1'")
Type_Imp = oRecordSet("typeimp")
Nom_Imp = oRecordSet("nomimp")
Adr_Imp = oRecordSet("adrimp")
"mon module d'installation de l'imprimante"
oRecordSet.MoveNext
Wend
où alors
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv " & _
"WHERE srv='nom_serveur1'")
While Not oRecordSet.EOF
Type_Imp = oRecordSet("typeimp")
Nom_Imp = oRecordSet("nomimp")
Adr_Imp = oRecordSet("adrimp")
oRecordSet.MoveNext
Wend
enfin dans cette partie:Set oConnection=createObject( _
"ADODB.Connection")
oConnection.Open _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=c:;" & _
"Extensions=asc,csv,tab,txt"
tu définie la connexion type base de données et je ne comprends pas
trop les associations d'extensions (asc,csv,tab,txt)
Cela transforme mon fichier .txt en .csv?
En tout cas merci de ta patience
RaphaëlDans son message
moratella nous dit :Fred, Jean-Marc,
Je vous remercie de l'intérêt que vous portez à mon problème.
Jean-marc as tu reçu mon mail avec les sources du script et le
fichier txt ? je suis passé par l'adresse
http://msmvps.com/docxp/contact.aspx
Fred, merci pour ta nouvelle orientation.
Si j'ai bien compris srv est l'entête de ma première colonne, mais
comment j'accede à la suite de l'enregistrement (les trois autres
colonnes).
en faite je ne désire pas les afficher mais les rentrer dans 3
variables distinctes afin d'effectuer une opération derrière
(installation d'une imprimante en locale via un outil)
(respectivement type_imprimante, nom_imprimante et adresse_ip)
En tout cas merci pour tout à vous deux
RaphaëlDans le message:,Bonjour et merci pour ces informations.
Suite à vos indications, je ne sais pas si cette fonction est la
plus adaptée à mes besoins.
Peut être auriez vous une autre piste pour aborder mon problème:
je dispose d'un fichier à 4 colonnes
(nom_serveur1;type_imprimanteA;nom_imprimanteXXX;adresse_ip
nom_serveur2;type_imprimanteB;nom_imprimanteYYY;adresse_ip
nom_serveur1;type_imprimanteB;nom_imprimanteZZZ;adresse_ip...)
en fonction du nom_serveur que je connais je dois récupérer dans
des variables les 3 autres champs sachant qu'il peut il y avoir
plusieur fois présent le nom_serveur.
Donc je dois parcourir l'ensemble du fichier et à chaque fois que
je croise le nom_serveur en entrée, je dois ranger les 3 autres
champs qui suivent dans des variables puis faire une opération et
recommencer jusqu'à la fin du fichier.
J'arrive à récuperer un champs mais pas trois.
En tout cas je vous remercie pour votre intervention
Raphaël
"~Jean-Marc~ [MVP]" wrote:Salutations *~Jean-Marc~* !
Dans <news:
tu nous disais :(par contre, je ne sais pas si on peut faire un split sur un
vbcrlf)
Correction : on peut !
Test = "Machine1" & vbcrlf & "Machine2" & vbcrlf & "Machine3"
StrArrayTemp = split(Test, vbcrlf)
for i = 0 to Ubound(StrArrayTemp)
MsgBox StrArrayTemp(i)
next
@+
--
~Jean-Marc~ MSAE & MVP Windows XP Fr
M'écrire : http://msmvps.com/docxp/contact.aspx
- http://docxp.mvps.org - http://msmvps.com/docxp/ -
Aide en DIRECT sur Internet :
http://communautes-ms.akro-net.org/
Bonjour,
Pour un tel fichier, l'utilisation d'une connexion type base de
données pourrait te simplifier la tâche.
exemple :
8<------------------------
Set oConnection=createObject( _
"ADODB.Connection")
oConnection.Open _
"Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=c:;" & _
"Extensions=asc,csv,tab,txt"
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv " & _
"WHERE srv='nom_serveur1'")
While Not oRecordSet.EOF
MsgBox oRecordSet("srv")
oRecordSet.MoveNext
Wend
oConnection.Close
8<---------------------------
J'ai simplement ajouté une ligne d'en-tête au dessus des trois
lignes que tu donnes en exemple.
Le fichier texte ainsi obtenu est enregistré à la racine du lecteur
c: sous le nom 'source.csv'.
'srv' correspond au nom de la première colonne.
On peut faire les choses un peu plus rigoureusement en utilisant
les objets de type 'parameter' mais je pense que cela suffira
ainsi dans ton cas.
Fais attention au cas où les lignes de l'exemple seraient coupées.
Je les ai raccourci mais sait-on jamais.
--
Fred
Oui, j'avais un peu trop raccourci la ligne !
En fait tu accèdes au contenu des différentes colonnes par leur nom.
J'avais écrit oRecordSet("srv") pour récupérer le contenu de la
colonne srv. Tu peux faire de même avec :
8<------
Type_Imp = oRecordSet("typeimp")
Nom_Imp = oRecordSet("nomimp")
Adr_Imp = oRecordSet("adrimp")
8<-------
Ici tu récupères les données dans trois variables comme tu le
souhaitais.
Je suppose bien sûr que typeimp, nomimp et adrimp sont les en-têtes
des trois dernière colonnes.
Tu peux aussi supprimer la clause WHERE que j'avais mis pour
l'exemple et illustrer le fait qu'on a une grande souplesse pour
l'extraction des données.
La ligne deviendrait :
8<---------
Set oRecordSet = oConnection.Execute( _
"SELECT * FROM source.csv "
8<---------
--
Fred