using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace Zenebutik_gyak { public class Zeneszam { private string cim { get; set; } private string szerzo { get; set; } private int idotartam { get; set; } public string Cim { get => cim; } public string Szerzo { get => szerzo; } public int Idotartam { get => idotartam; set { if (value > 0) idotartam = value; } } public Zeneszam(string cim, string szerzo, int idotartam) { this.cim = cim; this.szerzo = szerzo; this.idotartam = idotartam; } //kellene a this? public static Zeneszam Feldolgozas(string text) { return new Zeneszam(text.Split(';')[0], text.Split(';')[1], Int32.Parse(text.Split(';')[2])); } public string FormazottIdo() { TimeSpan time = TimeSpan.FromSeconds((double)Idotartam); return time.Minutes + ":" + time.Seconds; } } public class Album { public enum Adathordozo { Kazetta, CD, Bakelit } public string eloado { get; set; } public string cim { get; set; } public Adathordozo[] adathordozo{ get; set; } public Zeneszam[] zeneszamok { get; set; } private void FelveteltHozzaad(Zeneszam zeneszam,int index) { zeneszamok[index] = zeneszam; } public Album(string _eloado,string _cim,string path) { this.eloado = _eloado; this.cim = _cim; string[] datas = File.ReadAllLines(path); zeneszamok = new Zeneszam[datas.Length]; for(int i = 0;i < datas.Length; i++) { //FelveteltHozzaad(Zeneszam.Feldolgozas(datas[i]),i); //zeneszamok[i] = Zeneszam.Feldolgozas(datas[i]); zeneszamok[i] = new Zeneszam(datas[i].Split(';')[0], datas[i].Split(';')[1], Int32.Parse(datas[i].Split(';')[2])); } } private Zeneszam LegrovidebbFelvetel() { TimeSpan minLength = new TimeSpan(long.MaxValue); int minIndex = 0; for (int i = 0; i < zeneszamok.Length; i++) { TimeSpan currLength = TimeSpan.FromSeconds((double)zeneszamok[i].Idotartam); if (currLength < minLength) { minLength = currLength; minIndex = i; } } return zeneszamok[minIndex]; } private TimeSpan JatekidoOsszesites(int idotartam) { TimeSpan idotartam2 = TimeSpan.FromSeconds((double)idotartam); TimeSpan sumPlayTime = new TimeSpan(); for(int i = 0;i < zeneszamok.Length; i++) { if (TimeSpan.FromSeconds((double)zeneszamok[i].Idotartam)> idotartam2) { sumPlayTime += TimeSpan.FromSeconds((double)zeneszamok[i].Idotartam); } } return sumPlayTime; } Boolean VanElegZeneszam(string szerzo, int db) { int sumDb = 0; for(int i = 0;i < zeneszamok.Length; i++) { if (zeneszamok[i].Szerzo.Contains(szerzo)) sumDb++; } return sumDb >= db; } private Zeneszam[] Kivalogat(string szerzo) { int count = 0; foreach(Zeneszam a in zeneszamok) { if (a.Szerzo.Contains(szerzo)) count++; } Zeneszam[] returnArray = new Zeneszam[count]; int j = 0; for(int i = 0;i < zeneszamok.Length;i++) { if(zeneszamok[i].Szerzo.Contains(szerzo)) { returnArray[j] = zeneszamok[i]; j++; } } return returnArray; } public string Lekerdez(string szerzo) { int index = 0; string returnString = eloado + " - " + cim + "\r\n\r\n"; for(int i = 0;i < zeneszamok.Length; i++) { if(zeneszamok[i].Szerzo.Contains(szerzo)) { returnString += (index+1) + ". " + zeneszamok[i].Cim + " (" + zeneszamok[i].Szerzo + " ) - " + zeneszamok[i].FormazottIdo() + "\r\n"; index++; } } return returnString; } public void Test() { Console.WriteLine("Legrovidebb felvetel:"+LegrovidebbFelvetel().Cim); Console.WriteLine("Jatekido osszesites:"+JatekidoOsszesites(300)); Console.WriteLine("Van-e elég szám" + VanElegZeneszam("Hetfield", 3)); Console.WriteLine("Kivalogat:"); foreach (Zeneszam a in Kivalogat("Hetfield")) Console.WriteLine(a.Cim); } } class Program { static void Main(string[] args) { Album album = new Album("Metallica", "Load", "metallica-load.txt"); File.WriteAllText("hammett.txt", album.Lekerdez("Hammett")); album.Test(); Console.ReadKey(); } } }