Beispiel #1
0
        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;
        }
Beispiel #2
0
        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);
                        }
                    }
                }
            }
        }