Пример #1
0
        public void StructOutput(Object _Outparams)
        {
            Outparams    outpar    = (Outparams)_Outparams;
            RichTextBox  outp      = outpar.ForOutForm.richTextBox1;
            OperProgress prbarform = outpar.prbarform;
            Link         temp;
            int          count       = 0;
            int          memory_size = 0;

            for (int j = 0; j < this.sizex; ++j)
            {
                if (!prbarform.IsDisposed)
                {
                    prbarform.InvokeUI(() => { prbarform.progressBar1.Value = count; });
                    count++;
                }
                temp = this.columns[j];
                while (temp.next != null)
                {
                    memory_size += 12;
                    var safeptr = SafePtr.Create(temp.next);
                    outp.AppendText("Элемент " + temp.next.inf + " с координатами X:" + (j + 1) + " Y:" + (1 + temp.next.line_number) + " находится по адресу " + safeptr.IntPtr.ToString("x") + "\n");
                    temp = temp.next;
                }
            }
            if (!prbarform.IsDisposed)
            {
                prbarform.InvokeUI(() => { prbarform.Close(); });
            }
            outp.AppendText("\nОбщий объём памяти, занимаемый матрицой: " + memory_size / 1024.0 + " Кбайт\n");
            if (--this.count_readers == 0)
            {
                Fparent.names_collection[Fparent.names_collection.IndexOf(this.name + " (" + this.sizey.ToString() + "x" + this.sizex.ToString() + ") (чтение)")] = this.name + " (" + this.sizey.ToString() + "x" + this.sizex.ToString() + ")";
                Program.fr2.InvokeUI(() => { Program.fr2.ComboRefresh(); });
            }
            outpar.ForOutForm.ShowDialog();
        }
Пример #2
0
 public bool TxtOutputMemory(string path)
 {
     if (Path.GetExtension(path) != ".txt")
     {
         MessageBox.Show("Неверное расширение файла", "Ошибка");
         return(false);
     }
     try
     {
         using (var outp = new StreamWriter(path))
         {
             outp.WriteLine("Вывод расположения элементов в памяти матрицы " + this.name);
             Link temp;
             int  memory_size = 0;
             for (int j = 0; j < this.sizex; ++j)
             {
                 temp = this.columns[j];
                 while (temp.next != null)
                 {
                     memory_size += 12;
                     var safeptr = SafePtr.Create(temp.next);
                     outp.Write("Элемент " + temp.next.inf + " с координатами X:" + (j + 1) + " Y:" + (1 + temp.next.line_number) + " находится по адресу " + safeptr.IntPtr.ToString("x"));
                     outp.WriteLine();
                     temp = temp.next;
                 }
             }
             outp.WriteLine("\nОбщий объём памяти, занимаемый матрицой: " + memory_size / 1024.0 + " Кбайт");
         }
         return(true);
     }
     catch (Exception ex)
     {
         MessageBox.Show("Неверно задан путь к файлу", "Ошибка");
         return(false);
     }
 }