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 :

Lecture fichier texte impossible


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 86
    Par défaut Lecture fichier texte impossible
    Bonjour,

    Je bosse avec un logiciel d'encaissement de caisse.

    J'essaye de développer un truc en parallèle. J'ai une imprimante à ticket de caisse physique et j'en est créer une autre virtuelle utilisant " printer++ " pour ceux qui connaissent.

    Pour ceux qui ne connaissent pas, c'est un soft qui génère un fichier postscript, et une fois généré peut lancer mon soft que je veux développer en donnant pour paramètre le fichier postscript.

    ça c'est ok, ça ne coince pas.

    En revanche, quand je traite ligne par ligne le fichier, je coince à la seconde ligne. Grosso-modo je veux récupéré un string contenant mon fichier ps, mais au bout de la seconde ligne il sort du try sans erreur et sans toutes les lignes.

    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
     
     
            Try
                ' Création d'une instance de StreamReader pour permettre la lecture de notre fichier
                Dim monStreamReader As StreamReader = New StreamReader(Server.MapPath("test.ps"))
                Dim ligne As String
                Dim str as string
                'Lecture de toutes les lignes et affichage de chacune sur la page
                Do
                    ligne = monStreamReader.ReadLine()
                    str = str & ligne & vbcrlf
                Loop Until ligne Is Nothing
     
                'Fermeture du StreamReader (attention très important)
                monStreamReader.Close()
     
            Catch ex As Exception
     
                'Code exécuté en cas d'exception
                msgbox(ex.message)
     
            End Try
     
            'j'affiche mon str
            msgbox(str)
    Vous pourrez retrouvez en pièce jointe une copie du fichier postcript généré par printer++.

    Si jamais le but de mon soft, c'est de récupéré les montants, les encaissements, les TVA, et derrière ça génère un excel, cette partie de mon soft est déjà développé et fonctionne, il suffit que je le lance en mode simulation plein de fois en envoyant manuellement les valeurs qu'il doit traiter.

    Tant que je ne peux pas récupérer les valeurs directement dans les tickets de caisse, ça ne fonctionnera pas dans le global.

    En remerciant d'avance tout ceux qui participerons à la résolution de mon problème,

    Je vous souhaite une bonne journée,

    Cordialement
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    en plus court :
    System.IO.File.ReadAllText(path) ou System.IO.File.ReadAllLines(path) (qui retourne une tableau de string)

    et pour info mettre un .close c'est bien, mais en cas d'erreur tu ne passes pas dessus donc ça laisse le fichier ouvert ...
    voir using { } ou try finally pour éviter ça
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 86
    Par défaut je vais tester
    Merci pour l'info l'ami, je vais tester.

    Pour le try, s'était plus en mode test qu'autre chose, j'ai essayé pas mal de truc, le tout à l'arrache n'arrivant à rien

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 86
    Par défaut
    Bon, ça fonctionne pas exactement.

    readalllines fonctionne, mais ça me donne un tableau de string, j'ai besoin d'un seul string contenant des retour à la ligne.

    J'ai essayé du coup avec une boucle for de constituer mon string, arrivé à la seconde ligne ça continue de tourner niveau boucle, mais mon str ne concatène pas la suite, ma seconde ligne est même incomplète.

    En essayant readalltext ça ne fonctionne pas non plus, j'ai le même résultat qu'avec ma boucle FOR, mes deux premières lignes incomplètes.

    Rapport à mon fichier postscript, ça bloque après le B majuscule de la seconde ligne.

    Dans l'idée c'est assez cool déjà le readalllines, il faudrait que je puisse réussir à concaténer la suite ...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 86
    Par défaut
    Si ça peut aider, j'ai bien l'impression que c'est le B majuscule de la deuxième ligne qui fou le bordel ...

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Bonjour,

    Pour info, ce n'est pas le B de la deuxième ligne qui pose problème mais plutôt le "caractère" qui se trouve juste après : c'est un byte nul (zéro).
    Tu peux les supprimer en faisant ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String s = File.ReadAllText(FileName).Replace("\0", "");

Discussions similaires

  1. Lecture fichier texte
    Par vince-60 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 06/04/2006, 14h15
  2. [VB]Probleme lecture fichier text et affichage
    Par clochardevobsy dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/03/2006, 08h46
  3. lecture fichier texte et ...
    Par Nils30 dans le forum Langage
    Réponses: 5
    Dernier message: 12/01/2006, 11h55
  4. lecture fichier text et renvoi du contenu en byte *
    Par JulienT dans le forum Réseau
    Réponses: 3
    Dernier message: 02/01/2006, 13h21
  5. Lecture fichier text
    Par krfa1 dans le forum ASP
    Réponses: 13
    Dernier message: 25/11/2005, 08h00

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