Recupérer des valeurs dans une chaine de caractere

cs_krousty Messages postés 29 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 25 mai 2008 - 23 juin 2006 à 15:18
cs_krousty Messages postés 29 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 25 mai 2008 - 24 juin 2006 à 14:19
Bonjour ,
j ai une base de donnée qui est reliée a un fichier excel (ce fichier contient les informations issuent d'un scan reseau ) et je me retrouve avec un champ comme celui si
"C: (total: 9,3 GB, free: 7,7 GB, file system: NTFS)" .
hors je souhaiterai ne recupéré que l'espace total du disque et l'espace libre pour apres faire quelque comparésons .
pour cela j'avai pensé a un petit truc du genre


total = Mid$(x, 3, 11)  // total recoi le les 3 caractere apres le 11eme
free = Mid$(x, 3,25)  // free recoi le les 3 caractere apres le 25eme
mais cette technique comporte quelque inconvenient ( si j'ai par exemple 10.5 au lieu de 9,3 c est mort vais pouvoir comparer total a un nombre par exemple ? )
je voulais donc savoir si il était possible de ne recupéré que les valeurs numeriques d'une chaine de caractere et si ces valeurs pouvai etre utilisé dans des comparaison du genre free < 2 ...
merci à vous
krousty

4 réponses

drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
23 juin 2006 à 15:25
Salut

Dim
taille()
Dim chemin as string

Dim tailletotal as single

chemin="C: (total: 9,3 GB, free: 7,7 GB, file system: NTFS)" 
taille = Split(chemin,


" "
, -1, CompareMethod.Text)
ca  ressort 9 chaines de caractère de 0 à 8
tu veut le 2eme

donc tailletotal = csng(taille(1))





 Drikce 06
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
23 juin 2006 à 15:28
j'ai pas pris en compte le c:
donc tu as 10 chaine de caractère
c'est tailletotal=csng(taille(2))
j'ai testé c'est bon ca fonctionne

 Drikce 06
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
23 juin 2006 à 15:43
Pour plus de détails

Dim taille()

Dim chemin
As
String
Dim tailletotal
As
Singlechemin =

"C: (total: 9,3 GB, free: 7,7 GB, file system: NTFS)"
taille = Split(chemin,
" ", -1, CompareMethod.Text)

'la fonction split sert à couper une chaine de caractere
'selon ce que tu veux en l'occurence ici un espace " "
'cela ressort 10 chaines des caractère de 0 à 9
taille(0) =
"C:"
taille(1) =
"(total:"
taille(2) =
"9,3"
taille(3) =
"GB,"
taille(4) =
"free"
taille(5) =
"7,7"
taille(6) =
"GB,"
taille(7) =
"file"
taille(8) =
"System"taille(9) "NTFS)"tailletotal

CSng(taille(2))MsgBox(

"Taille = " & tailletotal)

 Drikce 06
0
cs_krousty Messages postés 29 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 25 mai 2008
24 juin 2006 à 14:19
merci pour la rapidité de la reponse ainsi que sa clareté mais j'ai un message d erreur : "erreur d'execution 424 : objet requis " .
sur la ligne "taille = Split(chemin, " ", -1, CompareMethod.Text)".
 je pense que ça vient du CompareMethod.Text il n est pas dans mon explorateur d'objet .
j 'ai donc MAJ mon pack office 2003 sp2 (j'ai installé l ensemble de mise a jour disponible sur le site de microsoft ) mais rien a changer
si vous aviez une idée pour mettre a jour mes DAO ...
merci a vous
krousty
0
Rejoignez-nous