Lecture sur un fichier à interval regulier

Signaler
Messages postés
4
Date d'inscription
jeudi 11 novembre 2010
Statut
Membre
Dernière intervention
24 mai 2012
-
 Utilisateur anonyme -
Bonjour,

Je developpe une application que je telecommandais à l'aide d'une tablette tactile.
J'ai opté pour la méthode qui suit :

-Le PC va lire dans un fichier "A" sur un disque réseau les données toutes les 100ms
-La tablette va lire dans un fichier "B" sur un disque réseau les données toutes les 100ms

-la tablette va écrire une requête dans le fichier "A"
-Le PC répond à sa requête dans le fichier "B"

J'espère avoir été clair

le problème c'est que le PC se fait éjecter du réseau régulièrement

Je débute en programation et là à part passer la vitesse de 100ms à 500ms je bute un peu.
Quelqu'un aurait-il une autre solution ?

Cordialement

DECLERCK Cyril

7 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
Bonjour,
le problème c'est que le PC se fait éjecter du réseau régulièrement

- avec quel code ? (tu nous inondes de mots, mais pas une seule ligne de code !)
- un réseau protégé comment ? (accepte-t-il les robots ? s'il ne les accepte pas, c'est SON affaire et c'est LUI, qui gère l' "éjection", pas ton code)



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
4
Date d'inscription
jeudi 11 novembre 2010
Statut
Membre
Dernière intervention
24 mai 2012

je l'ai ecrit en VB 2010 express
le reseau est un réseau domestique (celui de mon domicile en wifi)

je lis le fichier avec cette fonction :

Function Lecture_Fichier(ByVal nom, ByVal rep)
Dim fichier, objet, liste(0)
liste(0) = "Err"
objet = CreateObject("Scripting.FileSystemObject")
If objet.FileExists(rep & nom) = True Then
fichier = objet.OpenTextFile(rep & nom)
Do Until fichier.AtEndOfStream = True
If liste(UBound(liste)) = "Err" Then
liste(UBound(liste)) = fichier.readline
Else
ReDim Preserve liste(UBound(liste) + 1)
liste(UBound(liste)) = fichier.readline
End If
Loop
fichier.Close()
End If
Lecture_Fichier = liste
End Function

et je crée le fichier avec cette fonction :

Sub Ecriture_Fichier(ByVal nom, ByVal rep, ByVal rpl, ByVal donnee)
Dim a, objet, liste, fichier
objet = CreateObject("Scripting.FileSystemObject")
If My.Computer.FileSystem.DirectoryExists(rep) True Or rep "" Then
If objet.FileExists(rep & nom) True And rpl 0 Then
liste = Me.Lecture_Fichier(nom, rep)
Else
ReDim liste(0)
End If
Else
rpl = 0
ReDim liste(0)
My.Computer.FileSystem.CreateDirectory(rep)
End If
fichier = objet.CreateTextFile(rep & nom, True)
If rpl = 0 Then
For a = 0 To UBound(liste)
If liste(a) <> Nothing Then
fichier.WriteLine(liste(a))
End If
Next a
End If
For a = 0 To UBound(donnee)
fichier.WriteLine(donnee(a))
Next
fichier.Close()
End Sub

Je me sers d'un timer pour executer la lecture ecriture toutes les 100ms

Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim lecture_reponse, donnee, lecture_demande
lecture_reponse = Menu_P.Lecture_Fichier(Me.nom_L, Menu_P.adrr_L)
If lecture_reponse(0) <> "Err" And lecture_reponse(0) <> "" Then
Call Me.Execution_reponce(lecture_reponse(0))
ReDim donnee(0)
Call Menu_P.Ecriture_Fichier(Me.nom_L, Menu_P.adrr_L, 1, donnee)
End If
lecture_demande = Menu_P.Lecture_Fichier(Me.nom_E, Menu_P.adrr_E)
If Me.liste_demande(0) <> Nothing And (lecture_demande(0) "Err" Or lecture_demande(0) "") Then
ReDim donnee(0)
donnee(0) = Me.liste_demande(0)
Call Menu_P.Ecriture_Fichier(Me.nom_E, Menu_P.adrr_E, 1, donnee)
If UBound(Me.liste_demande) = 0 Then
Me.liste_demande(0) = Nothing
Else
Me.liste_demande = Me.Supretion_liste(Me.liste_demande, 0)
End If
End If
End Sub

Mais là ce ne sont que des extraits de programme ... car le programme est bien plus vaste et je ne peux tout ecrire ici ...

A mon sens cela marche bien jusqu'à ce que l'ordinateur perde le reseau wifi je suis alors obligé de relancer le réseau sur le pc.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
je l'ai ecrit en VB 2010 express

Ah bon !
Mais tu as ouvert cette discussion dans la section :
Forum > Visual Basic 6

Raison pour laquelle j'ai lu ! A tort !
Bonne chance (VB.Net, connais pas).

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ

Bonsoir,

1 - Active Option Strict dans les propriétés du projet.
1 bis (facultatif) - Décoche l'import automatique de Microsoft Visual Basic
2 - Corrige ton code
3 - Colle le ici en te servant des balises de code (3eme depuis la droite)
Messages postés
4
Date d'inscription
jeudi 11 novembre 2010
Statut
Membre
Dernière intervention
24 mai 2012

pardon mais je ne suis pas un developpeur confirmé et là j'avoue mon incompréhension totale.
Où est l'option Strict je ne l'ai pas trouvée dans les propriétés du projet.
Et je ne comprends pas ce que je dois modifier et où je dois coller et ce que je dois coller

bref je suis perdu ....

mais merci quand même de s'intérésser à mon probleme

cyril
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
Bonjour,

quand tu postes du code, merci de lire le pont 2 de ma signature.
Pour avoir une bonne configuration du compilateur, merci de lire le point 3 de ma signature.

Une fois cela fait, si il te reste des erreurs que tu n'arrives pas à résoudre, reviens pour demander de l'aide :)

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site

Bonjour,

Ce que tu montres-là, ce n'est pas du (vrai) VB.net. C'est tout au plus du VB6, du VBScript ou du VBA importé dans VB.net et qui profite de compatibilité ascendante.

En VB.net, tu n'as absolument pas besoin de la bibliothèque Scripting et de son FileSystemObject. Le Framework a d'origine toutes les classes nécessaires pour lire et écrire directement un fichier.

Ouvre ton aide de VB 2010 et fait une recherche avec "fichier texte". Cela va t'ouvrir la porte vers une panoplie d'articles et d'exemples.