Я работаю над заданием, которое требует чтения ввода из двух текстовых файлов. Изменение данных первого файла на основе данных второго файла и печать результатов в третий файл.
Первый файл - это файл инвентаризации, который содержит идентификационный номер, название продукта и количество, отформатированный следующим образом:
123 | телевидение | 45
124 | компьютер | 52
125 | радио | 20
Второй файл содержит идентификационный номер и количество изменений:
123 | -8
124 | 7
В предыдущем вопросе я спросил о том, как прочитать данные первого файла в список. Я считаю, что я достиг этого в основном методе в коде ниже. Также в приведенном ниже коде у меня есть цикл, который будет читать строки из второго файла и сохранять идентификационный номер как updateID
, а количество как numUpdate
. Я хотел бы использовать эти значения для изменения списка Inventory
, но я не уверен, как это сделать. Моей первой мыслью, когда я изучал эту проблему, был метод .IndexOf
, но я не думаю, что это сработает. Каков будет процесс обновления списка Inventory
данными второго файла? Конечно, я в конечном итоге захочу распечатать список обновлений в файл thrid ... но сейчас меня это не особо волнует.
class Program
{
public class InventoryNode
{
public int IDNumber;
public string Name;
public int Quantity;
public InventoryNode()
{
IDNumber = 0;
Name = " ";
Quantity = 0;
}
public InventoryNode(int ID, string InvName, int Number)
{
IDNumber = ID;
Name = InvName;
Quantity = Number;
}
public override string ToString() // This one is a freebie
{
return IDNumber + " | " + Name + " | " + Quantity;
}
}
static void Main(String[] args)
{
int ID;
string InvName;
int Number;
string updateID;
int numUpdate;
string line;
List<InventoryNode> Inventory = new List<InventoryNode>();
InventoryNode Item = null;
StreamReader f1 = new StreamReader(args[0]);
StreamReader f2 = new StreamReader(args[1]);
StreamWriter p = new StreamWriter(args[2]);
while ((line = f1.ReadLine()) != null)
{
string[] currentLine = line.Split('|');
{
ID = Convert.ToInt16(currentLine[0]);
InvName = currentLine[1];
Number = Convert.ToInt16(currentLine[2]);
}
Item = new InventoryNode(ID, InvName, Number);
Inventory.Add(Item);
}
while ((line = f2.ReadLine()) != null)
{
string[] currentLine2 = line.Split('|');
updateID = currentLine2[0];
numUpdate = Convert.ToInt16(currentLine2[1]);
}
return;
}
}