Nous sommes actuellement le 12 Juil 2026, 11:44

Le fuseau horaire est UTC-5 heures [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 11 message(s) ] 
Auteur Message
 Sujet du message: Lire un fichier en VBS
MessagePublié: 28 Avr 2005, 10:02 
Hors-ligne
A réponse à tout!
A réponse à tout!
Avatar de l’utilisateur

Inscription : 10 Mars 2003, 09:59
Message(s) : 3265
Localisation : Québec
J'essaye de lire un fichier et le mettre dans un tableau étant donnée j'ai besoin seulement de l'avant dernière ligne.

c'est quoi la meilleur facon?

j'ai ca qui marche pas apparemment

Set F = Fichier.OpenTextFile("C:\windows\ms\sms\logs\sinv32.log")
i = 0
Do
i = i + 1
redim preserve FichierRetourner(i)
LigneAuFichier = F.Readline
FichierRetourner(i) = LigneAuFichier
Loop While F.atendofstream

_________________
Il sera dur d'être fidèle
Ce mois-ci les filles sont si belles
D'ailleurs je ne le serai pas
Alors pourquoi s'casser la tête
La vie est une grande fête


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 28 Avr 2005, 11:03 
Hors-ligne
Régulier
Régulier
Avatar de l’utilisateur

Inscription : 27 Juin 2002, 01:12
Message(s) : 458
Localisation : Québec
Ton code est bon à 2 petits détails près.

Rajoute en premiere ligne ceci:
Set Fichier = CreateObject("Scripting.FileSystemObject")

et à la fin de ta boucle tu as oublié le mot NOT si non il arrete à la premiere ligne.
Loop While NOT F.atendofstream

Tu peux ajouter cette ligne à la fin du fichier pour voir le contenu de la derniere ligne récupéré:
msgbox LigneAuFichier

_________________
Mon site personnel


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 28 Avr 2005, 11:06 
Hors-ligne
A réponse à tout!
A réponse à tout!
Avatar de l’utilisateur

Inscription : 10 Mars 2003, 09:59
Message(s) : 3265
Localisation : Québec
le set fichier était plus haut, oublier le coller...

et merci pour le loop, ca devrais régler mon problème

oh et je DÉTEST Vbscript

_________________
Il sera dur d'être fidèle
Ce mois-ci les filles sont si belles
D'ailleurs je ne le serai pas
Alors pourquoi s'casser la tête
La vie est une grande fête


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 28 Avr 2005, 11:57 
Hors-ligne
Fidèle
Fidèle
Avatar de l’utilisateur

Inscription : 17 Avr 2002, 21:36
Message(s) : 755
Localisation : Laval
Je rajouterais ces lignes à la fin :

Code :
F.Close
Set Fichier = Nothing


Personnellement je n'ai jamais eu de problème en oubliant de les mettre, mais selon mes profs, ça peut causer des problèmes.


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 28 Avr 2005, 12:10 
Hors-ligne
A réponse à tout!
A réponse à tout!
Avatar de l’utilisateur

Inscription : 10 Mars 2003, 09:59
Message(s) : 3265
Localisation : Québec
bah, je travaille avec du monde qui ferme même pas les fichiers dans leur programme ;)

_________________
Il sera dur d'être fidèle
Ce mois-ci les filles sont si belles
D'ailleurs je ne le serai pas
Alors pourquoi s'casser la tête
La vie est une grande fête


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 28 Avr 2005, 15:17 
Hors-ligne
A réponse à tout!
A réponse à tout!
Avatar de l’utilisateur

Inscription : 10 Mars 2003, 09:59
Message(s) : 3265
Localisation : Québec
une autre question dans la même ordre d'idée...

if InStr(1, UCase(FichierRetourner(i)), strDateSMS, 1) <> 0 Then

FichierRetourner(i) contient une ligne du fichier
strDateSMS contient une date dans le format MMM DD

ca marche pas. ca plate a tout coup.... qqn a une idée?

_________________
Il sera dur d'être fidèle
Ce mois-ci les filles sont si belles
D'ailleurs je ne le serai pas
Alors pourquoi s'casser la tête
La vie est une grande fête


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 28 Avr 2005, 18:55 
Hors-ligne
Référence
Référence
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 00:24
Message(s) : 5834
Chose certaine, puisque tu fait une recherche de type texte, la case importe pas, le ucase est donc superflu, tu peux essayer ceci:

if InStr(FichierRetourner(i), strDateSMS, 1) <> 0 Then

si ça plante encore, c'est qu'une de tes 2 données n'est pas une string et que sa conversion ne se fait pas automatiquement.

Qui sait, ton i est peut-être trop petit ou trop gros pour le tableau. Pour t'en assurer tu peux essayer:

strLigne = FichierRetourner(i)
if InStr(strLigne, strDateSMS, 1) <> 0 Then

_________________
This posting is provided "AS IS" with no warranties, and confers no rights!
©2006 - 2014 Jump


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 29 Avr 2005, 08:24 
Hors-ligne
Toujours là!
Toujours là!
Avatar de l’utilisateur

Inscription : 08 Jan 2002, 14:51
Message(s) : 1337
Localisation : Québec
psaindon a écrit:
Personnellement je n'ai jamais eu de problème en oubliant de les mettre, mais selon mes profs, ça peut causer des problèmes.


Le nombre de handle (fichier ouvert) est limité pour un programme sous Windows. Donc, si votre programme ouvre un fichier et se termine sans jamais le refermé c'est normal que vous n'avez pas de problèmes.

Par contre, ce n'est pas une bonne pratique de programmation. On ne sait jamais, votre code pourrait être utilisé en boucle par un autre programme et alors là ça ne fonctionnera plus.

C'est la même chose en C avec malloc et free, fopen et fclose, en C++ avec new et delete, etc. Un ne va pas sans l'autre ! Il faut parfois savoir écouter ses profs :D


Dernière édition par cro le 29 Avr 2005, 09:30, édité 1 fois.

Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 29 Avr 2005, 09:00 
Hors-ligne
A réponse à tout!
A réponse à tout!
Avatar de l’utilisateur

Inscription : 10 Mars 2003, 09:59
Message(s) : 3265
Localisation : Québec
Jump a écrit:
Chose certaine, puisque tu fait une recherche de type texte, la case importe pas, le ucase est donc superflu, tu peux essayer ceci:

if InStr(FichierRetourner(i), strDateSMS, 1) <> 0 Then

si ça plante encore, c'est qu'une de tes 2 données n'est pas une string et que sa conversion ne se fait pas automatiquement.

Qui sait, ton i est peut-être trop petit ou trop gros pour le tableau. Pour t'en assurer tu peux essayer:

strLigne = FichierRetourner(i)
if InStr(strLigne, strDateSMS, 1) <> 0 Then



marche toujours pas

est-ce que ca a de l"importance si strDateSMS = "apr 29" ? (chiffre et lettres

_________________
Il sera dur d'être fidèle
Ce mois-ci les filles sont si belles
D'ailleurs je ne le serai pas
Alors pourquoi s'casser la tête
La vie est une grande fête


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 29 Avr 2005, 10:20 
Hors-ligne
Référence
Référence
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 00:24
Message(s) : 5834
Enkiel a écrit:
est-ce que ca a de l"importance si strDateSMS = "apr 29" ? (chiffre et lettres

Non ça n'a pas d'importance.

Je regardais votre code pour lire le fichier, le tableau FichierRetourner va de 1 à n et non pas de 0 à n. Lorsque vous faite le instr, i vaut 1 et plus ou 0 et plus ?

_________________
This posting is provided "AS IS" with no warranties, and confers no rights!
©2006 - 2014 Jump


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 29 Avr 2005, 10:28 
Hors-ligne
A réponse à tout!
A réponse à tout!
Avatar de l’utilisateur

Inscription : 10 Mars 2003, 09:59
Message(s) : 3265
Localisation : Québec
Jump a écrit:
Enkiel a écrit:
est-ce que ca a de l"importance si strDateSMS = "apr 29" ? (chiffre et lettres

Non ça n'a pas d'importance.

Je regardais votre code pour lire le fichier, le tableau FichierRetourner va de 1 à n et non pas de 0 à n. Lorsque vous faite le instr, i vaut 1 et plus ou 0 et plus ?


la ligne que je prend est la bonne, donc ca a pas d'importance.

si je le fais chercher StrDateSMS, il plante

si je le fais juste chercher le mois ("apr" dans ce cas si) ca marche

si je le fais jsute chercher le nombre du jour ("29" dans ce cas si) ca plante

_________________
Il sera dur d'être fidèle
Ce mois-ci les filles sont si belles
D'ailleurs je ne le serai pas
Alors pourquoi s'casser la tête
La vie est une grande fête


Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 11 message(s) ] 

Le fuseau horaire est UTC-5 heures [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Recherche de:
Aller vers :  
cron
Propulsé par phpBB® Forum Software © phpBB Group
Traduction et support en françaisHébergement de site