Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1935 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  lire plusieurs fichiers qui contienne une date de ma teextbox

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

lire plusieurs fichiers qui contienne une date de ma teextbox

n°2412682
test3333
Posté le 19-03-2022 à 10:06:53  profilanswer
 

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
mood
Publicité
Posté le 19-03-2022 à 10:06:53  profilanswer
 

n°2412688
TotalRecal​l
Posté le 19-03-2022 à 16:57:29  profilanswer
 

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
n°2412689
test3333
Posté le 19-03-2022 à 17:22:49  profilanswer
 

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.


n°2412691
TotalRecal​l
Posté le 19-03-2022 à 18:54:25  profilanswer
 

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
n°2412702
test3333
Posté le 19-03-2022 à 21:50:31  profilanswer
 

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


n°2412844
TotalRecal​l
Posté le 22-03-2022 à 10:42:19  profilanswer
 

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  lire plusieurs fichiers qui contienne une date de ma teextbox

 

Sujets relatifs
Continuer à accéder à des fichiers après publication (sous VS) ?Lire et déplacer un fichier TAR avec nom alternatif bash
[Résolu] PhpMyAdmin : msg d'erreur avec plusieurs requêtes SQL[VBA] code outlook format date
Filtrer sur la date d'hier dans une requête SQLResultat en fonction d'une date
Convertir une date ex. 12-05-21 en 12-05-2021Excel / google sheet Plusieurs set de data sur même axe x (Insoluble?)
Select where avec plusieurs valeurs[Batch] Ajout date création au nom lors d'une copie
Plus de sujets relatifs à : lire plusieurs fichiers qui contienne une date de ma teextbox


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR