lire plusieurs fichiers qui contienne une date de ma teextbox

lire plusieurs fichiers qui contienne une date de ma teextbox - C#/.NET managed - Programmation

Marsh Posté le 19-03-2022 à 10:06:53    

Bonjour j'ai une erreur sur file.readalllines(file) n'est pas un membre de string.
J'ai plusieurs fichier . csv dans un dossier de la forme nom date heure.csv ( frite 19032022 1005.csv)je voudrais récupérer que les fichiers dont la date que je renseigne dans ma textbox pour les regrouper trier et listr mais ça c'est fait.
Merci
 
 

Code :
  1. Private Sub ok_Click(sender As Object, e As EventArgs) Handles ok.Click
  2.             ' on récupere tous les fichiers CSV
  3.             Dim files = Directory.GetFiles("C:\test", "*.csv" )
  4.             'on va créer une List de DataTrucss et la remplir
  5.             Dim datas As List(Of DataTrucss) = New List(Of DataTrucss)
  6.             For Each file In files
  7.                 'on va lire chaque fichier séparément et en faire un tableau dont chaque ligne est une entrée
  8.                 Dim lignes As String() = file.ReadAllLines(file)
  9.                 For Each l In lignes
  10.                     datas.Add(New DataTrucss(l))
  11.                 Next
  12.             Next
  13.             'regrouper les données par article et par couleur
  14.             Dim regroupement = datas.GroupBy(Function(x) x.ToString)
  15.             For Each groupe In regroupement
  16.                 ListView1.Items.Add(New ListViewItem({groupe.First().Article, groupe.First().Couleur, groupe.Count.ToString()}))
  17.             Next
  18.         End Sub


 
 
 
 
 

Code :
  1. Class DataTrucss
  2.     Public Sub New(ByVal LigneCsv As String)
  3.         Dim l As String() = LigneCsv.Split(";"c)
  4.         Article = l(0)
  5.         Couleur = l(1)
  6.     End Sub
  7.     Public Property Article As String
  8.     Public Property Couleur As String
  9.     Public Overrides Function ToString() As String
  10.         Return $"{Article}, {Couleur}"
  11.     End Function
  12. End Class
  13. Class DatasTriees
  14.     Public Sub New(ByVal Combinaison As DataTrucss, ByVal LaQuantite As Integer)
  15.         Donnee = Combinaison
  16.         Quantite = LaQuantite
  17.     End Sub
  18.     '1 combinaison Article / Couleur
  19.     Public Property Donnee As DataTrucss
  20.     'la quantité de cette combinaison
  21.     Public Property Quantite As Integer
  22.     Public Overrides Function ToString() As String
  23.         Return $"{Donnee.Article}, {Donnee.Couleur} x{Quantite}"
  24.     End Function
  25. End Class


Message édité par test3333 le 19-03-2022 à 10:40:36
Reply

Marsh Posté le 19-03-2022 à 10:06:53   

Reply

Marsh Posté le 19-03-2022 à 16:57:29    

Pas tout compris à ton explication, mais ReadAllLines est une méthode statique de File qui attend un chemin, et non pas une méthode d'instance de ton "file" :

 

Code :
  1. ...
  2.             Dim files = Directory.GetFiles("C:\test", "*.csv" )
  3.             For Each file In files
  4.                 Dim lignes As String() = File.ReadAllLines(file)
  5. ...
 

Donc ton erreur de compilation vient probablement de là pour commencer.

Message cité 1 fois
Message édité par TotalRecall le 19-03-2022 à 16:58:01

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 19-03-2022 à 17:22:49    

Merci pour le coup de pouce  
En fait je voudrais lire tout les fichiers d'un dossier qui contienne la date que l'on renseigne dans la textbox.
Les lires tous en remplissant une list et aprés de les regrouper selon articles + couleur et si il sont identique on incrémente la quantité.
J'ai juste besoin de savoir sélectionner les bon fichiers
Car dans mon exemple c'est pour tout les fichiers de C:\test
 
 
 
 
 
 
 
 

TotalRecall a écrit :

Pas tout compris à ton explication, mais ReadAllLines est une méthode statique de File qui attend un chemin, et non pas une méthode d'instance de ton "file" :
 
 

Code :
  1. ...
  2.             Dim files = Directory.GetFiles("C:\test", "*.csv" )
  3.             For Each file In files
  4.                 Dim lignes As String() = File.ReadAllLines(file)
  5. ...


 
Donc ton erreur de compilation vient probablement de là pour commencer.


Reply

Marsh Posté le 19-03-2022 à 18:54:25    

Avec une expression régulière ?
 
En C# ça donnerait :
 
var regex = new Regex(@"frite \d{8} \d{4}.csv" );
foreach(var file in files.Where(f => regex.IsMatch(f))
{
...
}
 
Je te laisse transposer en vb :o


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 19-03-2022 à 21:50:31    

Oula merci mais j'ai aucune connaissance en C#
 
 
 
 

TotalRecall a écrit :

Avec une expression régulière ?
 
En C# ça donnerait :
 
var regex = new Regex(@"frite \d{8} \d{4}.csv" );
foreach(var file in files.Where(f => regex.IsMatch(f))
{
...
}
 
Je te laisse transposer en vb :o


Reply

Marsh Posté le 22-03-2022 à 10:42:19    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed