Make cue file
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace Cue_Ver.I
{
class CueBuild
{
static void Main(string[] args)
{
List<string> keyWords = new List<string>();
const string date = "REM DATE";
const string genre = "REM GENRE";
const string performer = "PERFORMER";
const string title = "TITLE";
const string file = "FILE";
const string wave = "WAVE";
const string track = "TRACK";
const string audio = "AUDIO";
const string index = "INDEX 01";
keyWords.Add(item: date);
keyWords.Add(item: genre);
keyWords.Add(item: performer);
keyWords.Add(item: title);
keyWords.Add(item: file);
string Cue = "";
Console.WriteLine(value: "Cue Ver.I");
Console.Write(value: "Cue Path ");
string path = Console.ReadLine();
foreach(string keyWord in keyWords)
{
Console.Write(value: $"{path}>{keyWord} ");
if (keyWord == performer || keyWord == title)
{
Build(keyWord, b: Console.ReadLine(), Cue: ref Cue, bDoubleQuotationMarks: true);
}
else if (keyWord == file)
{
Build(a: keyWord, b: Console.ReadLine(), c: wave, Cue: ref Cue, bDoubleQuotationMarks: true);
}
else if (keyWord == date)
{
Build(a: keyWord, b: Date(), Cue: ref Cue);
}
else
{
Build(keyWord, b: Console.ReadLine(), Cue: ref Cue);
}
}
keyWords.Clear();
keyWords.Add(item: title);
keyWords.Add(item: performer);
keyWords.Add(item: genre);
keyWords.Add(item: index);
Console.Write(value: $"{path}>track ");
byte Track = Convert.ToByte(value: Console.ReadLine());
for(byte tr=1;tr<=Track;++tr)
{
string trString = tr.ToString().PadLeft(totalWidth: 2, paddingChar: '0');
Build(track, b: trString, c: audio, Cue: ref Cue, bDoubleQuotationMarks: false, Space: true);
foreach(string keyWord in keyWords)
{
Console.Write(value: $"{path}>{track} {trString} {keyWord} ");
if (keyWord == performer || keyWord == title)
{
Build(keyWord, b: Console.ReadLine(), Cue: ref Cue, bDoubleQuotationMarks: true, Space: null);
}
else if (keyWord == index)
{
Build(keyWord, b: Time(), Cue: ref Cue, bDoubleQuotationMarks: false, Space: null);
}
else
{
Build(keyWord, b: Console.ReadLine(), Cue: ref Cue, bDoubleQuotationMarks: false, Space: null);
}
}
}
StreamWriter CueFile = new StreamWriter(path: path, append: false, encoding: Encoding.UTF8);
CueFile.Write(value: Cue);
CueFile.Close();
Console.WriteLine(value: $"[done] {path}");
Console.ReadLine();
}
public static void Build(string a, string b, ref string Cue, bool bDoubleQuotationMarks = false, bool? Space = false) => Build(a: a, b: b, c: null, Cue: ref Cue, bDoubleQuotationMarks: bDoubleQuotationMarks, Space: Space);
public static void Build(string a,string b,string c,ref string Cue, bool bDoubleQuotationMarks=false, bool? Space = false)
{
string sub = "";
if (Space == true)
{
sub = " ";
}
if (Space == null)
{
sub = " ";
}
sub += a;
sub += " ";
string sub2 = "";
if (bDoubleQuotationMarks)
{
sub2 = "\"";
sub2 += b;
sub2 += "\"";
}
else
{
sub2 = b;
}
if (c!=null)
{
sub2 += " ";
sub2 += c;
}
sub2 += "\n";
sub += sub2;
Cue += sub;
}
public static string Time()
{
string time = "";
Console.WriteLine("");
Console.Write(value: "hh ");
time += Console.ReadLine().PadLeft(totalWidth: 2, paddingChar: '0');
time += ":";
Console.Write(value: "mm ");
time += Console.ReadLine().PadLeft(totalWidth: 2, paddingChar: '0');
time += ":";
Console.Write(value: "ss ");
time += Console.ReadLine().PadLeft(totalWidth: 2, paddingChar: '0');
return time;
}
public static string Date()
{
string date = "";
Console.WriteLine("");
Console.Write(value: "yyyy ");
date += Console.ReadLine();
date += ".";
Console.Write(value: "mm ");
date += Console.ReadLine().PadLeft(totalWidth: 2, paddingChar: '0');
date += ".";
Console.Write(value: "dd ");
date += Console.ReadLine().PadLeft(totalWidth: 2, paddingChar: '0');
return date;
}
}
}