Tyrell2
Messages postés251Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention 2 novembre 2010
-
1 juin 2007 à 10:37
Tyrell2
Messages postés251Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention 2 novembre 2010
-
1 juin 2007 à 15:43
Bonjour,
j'ai un serveur d'imprimante qui partage des spool que je liste dans une listview.
j'utilise ensuite le "ListView1_ItemMouseHover" pour recuperer une partie de string dans le string comme ceci :
Dim
spool
As
String = e.Item.Text.ToUpper
Dim PrintModele
As
String = Strings.Right(spool, 8)
je fait comme ça car mes noms de spools sont formatés à l'identique et je veux surtout connaitre le modele de l'imprimante qui est en fin de nom
(exemple de spool pour une lexmark T623 : "N° imprimante_batiment_T632")
ensuite, je recupere la liste des fichiers textes contenus dans un repertoire comme ceci :
Dim ArrayFolder
As Array = Directory.GetFiles(
"C:\temp",
"*.TXT", SearchOption.TopDirectoryOnly)
et c'est mainentant que je sollicite votre aide pour ce que j'aimerai mettre en code :
comment faire pour comparer le string que je recupere à partir de mon spool pour verifier si un fichier texte correspondant existe dans le repertoire ?
sachant que le nomage du fichier texte est fixé par rapport au modele de l'imprimante,
par exemele : T632.txt, C910.txt, etc....
en resumé :
si par rapport à mon string 1 qui est egale à "xxx_T632.txt" (par rapport à mon exemple, je suis obligé de prendre plus de caracteres que j'en ai besoin dans mon "strings.right" vu que certains modeles ont des noms plus longs) il existe un fichier texte dont le nom correspond à une partie de ce string 1, alors..
c'est la methode de comparaison qui me bloque... j'essaye de partir sur ça mais ça donne rien :
If
InStr(PrintModele.ToUpper, ArrayFolder.ToString.ToUpper) > 0
Thenbesoin d'un coup de pouce svp. Merci !
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 1 juin 2007 à 11:22
Salut,
-> Editer tes posts: IMPOSSIBLE
-> Suppression: Un admin bienveillant le fera à ta place: Merci Admin
-> Pour ton problème: pas d'idée.
@+: Ju£i?n Pensez: Réponse acceptée
Tyrell2
Messages postés251Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention 2 novembre 2010 1 juin 2007 à 13:21
je sais bien... mais le probleme c'est que je suis tributaire d'une configuration existante, deja en place depuis un certain temps, et que tous les nom de spool n'ont pas forcement le "_" avant le nom du modele d'imprimante à la fin.
alors je fais ça je risque de recuperer une mauvaise info.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_lermite222
Messages postés492Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention 2 juillet 20124 1 juin 2007 à 13:37
bonjour,
dans la fonction
InStr(PrintModele.ToUpper, ArrayFolder.ToString.ToUpper) > 0 Then
en 1er paramètre tu met la chaine complète, mais tu oublie de mettre le paramètre de début de la comparaison !! soit 0 ou 1
InStr(1,
PrintModele.ToUpper, ArrayFolder.ToString.ToUpper) > 0 Then
ou, le paramètre start étant optionnel
InStr(
, PrintModele.ToUpper, ArrayFolder.ToString.ToUpper) > 0
Then
Tyrell2
Messages postés251Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention 2 novembre 2010 1 juin 2007 à 14:58
Non, je crois que le coup du 1 avant ne compte pas vraiment par rapport à mon probleme.
je suis passé par cette méthode et c'est déja mieux :
For Each IMP As String In ArrayFolder
If InStr(PrintModele.ToUpper, IMP.ToString.ToUpper) > 0 Then
End If
Next
la comparaison se fait, mais j'ai encore un probleme :
le string IMP = "C:\temp\le nom du modele.txt"
et maintenant je veux recuperer uniquement "nom du modele" comme string.
donc il faut que je degagae tout ce qui est avant ("c:\temp")
et tout ce qui est apres (".txt")
je vais voir ce que je peux faire avec le ".trim"