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

C# Discussion :

Problème string et Bitmap [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 14
    Par défaut Problème string et Bitmap
    Bonjours à tous,

    Désolé de vous dérangé mais j'ai un problème avec un programme que je créer dans le cadre de mon stage.

    Voilà mon problème : j'ai une base de données MySQL qui dans une table contient des chemins d’accès vers des images .tif, les récupérer j'y arrive mais c'est pour utilisé ces chemins que sa bloque, j'ai une fonction qui devra prendre cet image et découper une partie de cette image et la stocké, c'est à l'initialisation de la variable Bitmap que sa plante.

    quand je donne le chemin récupérer dans la base de données et que je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Bitmap facturescan = new Bitmap(cheminFacture);
    il me sort une exception disant que le paramètre n'est pas valide, mais si je rentre la valeur en dur là sa marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Bitmap facturescan = new Bitmap(@"C:\FACTURES\tiff\20529104658_personne1.tif");
    sa marche

    je précise que cheminFacture est bien un string

    il y a aussi un autre problème que je ne comprend pas:

    voilà ma fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public bool fonction(string cheminFacture)
    {
         // ce qui se trouve entre les commentaire est fait juste pour montré le problème
     
         string chemin = @"C:\FACTURES\tiff\20529104658_personne1.tif"
     
         Console.WriteLine(cheminFacture);
         Console.WriteLine(chemin);
     
         //Fin de test
     
         Bitmap facturescan = new Bitmap(cheminFacture);
    }
    et dans le main j'appelle la fonction en passant le chemin recuperer de la bdd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fonction(cheminRecupererDeLaBDD);
    l'affichage donne pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Console.WriteLine(cheminFacture);
    ->C:\FACTURES\tiff\20529104658_personne1.tif

    l'affichage donne pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Console.WriteLine(chemin);
    ->C:\FACTURES\tiff\?20529104658_personne1.tif

    je ne comprend pas d'où viens ce point d'interrogation ...

    et le pire c'est que pour l'initialisation du Bitmap, avec le chemin qui contient le point d'interrogation sa marche alors que le lien n'est pas bon mais avec le chemin sans le point d'interrogation donc le chemin valide sa ne marche pas et il me sort l'exception le parametre n'est pas valide ...

    j'avoue que je ne vois pas comment m'en sortir ...

    Pouvez-vous m'aider s'il vous plait ?

    Merci d'avance

  2. #2
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Par défaut
    Hello,

    Ton exception bitmap est généré à cause de ton chemin, essai avec (cela ne devrait rien changé, mais bon ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string cheminFacture = "C:\\facture\\tiff\\20529104658.tif"
    Edit: Peut on voir le contenu du string cheminFacture?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 14
    Par défaut
    A vrai dire mettre "\\" pour mon projet ne sert a rien, je l'ai fait juste pour des test, en réalité je doit utiliser un chemin que je récupère de la base de données, et que je stockerai dans une variable string.

    Après vérification, dans la base de données les chemins sont bien écrit, quand je les récupère ils le sont toujours ( je les stocke dans une liste de string ) mais c'est a la lecture de cette liste que les point d’interrogation arrivent, c'est aléatoire mais toujours au même endroit, juste après le dernier " \ ", parfois il n'y en a pas, parfois il y en a un voir deux et je ne vois pas comment ils arrivent ici ...

    par exemple :

    quand je recupere les chemins dans la base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<List<string>> listeFactureBDD = ocr.requete_base_de_donnees("select chemin from basefactureocrtest2 ");
    sa marche, si je regarde dans les details ils sont bien stocké sans erreur dans la liste

    mais quand je veut les affichés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                    foreach(List<string> liste in listeFactureBDD)
                    {
                        foreach (string c in liste)
                        {
                            Console.WriteLine(c);
                        }
    }
    sa m'affiche cela:

    C:\FACTURES\tiff\20529104658_personne1.tif
    C:\FACTURES\tiff\20529104658_personne2.tif
    C:\FACTURES\tiff\??20529104658_personne3.tif
    C:\FACTURES\tiff\?20529104658_personne4.tif
    C:\FACTURES\tiff\?20529104658_personne5.tif
    C:\FACTURES\tiff\?20529104658_personne6.tif
    C:\FACTURES\tiff\20529104658_personne7.tif
    C:\FACTURES\tiff\20529104658_personne8.tif
    C:\FACTURES\tiff\20529104658_personne9.tif
    je ne vois pas d'où sa viens ...

    EDIT : pour cheminFacture la valeur est "C:\facture\tiff\20529104658.tif" par exemple mais je ne vois pas les "?" ils ne sont la que lors de l'affichage, et vraisemblablement aussi quand le chemin est donnee au Bitmap

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 14
    Par défaut
    J'ai essayé avec la classe System.Drawing.Image au cas ou, cette fois tout les chemins sont acceptés mais il me donne l'exception "Mémoire insuffisante", les fichiers .tif font environs 25mo chacun

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 64
    Par défaut
    Citation Envoyé par titoux Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<List<string>> listeFactureBDD = ocr.requete_base_de_donnees("select chemin from basefactureocrtest2 ");
    Je vais peut être dire une bêtise, mais remplace ce que tu as écrit par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<List<string>> listeFactureBDD = ocr.requete_base_de_donnees("select chemin from basefactureocrtest2;");

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 14
    Par défaut
    clemou01 : je viens d'essayé mais cela ne change rien, les ? sont toujours là, et je viens de me rendre compte que meme si je faisais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    string a = @"C:\FACTURES\tiff\20529104658_personne1.tif";
                    Console.WriteLine("chemin en parametre :\r\n"+cheminFactureComplete);
                    Console.WriteLine("chemin en dur : \r\n"+a);
                    if (cheminFactureComplete.Equals(a))
                    {
                        Console.WriteLine("ok");
                    }
    avec cheminFactureComplete = "C:\FACTURES\tiff\20529104658_personne1.tif" qui viens de la base de données et qui est passé en parametre de la fonction

    donc normalement si je fait le test d'égalité sa marche, mais la non et pourtant quand je demande de l'afficher sa me donne sa :

    chemin en parametre :
    C:\FACTURES\tiff\?20529104658_personne1.tif
    chemin en dur :
    C:\FACTURES\tiff\20529104658_personne1.tif

  7. #7
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 64
    Par défaut
    Essaie de mettre ".Trim()" à ton chemin en paramètre

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

Discussions similaires

  1. Problème String TCP
    Par migutz dans le forum VB.NET
    Réponses: 3
    Dernier message: 21/11/2007, 14h49
  2. Problème String et split
    Par NicaeaCivitas dans le forum Langage
    Réponses: 4
    Dernier message: 14/11/2006, 01h17
  3. Affichage page par page - problème STRING
    Par navis84 dans le forum Langage
    Réponses: 4
    Dernier message: 19/07/2006, 14h35
  4. Problème avec un BITMAP
    Par dede92 dans le forum Windows
    Réponses: 1
    Dernier message: 22/05/2006, 18h50
  5. Problème String/Date
    Par plasticgoat dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 20/12/2005, 10h56

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