Comment lire les 188 derniers octets (caractères) d'un fichier texte ?

Résolu
ARENIUS Messages postés 16 Date d'inscription jeudi 27 janvier 2005 Statut Membre Dernière intervention 8 décembre 2005 - 4 nov. 2005 à 12:58
ARENIUS Messages postés 16 Date d'inscription jeudi 27 janvier 2005 Statut Membre Dernière intervention 8 décembre 2005 - 7 nov. 2005 à 09:41
Bonjour à tous,

Je suis en train de faire un programme de gestion des alarmes sur un parc d'équipement et je dois aller lire dans un fichier texte volumineux (254ko). Ce fichier est composé d'un succession de chaîne de caractères de 188 octets (ou caractères) accolés (sans séparation). Je veux pouvoir lire la dernière chaine de 188 octet à la fin du fichier et rechercher des chaines de caractères defaut ou alarme dans celle ci .

Comment faire pour lire la dernière chaîne de 188 octets du fichier ?

Merci d'avance!

7 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
4 nov. 2005 à 19:29
Salut
Cette technique fonctionnera (en vb.Net) mais tu seras obligé de lire toutes les données en mémoire. Si ton fichier est gros, ce n'est peut-être pas la bonne solution.
En VB6 :
Open monFichier For Binary As #1
Longueur = LOF(1)
Début = Longueur - 188
Chaine = Space$(188)
Get #1, Début, Chaine
Close #1
Le fait de préparer une chaine de longueur déterminée forcera le Get à lire cette longueur là.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
3
linasteph Messages postés 153 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 juillet 2009 1
7 nov. 2005 à 07:34
Ah oui parce que je me suis trompé c'est open Fso.textfile mais Fso.Opentextfile
3
linasteph Messages postés 153 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 juillet 2009 1
4 nov. 2005 à 13:28
si ce sont les 188 derniers caractères du fichier que tu veux lire voici ce que je te préconise:



dim FSO as New FileSystemObject

Dim tsFile as TextStream



set TsFile as FSO.textfile(MonfichierTexte,1)

sFile = tsFile.ReadAll

tsFile.Close



sString = right(sFile,188)

sString contient donc les 188 derniers caractères
0
linasteph Messages postés 153 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 juillet 2009 1
4 nov. 2005 à 13:35
Info complémentaire : FileSystemObject et TextStream sont disponibles si tu ajoute la référence "Microsoft scripting Runtime"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ARENIUS Messages postés 16 Date d'inscription jeudi 27 janvier 2005 Statut Membre Dernière intervention 8 décembre 2005
4 nov. 2005 à 13:57
Ok merci je vais essayer(pas aujourd'hui je n'ai pas le temps), mais est tu sur que les méthodes filesystemobject et textstream sont disponibles sur VB 6.0 ? Je crois me souvenir que ce n'est pas le cas....
0
ARENIUS Messages postés 16 Date d'inscription jeudi 27 janvier 2005 Statut Membre Dernière intervention 8 décembre 2005
4 nov. 2005 à 14:06
Arf j'ai quand même eu le temps d'essayer et le compilateur me fait une erreur (méthode or data number not found) en s'arrêtant sur FSO.textfile ...........
0
ARENIUS Messages postés 16 Date d'inscription jeudi 27 janvier 2005 Statut Membre Dernière intervention 8 décembre 2005
7 nov. 2005 à 09:41
Merci pour votre aide :D
0
Rejoignez-nous