我有多个字符串的文件,打开的是使用按钮和openFileDialog
。目标是将每个唯一字符串加载到单个textBox。
private void OpenClick(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
using (StreamReader sr = new StreamReader(openFileDialog1.FileName))
{
每个这样的文件将始终具有相同的代码(0.0.5; 0.1.2 * 26等),只有“()”内的值才会改变。
请显示确切的示例,如何进行硬编码并获得如下结果的最佳方式:
textBox1= 2008/12/22 08:10:02
textBox2= DC331TMMBA5BAC
textBox3= 00000000
textBox4= 45889662
textBox5= TA-6301
textBox6=
textBox7= 0812210743
textBox8= 5000*1
textBox9= 0812210745
textBox9= 0000 textBox10= 0306021530
文件中数据块的一部分:
*** 2008/12/22 08:10:02 *** SLB
\@DC331TMMBA5BAC
F.F(00000000)
0.0.0(45889662)
0.0.1(TA-6301 )
0.0.5( )
0.1.2*26(0812210743)
0.3.3( 5000*1/kWh)
C.64.0*01(0812210745)
1.6.1*26(0000*kW)(0306021530)
答案 0 :(得分:0)
这样的事似乎没问题。
var date = Regex.Match(input, @"(\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2})").Groups[0].Value;
var secondLine = Regex.Match(input, @"\\@(.*)").Groups[1].Value;
var theRest = Regex.Matches(input, @"(?:\()([^)]+)(?:\))");
Console.WriteLine(date); // 2008/12/22 08:10:02
Console.WriteLine(secondLine); // DC331TMMBA5BAC
foreach (Match match in theRest) {
Console.WriteLine(match.Groups[1].Value);
}
完整结果:
2008/12/22 08:10:02
DC331TMMBA5BAC
00000000
45889662
TA-6301
0812210743
5000*1/kWh
0812210745
0000*kW
0306021530
答案 1 :(得分:0)
var rx = new Regex(
@"\s*\*+(?<1>[0-9/\s:]+)\*+.*" + Environment.NewLine +
@"\s*\\@(?<2>.+).*" + Environment.NewLine +
@"[^\(]*\((?<3>.+)\).*" + Environment.NewLine +
@"[^\(]*\((?<4>.+)\).*" + Environment.NewLine +
@"[^\(]*\((?<5>.+)\).*" + Environment.NewLine +
@"[^\(]*\((?<6>.+)\).*" + Environment.NewLine +
@"[^\(]*\((?<7>.+)\).*" + Environment.NewLine +
@"[^\(]*\((?<8>.+)\).*" + Environment.NewLine +
@"[^\(]*\((?<9>[^\)]+)\)[^\(]*\((?<10>[^\)]+)\)");
var str = @"*** 2008/12/22 08:10:02 *** SLB
\@DC331TMMBA5BAC
F.F(00000000)
0.0.0(45889662)
0.0.1(TA-6301 )
0.0.5( )
0.1.2*26(0812210743)
0.3.3( 5000*1/kWh)
C.64.0*01(0812210745)
1.6.1*26(0000*kW)(0306021530)";
var m = rx.Match(str);
var text1 = m.Groups["1"].Value;
var text2 = m.Groups["2"].Value;
//...