Code:
using System;
using System.IO;
using System.Text.RegularExpressions;
namespace Chapter6Problem6
{
class Program
{
const string INPUT_FILE = "\\Projects\\Chapter6Problem6\\Chapter6Problem6\\inventory.txt";
const string OUTPUT_FILE = "\\Projects\\Chapter6Problem6\\Chapter6Problem6\\list.txt";
static int records = 8;
static uint i;
static string lineIn;
static int[] recordCode = new int[records + 1];
static string[] partNumber = new string[records + 1];
static string[] partDescription = new string[records + 1];
static int[] balance = new int[records + 1];
static StreamReader fileIn;
static StreamWriter fileOut;
static void Main()
{
if (OpenFiles())
{
InputData();
ValidateData(lineIn,i);
CloseFiles();
}
}
static bool OpenFiles()
{
bool successOpeningFile = true;
if (File.Exists(INPUT_FILE))
{
fileIn = File.OpenText(INPUT_FILE);
Console.WriteLine("{0} was opened!", INPUT_FILE);
}
else
{
Console.WriteLine("Error: {0} does not exist!", INPUT_FILE);
successOpeningFile = false;
}
fileOut = File.CreateText(OUTPUT_FILE);
if (File.Exists(OUTPUT_FILE))
Console.WriteLine("{0} was created!", OUTPUT_FILE);
else
{
Console.WriteLine("Error: {0} could not be created!", OUTPUT_FILE);
successOpeningFile = false;
}
return successOpeningFile;
}
static void InputData()
{
while ((lineIn = fileIn.ReadLine()) != null)
{
ParseLineIn(lineIn, i);
i++;
}
}
static void ParseLineIn(string lineIn, uint i)
{
string[] words = new string[2];
lineIn = lineIn.Trim();
while (Regex.IsMatch(lineIn, "[ ] {2}"))
lineIn = lineIn.Replace(" ", " ");
words = lineIn.Split(' ');
recordCode[i] = int.Parse(words[0]);
partNumber[i] = words[1];
partDescription[i] = words[2];
balance[i] = int.Parse(words[3]);
}
static void ValidateData(string partnumber, uint i)
{
while(recordCode[i] == 11 && balance[i] == 0)
{
while (Regex.IsMatch(partnumber, "[A-Z] {2} [0-9] {4}"))
Display();
}
}
static void Display()
{
int i;
fileOut.WriteLine("Record Code Part # Description Balance");
fileOut.WriteLine("-----------------------------------------------------------------------");
for(i = 0; i <= records; i++)
fileOut.WriteLine("{0} {1} {2} {3}", recordCode[i], partNumber[i], partDescription[i], balance[i]);
fileOut.WriteLine("-----------------------------------------------------------------------");
}
static void CloseFiles()
{
fileIn.Close();
fileOut.Close();
}
}
}
the program compiles and the text is created but no output for some reason