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(); }
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); } }