如何读取基于同一行中另一个设置值的文本文件
本文关键字:设置 另一个 文件 文本 于同一 何读取 读取 | 更新日期: 2023-09-27 18:19:44
我正在访问一个文本文件,该文件的值为列、行格式,因此第一行为列,其余为所有对应的行。
我有一个条件,比如如果列名是BSC
,它的值是BSC37
或BSC38
,我必须设置值,比如region_code = "AUH";
。如果值是BSCN10
,则region_code
可以是AUH
或DBL
,因此这里列名"LAC"==3的另一个值则region_code为"AUH",否则如果"LAC"==4,那么region_code
为"DXB"。
我一直在努力实现它,因为这些值是按顺序排列的。
以下是我迄今为止所做的:
string[] cols = lines[0]
.Trim()
.Split(new[] { ''t', ' ' }, StringSplitOptions.RemoveEmptyEntries);
int liness = 1;
foreach (string line in lines.Skip(2))
{
string[] cells = line
.Trim()
.Split(new[] { ''t' }, StringSplitOptions.RemoveEmptyEntries);
for (int counter = 0; counter < cols.Length; counter++)
{
string cellValue = "N/A";
if (counter < cells.Length)
cellValue = cells[counter];
if (cols[counter] == "BSC")
{
insvalues2gericson.Add(new FormField("BSC_ID", cellValue, 2));
if (cellValue == "BSC37" || cellValue == "BSC38" )
{
region_code = "AUH";
}
else
if (cellValue == "BSCN10")
{
//here i need to coding
}
}
}
}
您可以这样做。将第一行放入列列表中。浏览其余的行,将每一行放在单元格列表中。然后,按列名获取某一列的索引(例如columns.IndexOf("BSC")
)以获取单元格值。这样,您就可以轻松访问BSC
和LAC
两列的单元格值。
using System;
using System.Linq;
public class Program
{
public static void Main()
{
var text = "BSC,LAC" + Environment.NewLine
+ "BSC37,1" + Environment.NewLine
+ "BSC38,2" + Environment.NewLine
+ "BSCN10,3"+ Environment.NewLine
+ "BSCN10,4";
var rows = text.Split(new string[]{Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries).ToList();
var columns = rows[0].Split(',').ToList();
foreach(var row in rows.Skip(1)) {
var cells = row.Split(',');
string regionCode = "";
if(cells[columns.IndexOf("BSC")] == "BSC37"
|| cells[columns.IndexOf("BSC")] == "BSC38") {
regionCode = "AUH";
}
if(cells[columns.IndexOf("BSC")] == "BSCN10")
{
if(cells[columns.IndexOf("LAC")] == "3") {
regionCode = "AUH";
}
if(cells[columns.IndexOf("LAC")] == "4")
regionCode = "DXB";
}
}
Console.WriteLine("{0},{1}->{2}",cells[0],cells[1], regionCode);
}
}
}