VAGSuite.frmMain.CompareSymbolToCurrentFile C# (CSharp) Метод

CompareSymbolToCurrentFile() приватный Метод

private CompareSymbolToCurrentFile ( string symbolname, int address, int length, string filename, double &diffperc, int &diffabs, double &diffavg, double correction ) : bool
symbolname string
address int
length int
filename string
diffperc double
diffabs int
diffavg double
correction double
Результат bool
        private bool CompareSymbolToCurrentFile(string symbolname, int address, int length, string filename, out double diffperc, out int diffabs, out double diffavg, double correction)
        {
            diffperc = 0;
            diffabs = 0;
            diffavg = 0;

            double totalvalue1 = 0;
            double totalvalue2 = 0;
            bool retval = true;

            if (address > 0)
            {
                int curaddress = (int)GetSymbolAddress(Tools.Instance.m_symbols, symbolname);
                int curlength = GetSymbolLength(Tools.Instance.m_symbols, symbolname);
                byte[] curdata = Tools.Instance.readdatafromfile(Tools.Instance.m_currentfile, curaddress, curlength, Tools.Instance.m_currentFileType);
                byte[] compdata = Tools.Instance.readdatafromfile(filename, address, length, Tools.Instance.m_currentFileType);
                if (curdata.Length != compdata.Length)
                {
                    Console.WriteLine("Lengths didn't match: " + symbolname);
                    return false;
                }
                for (int offset = 0; offset < curdata.Length; offset += 2)
                {
                    int ival1 = Convert.ToInt32(curdata.GetValue(offset)) * 256 + Convert.ToInt32(curdata.GetValue(offset + 1));
                    int ival2 = Convert.ToInt32(compdata.GetValue(offset)) * 256 + Convert.ToInt32(compdata.GetValue(offset + 1)) ;
                    if (ival1 != ival2)
                    {
                        retval = false;
                        diffabs++;
                    }
                    totalvalue1 += Convert.ToDouble(ival1);
                    totalvalue2 += Convert.ToDouble(ival2);
                }
                if (curdata.Length > 0)
                {
                    totalvalue1 /= (curdata.Length/2);
                    totalvalue2 /= (compdata.Length/2);
                }
            }
            diffavg = Math.Abs(totalvalue1 - totalvalue2) * correction;
            diffperc = (diffabs * 100) / (length /2);
            return retval;
        }
frmMain