如何从 TextBox 获取值并自动应用格式?

How to get values from a TextBox and apply a format automatically?

下面是我的占位符,其中的值是硬编码的:

var abc = string.Format($"{123456} {123456} {12345} {123456789012345} {12345678901234567890123} {1234} {1234} {123} {1234567890123} {123456789012345} {1} {123456789012345} 
{123} {12} {12345678901234567890} {1} {1234}");

File.WriteAllText(
    FilePath + "\CDR-" + 
    DateTime.Now.ToString("MM-dd-yyyy HH-mm-ss") + ".txt", abc);

但我想在这些占位符中自动从 TextBox 中获取值。

假设下面是我的文本框及其值:

123456 123456 12345 123456789012345 12345678901234567890123 
1234 1234 123 1234567890123 123456789012345 1 123456789012345 
123 12 12345678901234567890 1 1234

可以将输入的字符串使用序列分隔符(这里好像是白色的space)进行拆分,将string.Spilt()生成的字符串数组作为[=11]的输入=]方法。

像这样:

string filePath = @"[Some Path]";
string[] values = textBox1.Text.Split();
var format = string.Format(
    "{0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16}",
    values);

File.WriteAllText(Path.Combine(filePath, 
    "CDR-" + DateTime.Now.ToString("MM-dd-yyyy HH-mm-ss") + ".txt"), 
    format);

如果您有不同的分隔符,请将其指定为 Split() 方法的参数。

白色的space是预定义字符。在这种情况下无需指定它。使用不同的符号:

  • 单个字符:[someString].Split(',');
  • 不止一个:[someString].Split(new[] {',', '+'});
  • 字符串:[someString].Split(new[] { ",", "+" }, StringSplitOptions.RemoveEmptyEntries);