public static void Main()
string stagingFormat = "February 2015 ALONLYEC472 EC473 EC474 EC526 EC527 EC528 ALASSETS ALD Land ALT Infrastructure ALT Plant ALD Livestock AL- Pool Equity (Net) ALD Pool Equity (Gross) ALD Other Crop Pools ALD In Storage ALD Shares ALD Sundry Assets ALD Non Farm Assets ALD Credit Balances ALD Outstanding Income ALT GST Credits ALT Fuel Tax Credits ALLIABILITIES ALD Sundry Liabilities ALD Non Farm Liabilities ALD Debit Balances ALD Outstanding Payments ALD Term Loans ALD Grain Pool Loans ALT Lease ALT Hire Purchase ALT GST Liability ALT PAYG Liability AW449 AW445 AW475 AW476 AW473 AW447 SL";
var statementOfPositionReportFormatGrainIncomeCalculatorSetLookupStr = stagingFormat.Substring(stagingFormat.Length -2, 2);
ParseSubComponents(1,1, stagingFormat);
private static void ParseSubComponents(long revisionid, int businessId, string raw)
var totalLength = raw.Length;
Console.WriteLine("Total Length : " + totalLength);
string leader = raw.Substring(position,2);
var entcode = raw.Substring(position,4);
Console.WriteLine("Enterprise : " + entcode);
if(position >= totalLength)
leader = raw.Substring(position,2);
var temp = raw.Substring(position,30);
var temp2 = temp.Substring(4).TrimStart().TrimEnd();
if(temp2 == "Grain Loan Pools (Net)")
temp = temp.PadLeft(5).Trim() + "Pool Equity (Net)";
else if(temp2 == "Grain Loan Pools")
temp = temp.PadLeft(5).Trim() + "Pool Equity (Gross)";
else if(temp2 == "Grain Loans")
temp = temp.PadLeft(5).Trim() + "Grain Pool Loans";
if(temp.Equals("LIABILITIES") == false && temp.Equals("ASSETS") == false)
Console.WriteLine("Terminology :" + temp.Substring(0,1));
Console.WriteLine("Terminology2 :"+temp2);
if(position >= totalLength)
leader = raw.Substring(position,2);
Console.WriteLine("position"+ position+ "<"+ totalLength);
if(position < totalLength)
var entcode = raw.Substring(position, 4);
Console.WriteLine("AWB : " + entcode);
leader = raw.Substring(position,2);
} while(leader == "AW" || position < totalLength);