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#

  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

  8. #8
    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
    Sa ne change rien, c'est les point d'interrogations qui sont le problème mais je ne peut pas les supprimer car quand j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chemin = chemin.replace("?","");
    sa ne change rien les ? sont toujours là.

  9. #9
    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
    N'y aurait t-il pas un problème dans ta bdd pour les personnes 3 à 6 ??

  10. #10
    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
    Citation Envoyé par clemou01 Voir le message
    N'y aurait t-il pas un problème dans ta bdd pour les personnes 3 à 6 ??
    J'approuve, je pense que l'erreur survient lors de l'écriture dans la BDD, essai de la vider puis de ressayé..

  11. #11
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Ca ne pourrait pas venir d'un caractère spécial qui est interprété différemment selon qu'on le regarde dans la console ou directement dans la base (on a l'impression que tout est bon, mais il y a un caractère "caché"). Comment ont été entrés les chemins dans la base ?

  12. #12
    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
    Je me suis aussi dit que la bdd était corrompu alors j'ai vidé la table, ré-remplis à la main, supprimé la table, en recréer une nouvelle et remplis à la main mais rien à faire, et quand je récupère les chemins quand je regarde les valeurs dans vs2010 ils sont corrects mais effectivement on a l'impression qu'il y a un caractère caché.

    Et pour la base de données la première fois je l'ai remplis avec une commande sql, mais quand j'ai recréer une table, cette fois-ci je l'ai remplis à la main directement dans phpMyAdmin.

  13. #13
    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
    C'est bon j'ai trouver la cause du problème, en fait des caractères cacher se sont installer dans les chaines, je ne sais pas pourquoi ils sont arrivé là mais une fois que je l'ai est supprimé sa marché

    Les joies de l'informatique

    En tout cas merci pour votre aide

    Au revoir

+ 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