Nom de fichier

Résolu
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 à 14:12
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.

12 réponses

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
6 févr. 2011 à 15:28
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
3
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
6 févr. 2011 à 20:15
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
3
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
6 févr. 2011 à 20:38
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
3
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
6 févr. 2011 à 14:56
Bonjour,

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

Mon site
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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 à 14:59
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...
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
6 févr. 2011 à 15:20
Bonjour,

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

Mon site
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
6 févr. 2011 à 15:31
End Su
il manque le b

End Sub
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
6 févr. 2011 à 15:44
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
0
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 à 16:30
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
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
6 févr. 2011 à 16:59
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
0
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 à 19:12
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.
0
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
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.
0
Rejoignez-nous