private TrackRecord[] getTracks(string[] tracks, string scheidingsteken) { List<TrackRecord> tracklist = new List<TrackRecord>(); TrackRecord savedtrack = null; string nr_eerstetrackvanstuk = ""; int aantaldelen = 1; for (int i = 0; i < tracks.Length; i++) { string track = tracks[i]; TrackRecord trackrecord = new TrackRecord(track); if (track.Contains(scheidingsteken)) { int pos; pos = track.IndexOf("\t"); if (pos == -1) { tracklist.Add(trackrecord); continue; } trackrecord.nr = track.Substring(0, pos); string title = track.Substring(pos + 1); pos = title.IndexOf(scheidingsteken); trackrecord.muziekstuknaam = title.Substring(0, pos); trackrecord.muziekstukdeel = title.Substring(pos + 1); if (savedtrack == null || trackrecord.muziekstuknaam != savedtrack.muziekstuknaam) { // Nieuw stuk adjustAantalDelenInTrack(tracklist, nr_eerstetrackvanstuk, aantaldelen); nr_eerstetrackvanstuk = trackrecord.nr; aantaldelen = 1; } else { // Vervolgdeel aantaldelen++; } savedtrack = trackrecord; } tracklist.Add(trackrecord); } adjustAantalDelenInTrack(tracklist, nr_eerstetrackvanstuk, aantaldelen); TrackRecord[] trs = (TrackRecord[])tracklist.ToArray(); return trs; }
private void addToLines(TrackRecord[] trs, string scheidingsteken) { for (int k = 0; k < trs.Length; ) { TrackRecord tr = trs[k++]; if (tr.nr == "") { lstLines.Items.Add(tr.muziekstuknaam); } else { if (tr.aantaldelen == 1) { lstLines.Items.Add(tr.nr + "\t" + tr.muziekstuknaam + scheidingsteken + tr.muziekstukdeel); } else { // lege regel lstLines.Items.Add(""); // regel met muziekstuk lstLines.Items.Add(tr.muziekstuknaam); // regels met de delen lstLines.Items.Add(tr.nr + "\t" + tr.muziekstukdeel); for (int i = 1; i < tr.aantaldelen; i++) { TrackRecord tr2 = trs[k++]; lstLines.Items.Add(tr2.nr + "\t" + tr2.muziekstukdeel); } } } } }