Nom de fichier [Résolu]

Messages postés
18
Date d'inscription
lundi 20 novembre 2000
Statut
Membre
Dernière intervention
13 février 2011
- - Dernière réponse : olidef
Messages postés
18
Date d'inscription
lundi 20 novembre 2000
Statut
Membre
Dernière intervention
13 février 2011
- 6 févr. 2011 à 22:15
Bonjour,

Je crée un programme qui charge un fichier pdf à partir d'un répertoir déterminé.

Ce que je voudrais qu'il fasse aussi, c'est qu'un autre fichier du même nom, mais avec une extension différente s'ouvre en même temps et soit lu dans des Labels.

Le code
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Dir As String = "C:"

OpenFileDialog1.InitialDirectory = Dir

If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim sw As New System.IO.StreamReader(OpenFileDialog1.FileName)

WebBrowser1.Navigate(OpenFileDialog1.FileName) ' le fichier PDF est chargé dans un WebBrowser

'A cet endroit, je veux charger un fichier du même nom mais avec une extension ".txt"

Label3.Text = sw.ReadLine
Label4.Text = sw.ReadLine
sw.Close()

End If
End Sub

Merci à vous.
Afficher la suite 

12 réponses

Meilleure réponse
Messages postés
3251
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
16 octobre 2019
46
3
Merci
Salut

c'est mieux charger dans un listbox
à l'endroit où tu veux charger le fichier txt
ajoutes ça
 Private Sub readfile()
        Dim oldextension As String
        Dim letext() As String
        oldextension = OpenFileDialog1.FileName.Substring(OpenFileDialog1.FileName.Length - 3)
        OpenFileDialog1.FileName = OpenFileDialog1.FileName.Replace(oldextension, "txt")
        Try
            letext = System.IO.File.ReadAllLines(OpenFileDialog1.FileName)
            ListBox1.Items.AddRange(letext)
        Catch ex As Exception
            MessageBox.Show("fichier introuvable")
            End
        End Try

    End Su

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_ShayW
Messages postés
3251
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
16 octobre 2019
46
3
Merci
Merci Henry
je n'avais meme pas fait attention
encore plus simple
 Private Sub readfile()
        Dim newfilename As String
        Dim letext() As String
        newfilename = System.IO.Path.ChangeExtension(OpenFileDialog1.FileName, "txt")
        Try
            letext = System.IO.File.ReadAllLines(newfilename)
            ListBox1.Items.AddRange(letext)
        Catch ex As Exception
            MessageBox.Show("fichier introuvable")
            End
        End Try

    End Sub

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_ShayW
Messages postés
14567
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 octobre 2019
136
3
Merci
Bonjour,

Si ton problème est résolu, pense à mettre "Réponse acceptée" sur la ou les réponses qui t'ont aidées.

Mon site

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Commenter la réponse de NHenry
Messages postés
14567
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 octobre 2019
136
0
Merci
Bonjour,

System.IO.Path -> GetFilenameWithoutExtension
Et une petite concaténation de chaine devrait aller.

Mon site
Commenter la réponse de NHenry
Messages postés
18
Date d'inscription
lundi 20 novembre 2000
Statut
Membre
Dernière intervention
13 février 2011
0
Merci
J'ai essayé cette fonction. Par contre, elle me renvoie un message d'erreur où je dois vérifier si le chemin d'accès est correct...
Commenter la réponse de olidef
Messages postés
14567
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 octobre 2019
136
0
Merci
Bonjour,

Tu peux montrer le code utilisé (avec GetFilenameWithoutExtension) ainsi que les valeurs de test et le texte de l'exception ?

Mon site
Commenter la réponse de NHenry
Messages postés
3251
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
16 octobre 2019
46
0
Merci
End Su
il manque le b

End Sub
Commenter la réponse de cs_ShayW
Messages postés
14567
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 octobre 2019
136
0
Merci
Bonjour,

Question, pourquoi avoir utilisé Replace, car tu prend des risques :
'C:\Dossierhtm\Monfichier.htm
=ça devient :
C:\Dossiertxt\MonFichier.txt

De plus, une extension peut faire autre que 3 caractères.
Utilises GetFileNameWithoutExtension plutot et ajouter le .txt qui va après.

Mon site
Commenter la réponse de NHenry
Messages postés
18
Date d'inscription
lundi 20 novembre 2000
Statut
Membre
Dernière intervention
13 février 2011
0
Merci
J'ai finalement opté pour Getfullpath pour pallier le message d'erreur

Je cherche maintenant à tester la validité du nouveau fichier txt

Le code complet :

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' Dim Dir As String = "f:"
' OpenFileDialog1.InitialDirectory = Dir
Dim fic_txt As String

If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim sw As New System.IO.StreamReader(OpenFileDialog1.FileName)
WebBrowser1.Navigate(OpenFileDialog1.FileName)
End If


'Charge le fichier txt du même nom
fic_txt = GetFullPath(OpenFileDialog1.FileName).Replace("PDF", "txt")

Dim sw1 As New System.IO.StreamReader(fic_txt)

Label3.Text = sw1.ReadLine
Label4.Text = sw1.ReadLine()
sw1.Close()

End Sub
Commenter la réponse de olidef
Messages postés
14567
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 octobre 2019
136
0
Merci
Bonjour,

Tu n'as toujours pas compris ma remarque avec le Replace :
fic_txt = GetFullPath(OpenFileDialog1.FileName).Replace("PDF", "txt")

OpenFileDialog1.FileName = "c:\MondossierdePDF\MonfichierPDF.PDF"
Retournera :
fic_txt="c:\Mondossierdetxt\Monfichiertxt.txt"
Ce qui sera invalide.

Préfère GetFileNameWithoutExtension ou au pire SubString, mais évite Replace dans ce cas là !!

Si tu n'est pas convaincu, essayes.

Mon site
Commenter la réponse de NHenry
Messages postés
18
Date d'inscription
lundi 20 novembre 2000
Statut
Membre
Dernière intervention
13 février 2011
0
Merci
En fait le résultat qui te gène, c'est le résultat que je cherche !

Dans chaque dossier, j'ai deux fichiers : un PDF, l'autre TXT, avec le même nom (soit x.pdf et x.txt)

le x.txt est utilisé pour charger des informations dans des Label, tandis que le PDF est en aperçu dans le WebBrowser.

Par contre, je suis à la recherche d'une solution pour remplacer le WebBrowser par un PrintPreviewControl.

Sur ce point, je ne m'en sors pas, malgré toutes les sources que j'ai consultées.

Merci à pour vos conseils.
Commenter la réponse de olidef
Messages postés
18
Date d'inscription
lundi 20 novembre 2000
Statut
Membre
Dernière intervention
13 février 2011
0
Merci
Merci à tous.

Ca marche parfaitement pour les fichiers.
Reste ce problème de visualisation d'aperçu via PrintPreviewControl et ce sera parfait.

Bonne soirée.
Commenter la réponse de olidef