| |
Consulter les messages sans réponse | Consulter les sujets actifs
|
Page 1 sur 1
|
[ 11 message(s) ] |
|
| Auteur |
Message |
|
Enkiel
|
Publié: 28 Avr 2005, 10:02 |
|
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 |
|
 |
|
End-i
|
Publié: 28 Avr 2005, 11:03 |
|
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
|
|
| Haut |
|
 |
|
Enkiel
|
Publié: 28 Avr 2005, 11:06 |
|
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 |
|
 |
|
psaindon
|
Publié: 28 Avr 2005, 11:57 |
|
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 |
|
 |
|
Enkiel
|
Publié: 28 Avr 2005, 12:10 |
|
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 |
|
 |
|
Enkiel
|
Publié: 28 Avr 2005, 15:17 |
|
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 |
|
 |
|
Jump
|
Publié: 28 Avr 2005, 18:55 |
|
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 |
|
 |
|
cro
|
Publié: 29 Avr 2005, 08:24 |
|
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 
Dernière édition par cro le 29 Avr 2005, 09:30, édité 1 fois.
|
|
| Haut |
|
 |
|
Enkiel
|
Publié: 29 Avr 2005, 09:00 |
|
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 |
|
 |
|
Jump
|
Publié: 29 Avr 2005, 10:20 |
|
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 |
|
 |
|
Enkiel
|
Publié: 29 Avr 2005, 10:28 |
|
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 |
|
 |
|
Page 1 sur 1
|
[ 11 message(s) ] |
|
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
|
|
|
|