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 :

FILEPUTOBJET problème avec structure


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 56
    Par défaut FILEPUTOBJET problème avec structure
    bonjour

    ca fait 2 jours et 2 nuits que je cherche une solution à mon problème que je vous explique.

    Voilà, j'ai besoin d'avoir un fichier en acces direct et j'utilise les commandes suivantes :

    fileopen
    filegetobject
    fileputobject
    fileclose

    or j'ai un message qui me dit que la structure xxx n'est pas valide par rapport à la commande fileputobject.

    Voici un extrait de mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    imports system.IO
    Public Structure batiment
            Dim numeroprod As Integer
            Dim levelbat As Byte
            Dim zone As Byte
            Dim tempsprod As DateTime
            Dim valide As Byte
            <VBFixedString(200)> Dim chaine As String
        End Structure
        Public libre As Long = 0
        Public nomflile As String = My.Application.Info.DirectoryPath & "\base.bdd"
        Public rlile As batiment
        Dim reclong As Long = Len(rlile)
        Public longflile As Long = 0
    sub
        libre = FreeFile()
        FileOpen(libre, nomflile, OpenMode.Random, OpenAccess.ReadWrite, OpenShare.Shared, reclong)
            longflile = FileLen(nomflile) / reclong
            If longflile <= 0 Then Exit Sub
            Dim vijk As Long = 0
            For vijk = 1 To tbatile ' contient le nombre de batiments à sauvegarder
                'expres je n'assigne pas les champs de la structure pour alleger le code
                FilePutObject(libre, rlile) ' c'est ici que ca coince 
            Next
          FileClose(libre)
     End Sub
    j'ai essayé le code en otant le champ de type STRING ca ne change rien à l'erreur.

    Donc si vous avez déjà trouvé une méthode pour faire marcher les commandes en question, je suis preneur.

    D'avance merci pour votre aide

  2. #2
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    Bonjour,

    désolé pour le retard, tu peux voir qu'en regardant la définition sur MSDN on a toutes les réponses

    Quels paramètres dedans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Déclaration
    Public Shared Sub FilePutObject ( FileNumber As Integer, Value As Object, RecordNumber As Long )
    Ainsi que le détail de chaque paramètres
    FileNumber
    Type : System.Int32
    Obligatoire. Tout numéro de fichier valide.

    Value
    Type : System.Object
    Obligatoire. Nom de variable valide contenant les données écrites sur le disque.

    RecordNumber
    Type : System.Int64
    Facultatif. Numéro de l'enregistrement (fichiers ouverts en mode Random) ou de l'octet (fichiers ouverts en mode Binary) par lequel l'écriture débute.
    et comment l'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Dim text As String = "test"
        FileOpen(1, "test.bin", OpenMode.Binary)
        FilePutObject(1, text)
        FileClose(1)
    Pour conclure, difficile de te répondre sans le message d'erreur.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 56
    Par défaut
    voici le message d'erreur qui apparait dans l'execution du programme en image :




    la structure blile est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      Public Structure blile
            Public info1 As Integer
            Public info2 As Integer
            Public info3 As Integer
            Public info4 As Date
            Public info5 As Integer
            Public info6 As String
            Public info7 As Integer
        End Structure
    en toute logique que des champs ayant comme type de variable accepté dans l'objet.

    la commande qui provoque l'erreur est la suivante :

    FilePutObject(libre, vaile)

    libre est une variable de type integer contenant un n° delivré par la commande freefile
    et vaile est déclarée ainsi Dim vaile As blile

    Alors une idée pour me sortir de ce mauvais pas ?

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par monchat Voir le message
    Voilà, j'ai besoin d'avoir un fichier en acces direct et j'utilise les commandes suivantes :

    fileopen
    filegetobject
    fileputobject
    fileclose
    Il est aberrant en VB.Net d'utiliser ces instructions (vieilles verrues du Basic, transposée en VB et, hélas, conservée en VB.Net) plutôt que les méthodes d'accès fichier du framework .NET.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 56
    Par défaut
    merci pour ta réponse qui ne m'aide en aucune manière.

    Ces instructions sont celles de VB.NET car elles remplacent celles du vb qui sont get et put.

Discussions similaires

  1. problème avec structure dans fichier h
    Par alaninho dans le forum C
    Réponses: 6
    Dernier message: 23/08/2012, 14h34
  2. Problème avec structure condition
    Par Thormak dans le forum LabVIEW
    Réponses: 7
    Dernier message: 06/03/2011, 15h26
  3. Problème avec structure arbre
    Par scary dans le forum Débuter
    Réponses: 8
    Dernier message: 24/04/2009, 10h56
  4. Problème avec structure
    Par Aspic dans le forum Débuter
    Réponses: 4
    Dernier message: 15/04/2009, 20h18
  5. Problème avec structure dans une fonction
    Par Saliman dans le forum C
    Réponses: 2
    Dernier message: 22/11/2007, 11h45

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