c# - 从 .txt 文件填充和二维数组
问题描述
所以,我需要查看文件并用文件中的数据填充二维数组。我想不出比这更好的方法了,但是这段代码完全冻结了。这是代码。
我的想法是我要查看源文件中的所有文本,然后我要检查一行是否包含我需要的东西,如果是,我将添加到我的二维数组中,然后我将写入不同的txt文件。
string[,] FileBase = new string[100,100];
DateTime Date = DateTime.UtcNow;
string time = Date.ToString();
time = time.Replace(':', '.');
string ReportPath = Directory.GetCurrentDirectory() + "\\Report from " + time + ".txt";
int Value = 0;
int i = 0, j = 0;
string item;
int controlD = 0;
int sensor = 0;
int p = 0;
bool loadcell = false;
bool possensor = false;
int smth = 0;
string curr = comboBox1.SelectedItem.ToString();
curr = curr.Remove(0, curr.IndexOf("RCU") + 3);
int current = Convert.ToInt32(curr);
string localpath = path + "\\control\\RCU" + curr + "\\cfg\\RCU" + curr + ".cfg";
FileStream file1 = new FileStream(localpath, FileMode.Open);
StreamReader reader = new StreamReader(file1);
while ((item = reader.ReadLine()) != null)
{
for (i = p; i < 100; i++)
{
for (j = 0; j < 1000; i++)
{
if (item.Contains("Signal_Sensor"))
{
sensor++;
FileBase[i, j] = "Signal_SensorA" + sensor;
break;
}
else if (item.Contains("Signal_PositionA"))
{
controlD++;
FileBase[i, j] = "Signal_PositionA" + controlD;
break;
}
else if (item.Contains("Division") && (controlD != 0))
{
FileBase[i, j] = "Division";
FileBase[i, j + 1] = Convert.ToString(CommaClear(Value));
break;
}
else if (item.Contains("LowerLimitExternal"))
{
FileBase[i, j] = "LowerLimitExternal";
FileBase[i, j + 1] = Convert.ToString(CommaClear(Value));
break;
}
else if (item.Contains("UpperLimitExternal"))
{
FileBase[i, j] = "UpperLimitExternal";
FileBase[i, j + 1] = Convert.ToString(CommaClear(Value));
break;
}
else if (item.Contains("LowerLimit"))
{
FileBase[i, j] = "LowerLimit";
FileBase[i, j + 1] = Convert.ToString(CommaClear(Value));
break;
}
else if (item.Contains("UpperLimit"))
{
FileBase[i, j] = "UpperLimit";
FileBase[i, j + 1] = Convert.ToString(CommaClear(Value));
break;
}
else if (item.Contains("LoadCell"))
{
loadcell = true;
break;
}
else if (item.Contains("PositionSensor"))
{
possensor = true;
break;
}
else if (item.Contains("EnableSensorA" + smth))
{
smth++;
FileBase[i, j] = "EnableSensorA" + smth;
FileBase[i, j + 1] = Convert.ToString(CommaClear(Value));
break;
}
else if (item.Contains("InvertSensorA"))
{
smth++;
FileBase[i, j] = "InvertSensorA" + (smth - 3);
FileBase[i, j + 1] = Convert.ToString(CommaClear(Value));
break;
}
if (smth ==6)
{
smth = 0;
break;
}
}
p = i;
break;
}
}
reader.Close();
File.Create(ReportPath);
FileStream ReportFill = new FileStream(ReportPath, FileMode.Open);
StreamReader reader1 = new StreamReader(ReportFill);
WriteArray();
reader1.Close();
提前致谢!
解决方案
推荐阅读
- sql - PostgreSQL 在查询返回空的情况下将 NULL 作为一行返回
- python - 根据行和列对矩阵中的所有元素进行排名
- spring-boot - WebFlux 如何以功能性非阻塞方式链接查询
- c# - 我怎样才能实现相同的物理学?
- javascript - Promise.all 结果符合预期,但个别项目显示未定义
- docker - Docker 容器没有正确使用 CPU
- javascript - 无法使用角度设置在列表组中单击按钮时选择的单选按钮值
- api - 我无法使用clockify API获取“在工作区为用户查找时间条目”
- sql-server - 如何在 ubuntu 16.04 中为 mssql 实例启用 TCP/IP?
- python - 将列表元素输入到函数中