IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

vérifier si le fichier est présent avant d'imprimer


Sujet :

VB.NET

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut vérifier si le fichier est présent avant d'imprimer
    Bonjour,


    je doit déclencher l'impression d'un document avec une image mais cette image est télécharger sur internet (une carte googlemap static avec des paramétre, adresses, villes, ect...)
    donc je souhaite que l'impression ne soit lancé que lorsque l'image au format .png est présente dans le dossier. voici mon code pour être plus explicite.

    A la réception des données par mon port série je lance la fonction 'carto_depart'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Sub carto_depart(ByVal adresses As String, ByVal villes As String, ByVal operation As Integer)
            Try
                Dim ad_mod As String = adresses.Replace(" ", "+").ToLower
     
                Dim destinationFileName As String = dossier_fax + "\image_carte.png"
                Dim sourceFileName As String = "http://maps.googleapis.com/maps/api/staticmap?size=640x320&markers=color:red|size:mid|label:L|" + ad_mod + "," + villes + ",FR&sensor=false/staticmap.png"
                My.Computer.Network.DownloadFile(sourceFileName, destinationFileName, "", "", False, 30500, True)
     
            Catch ex As Exception
                les_try("carto_depart() " & ex.ToString)
            End Try
        End Sub
    ensuite avant le lancer l'impression je regarde si le fichier image_carte.png existe dans ma procédure impression_plan avec FileSystemWatcher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     Public Sub impression_plan()
            'avant de lancer l'impression on attend que l'on ait recu la carte telecharger sur gmapstatic
            Dim repertoire As String
     
            repertoire = dossier_fax & "\"
            Dim watcher As New System.IO.FileSystemWatcher(repertoire, "image_carte.png")
            Dim result_create As IO.WaitForChangedResult = watcher.WaitForChanged(System.IO.WatcherChangeTypes.Created)
     
            If result_create.ChangeType = IO.WatcherChangeTypes.Created Then
                pd.Print()
                'dllg.Document = pd 'pour afficher l'apercu avant impression
                'dllg.ShowDialog()
            End If
        End Sub
    mais mon programme bloque en deboguant je m'apercoi que je reste bloqué sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim result_create As IO.WaitForChangedResult = watcher.WaitForChanged(System.IO.WatcherChangeTypes.Created)
    et la rien ne se passe alors que le fichier png a bien était telecharger ! est ce que j'utilise la bonne méthode ???

  2. #2
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    j'ai trouvé une autre solution provisoire, pas super car fige mon programme pendant 8 secondes du à l'utilisation de sleep(8000), voila le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     Public Sub impression_plan()
            'avant de lancer l'impression on attend que l'on ait recu la carte telecharger sur gmapstatic
            Dim repertoire As String = dossier_fax
            sleep(8000)
     
            If System.IO.File.Exists(dossier_fax + "\image_carte.png") Then
                dllg.Document = pd 'pour afficher laperçu avant impression
                dllg.ShowDialog()
            Else
                MsgBox("la carte n'est pas encore présente dans le dossier")
            End If
        End Sub
    ce code comme je l'ai dit fige le programme le temps du sleep car on attend que la fonction carto_depart récupère l'image sur internet.
    Auriez vous une autre idée ? ou avez vous déjà était confronté a ce problème ?

  3. #3
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Une idée non testée.

    As-tu essayé d'utiliser l'événement FileCreated de FileSystemWatcher ? (Encore qu'il faille que l'événement soit déclenché seulement quand le fichier a été enregistré et non avant)

    https://msdn.microsoft.com/en-us/lib...v=vs.110).aspx
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  4. #4
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Points : 279
    Points
    279
    Par défaut
    merci pour ta réponse clément mais c'est se que j'ai fait avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.IO.WatcherChangeTypes.Created
    je contrôle si le fichier viens d’être crée, mais je le fait avant de le crée dans le but d’être avertit lorsque celui a était téléchargé depuis internet et enregistré dans le répertoire !

Discussions similaires

  1. Vérifier si une valeur est présente avant de copier
    Par maximilien59 dans le forum VBA Access
    Réponses: 12
    Dernier message: 20/06/2013, 19h45
  2. [XL-2000] Comment faire pour vérifier qu'un fichier est bien présent dans un emplacement précis
    Par Avinetor dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/06/2009, 14h12
  3. Réponses: 2
    Dernier message: 17/11/2008, 11h22
  4. Réponses: 11
    Dernier message: 11/01/2008, 19h13
  5. Réponses: 4
    Dernier message: 18/01/2006, 09h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo