A voir également:
- VB.NET - problème de string
- Vb.net download - Télécharger - Langages
- Vli product string - Forum Disque dur / SSD
- Eol while scanning string literal ✓ - Forum Python
- E348: no string under cursor - Forum Ubuntu
- Input string was not in a correct format traduction - Forum Virus
27 réponses
Karosis
Messages postés
13
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
18 novembre 2010
5 nov. 2010 à 15:56
5 nov. 2010 à 15:56
Bonjour,
A mon avis essaye de caster ton chemin :
A mon avis essaye de caster ton chemin :
MonFichier = Chemin.FileName as string
Bonjour karosis et merci de ta réponse,
Concernant le cast, j'ai deja tout essayé et sa ne marche pas.
Mais je me suis rendu compte que c'était non pas un problème sur le fileName mais un problème de sérialisation de chez microsoft.
Je ne comprends pas pourquoi la sérialisation marche pour le nom en string mais pas pour le chemin en string.
Concernant le cast, j'ai deja tout essayé et sa ne marche pas.
Mais je me suis rendu compte que c'était non pas un problème sur le fileName mais un problème de sérialisation de chez microsoft.
Je ne comprends pas pourquoi la sérialisation marche pour le nom en string mais pas pour le chemin en string.
Karosis
Messages postés
13
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
18 novembre 2010
8 nov. 2010 à 09:02
8 nov. 2010 à 09:02
Vérifie en pas à pas à quel moment il délaisse le chemin pour ne prendre que le nom car j'ai testé et sans sérialisation le chemin est correct.
Et suivant ta version attention au "\" qui peut être pris pour un caractère d'échapement, à mon avis ça peut venir de là.
Et suivant ta version attention au "\" qui peut être pris pour un caractère d'échapement, à mon avis ça peut venir de là.
Après vérification en pas a pas je me suis rendu compte que c'était bien au niveau de la sérialisation qu'il y a un problème.
Mais lorsque je rentre le chemin à la main sans passer par OpenFileDialog ça marche correctement.
J'ai testé le nom en mettant des caractères spéciaux pour voir si ce n'était pas la cause du problème, mais apparemment non.
Mais lorsque je rentre le chemin à la main sans passer par OpenFileDialog ça marche correctement.
J'ai testé le nom en mettant des caractères spéciaux pour voir si ce n'était pas la cause du problème, mais apparemment non.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Karosis
Messages postés
13
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
18 novembre 2010
8 nov. 2010 à 14:10
8 nov. 2010 à 14:10
Mets-moi ton code complet avec la ligne qui, en pas à pas, change ton chemin d'accès que je puisse tester.
Voila le code de la sérialisation. Pour tout le reste c'est hyper long.
Mais dans le debuger c'est ici que ça merde :
Le pas a pas m'indique bien que dans _ListeContact j'ai une partie chemin avec "C:\chemin...\image.png" de type string
Mais dans le debuger c'est ici que ça merde :
Le pas a pas m'indique bien que dans _ListeContact j'ai une partie chemin avec "C:\chemin...\image.png" de type string
Private Sub Serialisation() Try 'On crée le fichier et récupère ses données Dim Fichier As FileStream = File.Create("bibliotequeContact.xml") Dim Serialiseur As New XmlSerializer(GetType(List(Of Contact))) 'Enregistrement et écriture Serialiseur.Serialize(Fichier, _ListeContact) 'Fermeture du fichier Fichier.Close() Catch ex As Exception MsgBox(ex.ToString) End Try End Sub
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
8 nov. 2010 à 14:43
8 nov. 2010 à 14:43
Bonjour,
Peut-être avec...
A+
Peut-être avec...
MonFichier = Chemin.FileName.ToString
A+
Bonjour,
Je viens d'essayer, et non cela ne change rien.
Je ne pense pas que ce soit un réel problème de string en faite.
Je pense vraiment que le OpenFileDialog et la sérialisation ne s'entendent pas. Car quand je rentre le chemin à la main, cela marche, mais si je passe par OpenFileDialog, sa bug...
Je viens d'essayer, et non cela ne change rien.
Je ne pense pas que ce soit un réel problème de string en faite.
Je pense vraiment que le OpenFileDialog et la sérialisation ne s'entendent pas. Car quand je rentre le chemin à la main, cela marche, mais si je passe par OpenFileDialog, sa bug...
Si vraiment ça marche pas, je pourrais essayé de remplacer ma sérialisation et mon fichier XML par une bdd qui tourne derrière, mais je ne sais vraiment pas comment faire.
Cela est-il plus judicieux ?
Merci
Cela est-il plus judicieux ?
Merci
Karosis
Messages postés
13
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
18 novembre 2010
8 nov. 2010 à 15:14
8 nov. 2010 à 15:14
A mon avis cela doit venir de ta façon de remplir ta liste "_ListeContact". Merci de m'indiquer de quel manière tu la remplie.
_ListeContact est une liste de la classe Contact :
Voici le code :
Ma classe contact est comme sa (dsl c'est un peu long):
Voici le code :
Private _ListeContact As List(Of Contact) Public Property ListeContact As List(Of Contact) Get Return _ListeContact End Get Set(ByVal value As List(Of Contact)) _ListeContact = value End Set End Property
Ma classe contact est comme sa (dsl c'est un peu long):
Dim chemin as string... Public Sub New(ByVal surnom As String, ByVal chemin As String, ByVal nom As String, ByVal prenom As String, ByVal DateNaissance As Date, ByVal groupe As String, ByVal adresse As String, ByVal ville As String, ByVal fixe As String, ByVal port As String, ByVal pro As String, ByVal mail As String) _surnom = surnom _chemin = chemin _nom = nom _prenom = prenom _dateNaissance = DateNaissance _groupe = groupe _adresse = adresse _ville = ville _mail = mail _fixe = fixe _port = port _pro = pro End Sub
Karosis
Messages postés
13
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
18 novembre 2010
8 nov. 2010 à 16:08
8 nov. 2010 à 16:08
Désolé on s'est pas compris, comment passe tu le chemin d'accès à l'attribut "chemin" d'une liste "_ListeContact".
Passe-tu par un string tampon ou le lui passe-tu directement ?
Si c'est dans ce dernier cas essaye de créer un string auquel tu passera le chemin pour ensuite passer ce string dans ton contact.
Parfois une interaction directe bug, mais le fait d'utiliser un paramètre tampon peut régler bien des problèmes.
Passe-tu par un string tampon ou le lui passe-tu directement ?
Si c'est dans ce dernier cas essaye de créer un string auquel tu passera le chemin pour ensuite passer ce string dans ton contact.
Parfois une interaction directe bug, mais le fait d'utiliser un paramètre tampon peut régler bien des problèmes.
a oui dsl j'avais pas compris.
Ba je passais par un label.text tampon, mais je vais essayer avec un string tampon.
Voila le code que j'avais :
Et quand j'update ma liste, je lui récupère la valeur de ma textBox qui contient le chemin.
Ba je passais par un label.text tampon, mais je vais essayer avec un string tampon.
Voila le code que j'avais :
FichierSelect = Chemin.FileName If FichierSelect IsNot Nothing Then Me.lbl_chemin.Text = FichierSelect Me.lbl_chemin.Text = CStr(Me.lbl_chemin.Text) End If Me.txt_chemin.Text = Me.lbl_chemin.Text
Et quand j'update ma liste, je lui récupère la valeur de ma textBox qui contient le chemin.
Nop, ça ne marche toujours pas...
Sinon le mieux pour contourner ce problème serait peut-être de passer par une BDD ou de supprimer mon image tout simplement.
Mais je ne comprends pas pourquoi c'est le OpenFileDialog qui me pose tant de problèmes.
Sinon le mieux pour contourner ce problème serait peut-être de passer par une BDD ou de supprimer mon image tout simplement.
Mais je ne comprends pas pourquoi c'est le OpenFileDialog qui me pose tant de problèmes.
Karosis
Messages postés
13
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
18 novembre 2010
8 nov. 2010 à 17:02
8 nov. 2010 à 17:02
Honnêtement je suis perplexe, j'ai tester et le OpenFileDialog.FileName fonctionne très bien avec un textbox et une liste, voici mon code avec un test tout bête au cas où tu vois quelque chose :
Sinon, tu peux toujours tester comme tu le dis sur une base Access mais je ne pense pas que la sérialisation ou le openfiledialog y sois pour quelque chose, à moins que ta version de logiciel ait un bug :/
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim chemin As New OpenFileDialog Dim fichier As String chemin.ShowDialog() fichier = chemin.FileName Me.TextBox1.Text = fichier End Sub Private Sub TextBox1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseDoubleClick Dim maliste As New List(Of String) maliste.Add(TextBox1.Text) MessageBox.Show(maliste.Item(0).ToString()) End Sub
Sinon, tu peux toujours tester comme tu le dis sur une base Access mais je ne pense pas que la sérialisation ou le openfiledialog y sois pour quelque chose, à moins que ta version de logiciel ait un bug :/
ba en faite ce que tu as fais marche correctement.
Mais chez moi aussi ça marche, le chemin est bien ajouté dans ma liste et apparait correctement !
Sauf que quand je ferme et je ré-ouvre l'appli, le chemin n'apparait plus du tout dans la liste.
Peux-tu essayé de sérialiser ta liste et de me dire si ton chemin passe. Si tel est le cas, je pense que je dois avoir un problème avec VS2010.
J'ai même extrait ma liste vers excel et le chemin s'affiche correctement comme un string, c'est donc pas un problème à ce niveau là je pense.
En tout cas merci beaucoup pour ton aide !
Mais chez moi aussi ça marche, le chemin est bien ajouté dans ma liste et apparait correctement !
Sauf que quand je ferme et je ré-ouvre l'appli, le chemin n'apparait plus du tout dans la liste.
Peux-tu essayé de sérialiser ta liste et de me dire si ton chemin passe. Si tel est le cas, je pense que je dois avoir un problème avec VS2010.
J'ai même extrait ma liste vers excel et le chemin s'affiche correctement comme un string, c'est donc pas un problème à ce niveau là je pense.
En tout cas merci beaucoup pour ton aide !
Karosis
Messages postés
13
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
18 novembre 2010
9 nov. 2010 à 15:44
9 nov. 2010 à 15:44
Désolé d'avoir mis du temps à répondre mais j'avais pas trop eu le temps de tester.
J'ai donc tout recréé en C# (j'y suis plus à l'aise qu'en VB) peu importe le langage vue que le framework est le même.
ça marche sans problème voici mon fichier xml :
voici mon code :
A tout moment mon string reste inchangé.
Si tu comprend pas trop le C#, dis moi le et je te traduirai, mais normalement ça se lit plutôt bien.
J'ai donc tout recréé en C# (j'y suis plus à l'aise qu'en VB) peu importe le langage vue que le framework est le même.
ça marche sans problème voici mon fichier xml :
<?xml version="1.0" ?> <string>C:\Documents and Settings\All Users\test.jpg</string>
voici mon code :
XmlSerializer xmls = new XmlSerializer(typeof(string)); FileStream fichier = new FileStream(@"C:\test.xml", FileMode.CreateNew); OpenFileDialog ofd = new OpenFileDialog(); ofd.ShowDialog(); string test = ofd.FileName.ToString(); textBox1.Text = test; List<string> liste = new List<string>(); liste.Add(textBox1.Text); xmls.Serialize(fichier, liste[0]);
A tout moment mon string reste inchangé.
Si tu comprend pas trop le C#, dis moi le et je te traduirai, mais normalement ça se lit plutôt bien.
C'est vrai que ça se ressemble beaucoup donc j'arrive a peu près à comprendre.
Juste une question, c'est quoi le @ devant le chemin ??
Toi tu as une liste de string, moi j'ai une liste de classe, à ton avis ça change beaucoup sachant que dans ma classe il y a des string et des dates... ?
Merci
Juste une question, c'est quoi le @ devant le chemin ??
Toi tu as une liste de string, moi j'ai une liste de classe, à ton avis ça change beaucoup sachant que dans ma classe il y a des string et des dates... ?
Merci
Karosis
Messages postés
13
Date d'inscription
mardi 26 octobre 2010
Statut
Membre
Dernière intervention
18 novembre 2010
10 nov. 2010 à 11:21
10 nov. 2010 à 11:21
le "@" mis devant un string permet de ne pas faire cas des "\" dans le chemin, c'est le terme .NET pour indiquer que le string est une adresse.
Je ne pense pas que le fait d'avoir une liste de classe joue un rôle si ton champ "image" est bien un string.
Je ne pense pas que le fait d'avoir une liste de classe joue un rôle si ton champ "image" est bien un string.