试图从文本框中解析多行
Trying to parse multiple lines from a textbox
虽然这适用于一行,但我正在尝试从文本框“ProgramWindow”和 运行 命令中获取多行命令,所有命令都一个接一个地键入。在这种情况下,命令绘制由命令指定的形状。
命令可以是以下格式:
命令
命令参数
命令参数,参数
我试过使用循环,但我卡在了这里
String[] Lines = ProgramWindow.Text.Split('\n');
int NumberOfCommands = Lines.Length;
void Parse()
{
for (int i = 0; i <= NumberOfCommands; i++)
{
String[] Input = ProgramWindow.Text.ToLower().Split(' ', (char)StringSplitOptions.RemoveEmptyEntries);
String Command = Input[0];
int[] Parameters = Input.Length <= 1 ? new int[0] : Input[1].Split(',').Select(item => int.Parse(item)).ToArray();
int X = Parameters.Length >= 1 ? Parameters[0] : 0;
int Y = Parameters.Length >= 2 ? Parameters[1] : 0;
Console.WriteLine(Command);
Console.WriteLine(X);
Console.WriteLine(Y);
Commands(Command, X, Y);
Refresh();
}
}
你必须使用线数组
String[] Lines = ProgramWindow.Text.Split('\n');
int NumberOfCommands = Lines.Length;
void Parse()
{
for (int i = 0; i <= NumberOfCommands; i++)
{
String[] Input = Lines[i].ToLower().Split(' ', (char)StringSplitOptions.RemoveEmptyEntries);
String Command = Input[0];
int[] Parameters = Input.Length <= 1 ? new int[0] : Input[1].Split(',').Select(item => int.Parse(item)).ToArray();
int X = Parameters.Length >= 1 ? Parameters[0] : 0;
int Y = Parameters.Length >= 2 ? Parameters[1] : 0;
Console.WriteLine(Command);
Console.WriteLine(X);
Console.WriteLine(Y);
Commands(Command, X, Y);
Refresh();
}
}
虽然这适用于一行,但我正在尝试从文本框“ProgramWindow”和 运行 命令中获取多行命令,所有命令都一个接一个地键入。在这种情况下,命令绘制由命令指定的形状。
命令可以是以下格式:
命令
命令参数
命令参数,参数
我试过使用循环,但我卡在了这里
String[] Lines = ProgramWindow.Text.Split('\n');
int NumberOfCommands = Lines.Length;
void Parse()
{
for (int i = 0; i <= NumberOfCommands; i++)
{
String[] Input = ProgramWindow.Text.ToLower().Split(' ', (char)StringSplitOptions.RemoveEmptyEntries);
String Command = Input[0];
int[] Parameters = Input.Length <= 1 ? new int[0] : Input[1].Split(',').Select(item => int.Parse(item)).ToArray();
int X = Parameters.Length >= 1 ? Parameters[0] : 0;
int Y = Parameters.Length >= 2 ? Parameters[1] : 0;
Console.WriteLine(Command);
Console.WriteLine(X);
Console.WriteLine(Y);
Commands(Command, X, Y);
Refresh();
}
}
你必须使用线数组
String[] Lines = ProgramWindow.Text.Split('\n');
int NumberOfCommands = Lines.Length;
void Parse()
{
for (int i = 0; i <= NumberOfCommands; i++)
{
String[] Input = Lines[i].ToLower().Split(' ', (char)StringSplitOptions.RemoveEmptyEntries);
String Command = Input[0];
int[] Parameters = Input.Length <= 1 ? new int[0] : Input[1].Split(',').Select(item => int.Parse(item)).ToArray();
int X = Parameters.Length >= 1 ? Parameters[0] : 0;
int Y = Parameters.Length >= 2 ? Parameters[1] : 0;
Console.WriteLine(Command);
Console.WriteLine(X);
Console.WriteLine(Y);
Commands(Command, X, Y);
Refresh();
}
}