مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

sama1010

عضویت از 1394/08/27

کمک فوری

  • چهارشنبه 27 آبان 1394
  • 13:49
تشکر میکنم

با سلام

من یک فایل متنی با حجم 500 مگابایت دارم که ابتدا میخوام خط به خط بخونمش ، بعد میخوام از محتوای فایلم فقط بخش یوزرنیم وآدرس آی پی رو بگیره داخل یک لیست یا آرایه دوبعدی بریزه ودر نهایت در دیتا گرید ویو نشون بده. ولی موقع اجرای برنامه، خطای out of memory میده. یک فایل با سایز کوچک که تست میکنم میده ولی فایل اصلی که حجیم هستش رو اجرا نمیکنه ، لطف میکنید کمک کنید.

 

  public void ReadFile(string ConfigFile)
        {
            dataGridView1.ColumnCount = 2;
            dataGridView1.Columns[0].Name = "Name of server";
            dataGridView1.Columns[0].HeaderText = "Name of server";
            dataGridView1.Columns[0].DataPropertyName = "Name of server";

            dataGridView1.Columns[1].HeaderText = "IP Address";
            dataGridView1.Columns[1].Name = "IP Address";
            dataGridView1.Columns[1].DataPropertyName = "IP Address";

            using (StreamReader st = new StreamReader(ConfigFile))
            {

                string lines = string.Empty;
               
                while ((lines = st.ReadLine()) != null)
                {

                    int startIndex = lines.IndexOf('-');
                    var nextIndex = lines.IndexOf('(', startIndex);
                    int length = nextIndex - startIndex - 1;
                    string final = lines.Substring(startIndex + 1, length);
                    var nextIpIndex = lines.IndexOf('(', startIndex);
                    var next = lines.IndexOf(')', nextIpIndex);
                    int len = next - nextIpIndex + 1;
                    string fi = lines.Substring(nextIpIndex, len);

                    names = new string[,] { { final, fi } };


                          if (!names[0, 1].Contains("(not logged in)"))
                            {
                                RemoveDuplicate(dataGridView1);
                                dataGridView1.Rows.Add(new object[] { names[0, 0], names[0, 1] });
                              
                            }

 

پاسخ های این پرسش

تعداد پاسخ ها : 3 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 27 آبان 1394
  • 14:00
کاربر سایت

sama1010

عضویت از 1394/08/27

  • چهارشنبه 27 آبان 1394
  • 14:08

خیلی ممنون ولی این کدهارم استفاده کردم جواب نداده.لطفا کدمو چک کنید و بگید کجا ایراد دارم .تشکر.

 

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 27 آبان 1394
  • 14:45

از BackGround Worker استفاده کنید

فکر کنم مشکل برطرف بشه

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)