bonjour,
je vous explique le but qui est pourtant simple à l'écrit, mais pas facile ( à mon gout ) en développement !
alors voila : le but est de lire dans un fichier texte les lignes. par exemple
000_1
000_2
000_3
et de lire dans un dossier,
si 000_1.jpg
si 000_10.jpg
si 000_20.jpg
alors le copier coller dans un autre dossier, et ainsi de suite. Par exemple, si dans le fichier txt il trouve 000_1 alors copier coller toutes les photos qui commence par 000_1*.jpg dans un autre dossier.
je suis bloqué dans la résolution de comment comparer le fichier txt avec les noms des fichiers ..
voici mon code pour le moment !
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| Sub Main()
lectureFichier("C:\Users\matth\OneDrive\Documents\apex_crash.txt")
End Sub
Sub lectureFichier(ByVal fichier As String)
Try
Dim fi As New System.IO.FileInfo("C:\Users\matth\OneDrive\Documents\apex_crash.txt")
Dim monStreamReader As New StreamReader(fichier) 'Stream pour la lecture
Dim ligne As String ' Variable contenant le texte de la ligne
Do
ligne = monStreamReader.ReadLine
MsgBox(ligne)
'MsgBox("ca match")
Loop Until ligne Is Nothing
monStreamReader.Close()
Catch ex As Exception
MsgBox("Une erreur est survenue au cours de l'accès en lecture du fichier de configuration du logiciel." & vbCrLf & vbCrLf & "Veuillez vérifier l'emplacement : " & fichier, MsgBoxStyle.Critical, "Erreur lors e l'ouverture du fichier conf...")
End Try |
ce code permet d'aller lire ligne par ligne dans le fichier texte. Jusqu’à là ça va ! Maintenant, je n'arrive pas à dire " si la première ligne correspond a un nom de fichier ... alors faire le copier coller. J'ai la ligne du copié collé, mais pas le " si la première ligne correspond à un nom de fichier situé dans C:/Documents/mesphotos par exemple.
vu que je galérais j'avais eu une idée plus ou moins de génie !
un .bat qui allait lister tous les fichiers dans le dossier, et les mettre dans un .txt. après refaire une boucle comme la première dans ce répertoire, et si ligne = ligne2 alors faire le copier coller...
donc mon .bat :
1 2 3
| @echo off
for /r C:\Users\matth\OneDrive\Bureau\.bat %%i in (*.jpg) do @echo %%~nxi >> mat.txt
pause |
qui marche correctement si je fais un double clique dessus, mais si je le fais avec un process.start("Chemin-du-fichier") Ca ne marche pas ! ( le mat.txt ne se créer pas )
bon alors attention, je dis pas que c'était de la solution, mais il y avait de l'idée quoi .. Je suppose que ce que j'veux faire est possible en 100% VB.net, mais je dois manqué de compétence encore 
Au plaisir de vous écouter et de pouvoir vous aidé si besoin !
Partager