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

Windows Forms Discussion :

[VB.NET] lecture dans un exe


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    neant
    Inscrit en
    Avril 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : neant

    Informations forums :
    Inscription : Avril 2004
    Messages : 42
    Points : 27
    Points
    27
    Par défaut [VB.NET] lecture dans un exe
    Je lis les info contenues dans un fichier mais après quelques tours dans la boucle, la ligne : Input(1, oneChar) plante (elle génère une exception).
    Voici le message de l'exception : " L'entrée dépasse la fin du fichier".

    Voici 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
     
    Dim num = FreeFile()
     
    FileOpen(num, NomFichier, OpenMode.Binary, OpenAccess.Read)
     
    longueur_fich = LOF(num_fich)
     
    Do While position + 512 < longueur_fich
     
    Input(num_fich, Chaine)
     
    position = Loc(num_fich)
     
    For j = 1 To Len(Chaine) Step 2
     
    check = (check + (j * 1 + Asc(Mid$(Chaine, j, 1)))) 
     
    Next j
     
    VisuVersion.Text = "en cours ... " & Format$(Loc(num_fich) / longueur_fich, "0 %")
     
    Loop

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Dim num = FreeFile() 
    FileOpen(num, NomFichier, OpenMode.Binary, OpenAccess.Read) 
    longueur_fich = LOF(num_fich) 
    Do While position + 512 < longueur_fich 
         Input(num_fich, Chaine) 
         position = Loc(num_fich) 
         For j = 1 To Len(Chaine) Step 2 
              check = (check + (j * 1 + Asc(Mid$(Chaine, j, 1)))) 
         Next j 
         VisuVersion.Text = "en cours ... " & Format$(Loc(num_fich)/longueur_fich, "0 %") 
    Loop
    Ceci est du VB pas du VBNet
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    neant
    Inscrit en
    Avril 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : neant

    Informations forums :
    Inscription : Avril 2004
    Messages : 42
    Points : 27
    Points
    27
    Par défaut
    Ce n'est pas totalement vrai.
    C'est du VB adapté pour fonctionner sous VBNET.
    Cela fonctionne presque à part mon problème...

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par cyrcroix
    Ce n'est pas totalement vrai.
    C'est du VB adapté pour fonctionner sous VBNET.
    Cela fonctionne presque à part mon problème...
    c'est bien ce que je dis ce n'est pas du VBNet
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    neant
    Inscrit en
    Avril 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : neant

    Informations forums :
    Inscription : Avril 2004
    Messages : 42
    Points : 27
    Points
    27
    Par défaut
    oki

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    neant
    Inscrit en
    Avril 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : neant

    Informations forums :
    Inscription : Avril 2004
    Messages : 42
    Points : 27
    Points
    27
    Par défaut
    Comment le passer sous VBNET alors?
    (sans le petit programme de conversion inclus ds VBNET qui marche aléatoirement)

  7. #7
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Ben je veux bien t'aider mais j'avoue que mon vb ancien (j'ai oublié ) donc par exemple c quoi freefile() comme type renvoyé
    etc..
    donc ce sera mieux si tu me donnes l'alo plutôt que du donnes
    1. le lexique des varibles avec les types
    2. l'algorithme de la procedure
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  8. #8
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Ben je veux bien t'aider mais j'avoue que mon vb ancien (j'ai oublié ) donc par exemple c quoi freefile() comme type renvoyé
    etc..
    donc ce sera mieux si tu me donnes l'alo plutôt que du donnes
    1. le lexique des varibles avec les types
    2. l'algorithme de la procedure
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    neant
    Inscrit en
    Avril 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : neant

    Informations forums :
    Inscription : Avril 2004
    Messages : 42
    Points : 27
    Points
    27
    Par défaut
    oki,
    alors en fait il faut :

    Ouvrir fichier .exe en mode binaire. (cet .exe est lancé lors de l'ouverture)
    Faire tant que fichier non parcouru en entier
    compter la somme des codes ascii de tous les caracteres du fichier ligne par ligne
    Fin faire

    Pour les variables, tout est possible...

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    neant
    Inscrit en
    Avril 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : neant

    Informations forums :
    Inscription : Avril 2004
    Messages : 42
    Points : 27
    Points
    27
    Par défaut
    C'est bon , j'ai trouvé. Voila mon code pour ceux que ca peut intéresser..;

    num_fich = FreeFile()
    memo = VisuVersion.Text
    VisuVersion.Text = ""
    If g_TestPneumatique Then
    NomFichier = CurDir() & "\MonAppli.exe"
    Else
    NomFichier = CurDir() & "\MonAppli.exe"
    End If

    Dim num = FreeFile()
    FileOpen(num, NomFichier, OpenMode.Binary, OpenAccess.Read)

    longueur_fich = LOF(num_fich)
    Do While EOF(1) = False
    Chaine = New String(" "c, 512)
    FileGet(1, Chaine)
    position = Loc(num_fich)
    For j = 1 To Len(Chaine) Step 2
    check = (check + (j * 1 + Asc(Mid$(Chaine, j, 1))))
    Next j
    Chaine = Nothing
    VisuVersion.Text = "en cours ... " & Format$(Loc(num_fich) / longueur_fich, "0 %")
    Loop

  11. #11
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    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
     
    Imports System.Text
     
    Dim chemin As String
    Dim monlecteur As StreamReader
    Dim compteur As Integer = 0 
     
    chemin =  'chemin d'accès complet du fichier
    monlecteur = New StreamReader(chemin, Encoding.ASCII)
    monlecteur.BaseStream.Seek((0, SeekOrigin.Begin)
    With lecteur
      While .Peek() >= 0
         compteur = .ReadLine.Length
         ' traiter ici le resultat de compteur, je n'ai pas compris
         ' ce que tu voulais en faire et pourquoi ligne par ligne,
         ' car il est possible de le faire aussi directement pour 
         ' l'ensemble du fichier avec ReadToEnd
      End While
      If Not(lecteur Is Nothing) Then .Dispose
    End With
    Qu'en dis-tu du VB.Net :
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    neant
    Inscrit en
    Avril 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : neant

    Informations forums :
    Inscription : Avril 2004
    Messages : 42
    Points : 27
    Points
    27
    Par défaut
    ok, j'essayerai ton code, le VBNET est bien plus joli que le VB.
    En fait là je lit 512 caractère au lieu d'une ligne.
    Merci beaucoup pour ton aide...
    Bonne soirée.

  13. #13
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par cyrcroix
    ok, j'essayerai ton code, le VBNET est bien plus joli que le VB.
    En fait là je lit 512 caractère au lieu d'une ligne.
    Merci beaucoup pour ton aide...
    Bonne soirée.
    En fait du dois passer d'un langage procedural à un langage objet, il te faut donc te familiariser avec les classes crées par DotNet pour par exemple gérér ici System.IO
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.Net 2005] Probleme lecture dans table
    Par angelevil dans le forum Accès aux données
    Réponses: 2
    Dernier message: 13/10/2006, 21h11
  2. Réponses: 4
    Dernier message: 23/03/2006, 17h12
  3. Réponses: 6
    Dernier message: 23/02/2006, 12h09
  4. [VB.NET] incorporer une image dans un exe
    Par joefou dans le forum VB.NET
    Réponses: 6
    Dernier message: 09/12/2005, 10h36
  5. [C#] [.NET] Lecture d'une classe dans un fichier
    Par niPrM dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/05/2004, 08h57

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