Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question//filename étant un string contenant le nom d'un fichier if (filename.Contains("TPD")) ....
string filename = "Log_SOM.HMISCUXA5.APPLICATION.P29.TPD1510260.csv"; if (Regex.IsMatch(filename, "^Log_SOM.HMISCUXA5.APPLICATION.P29.[A-Z]+1510260.csv$"))
if (Regex.IsMatch(filename, @"^(\w+\.){4}[A-Z]+\d+\.csv$"))
Match m = Regex.Match(filename,@"^(\w+\.){4}(?<col>[A-Z]+)\d+\.csv$"); string maCol; if (m.Success) { maCol = m.Groups["col"].Value; }
Directory.GetFiles(@"C:\Test", "*.*", SearchOption.AllDirectories);cette instruction va retourner tous les chemins de fichiers de tous type contenu dans C:\Test et ses sous répertoires:
"C:\\Test\\Log_SOM.HMISCUXA5.APPLICATION.P29.TPD1510260.csv"
"C:\\Test\\Toto.docx"
"C:\\Test\\Un autre CSV.csv"
"C:\\Test\\Sous Dossier\\Log_SOM.HMISCUXA5.APPLICATION.P29.PD1510260.csv"
Directory.GetFiles(@"C:\Test", "*.csv", SearchOption.AllDirectories);
string[] files = Directory.GetFiles(@"C:\Test", "*.csv", SearchOption.AllDirectories); Regex maRegex = new Regex(@"^(\w+\.){4}(?<col>[A-Z]+)\d+\.csv$"); Dictionary<string,string> monDico = (from f in files let m = maRegex.Match(Path.GetFileName(f)) where m.Success select new { Fichier = f, Col = m.Groups["col"].Value } ).ToDictionary(i => i.Col, i => i.Fichier);
string[] lignes = File.ReadAllLines(monDico["TPD"]);
string[] valeurs = "10/26/15 12:21:17,0,1".Split(',');
"10/26/15 12:21:17"
"0"
"1"
public class DonneesSpiELec { public DateTime Datation { get; set; } public string ColTPD { get; set; } public string ColPD { get; set; }
List<DonneesSpiELec> mesDonnees = new List<DonneesSpiELec>(); foreach(string cle in monDico.Keys) foreach(string l in File.ReadAllLines(monDico[cle])) { string[] valeurs = l.Split(','); DateTime date = DateTime.ParseExact(valeurs[0], "MM/dd/yy HH:mm:ss" ,CultureInfo.InvariantCulture);//on extrait et converti la date DonneesSpiELec donnee = mesDonnees.Find(x => x.Datation == date);//on cherche si une donnée a déjà été enregistrée pour cette datation if (donnee == null)//la donnée n'existe pas encore { donnee = new DonneesSpiELec(); donnee.Datation = date; mesDonnees.Add(donnee); } switch(cle)//on rempli le champ qui va bien { case "TPD": donnee.ColTPD = valeurs[1]; break; case "PD": donnee.ColPD = valeurs[1]; break; default: throw new Exception("Colonne non définie"); } }
5 nov. 2015 à 19:29