Black Captain
شنبه 08 خرداد 1395, 00:31 صبح
سلام دوستان. می خواستم لطف کنید تو تکمیل یه برنامه در #C کمک کنید.
من قراره یه برنامه بنویسم و به این شکل هست که یه سری فایل نوت پد (حدودا 300 عدد) وجود داره که هر کدوم حاوی اطلاعات سخت افزاری یک سیستم هست (که با استفاده از نرم افزار مخصوص دریافت اطلاعات سخت افزاری سیستم تهیه شدند)، جزئیات اطلاعات سخت افزاری این نوت پدها باید از طریق برنامه نوشته شده در #C وارد بانک اطلاعاتی که در SQL Server ایجاد شده، شود.
حقیقت این هست که من با #C اصلا آشنایی ندارم، برای کارآموزی فوق دیپلم با کلی دردسر و رفت و آمد در نهایت تونستم به یه شرکت دولتی برم، هدف این بود که یه چیزی یاد بگیریم اما الان نه تنها چیزی یاد نگرفتم بلکه از درس های دیگه هم افتادم و چیزی هم به پایان زمان کارآموزی نمونده و گفتند حتما باید برنامه رو تحویل بدم تا کارآموزی رو تایید کنند.
به هر ترتیب که بود حدودا فک کنم 80% برنامه رو نوشتم، اما وقتی فکر می کردم برنامه کامل شده متوجه مشکل جدیدی شدم.
من فکر می کردم تمامی فایل های نوت پد یکسان هستند اما متوجه شدم که اینطور نیست، برخی سیستم های مثلا دو هارد، دو پردازنده، دو گرافیک و ... دارند و به همین خاطر نوشتن کد بر اساس ترتیب یک فایل نوت پد، باعث شده که اطلاعات خیلی از فایل ها به درستی وارد تکست باکس برنامه نشه، مثلا یک فایل مشخثات پردازنده میره بجای مشخصات گرافیک و در کل قاطی میکنه.
به من گفتند که باید یک شرط نوشته بشه که هر جا مثلا عنوان "CPU" قرار گرفت، محتویات خطوط بعدیش وارد تکست باکس بشه تا جایی که مثلا به "GPU" که پایین همون "CPU" هست رسید، انتقال متوقف بشه، به این شکل برای تمام نوت پدها، انتقال به درستی انجام میشه چون همه عنوان های "CPU" ، "GPU" ، "HDD" و ... یکسان هست.
ممنون میشم کمکم کنید و این شرط رو اگر ممکنه اضافه کنید، کلافه شدم تو این چند روز انقدر سرچ کردم و چیزی پیدا نشد.
کدهای برنامه ای که نوشتم به این شکل هست:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Damghan
{
public partial class Form1 : Form
{
string ln, cpu, ram, main, gpu, hdd, opd, vc, a;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'dataSet12.Table_2' table. You can move, or remove it, as needed.
this.table_2TableAdapter.Fill(this.dataSet12.Table _2);
// TODO: This line of code loads data into the 'dataSet1.Table_2' table. You can move, or remove it, as needed.
this.table_2TableAdapter.Fill(this.dataSet1.Table_ 2);
}
private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog op = new OpenFileDialog();
op.Filter = "Text Files (.txt)|*.txt";
op.FilterIndex = 1;
if (op.ShowDialog() == DialogResult.OK)
{
txtpath.Text = op.FileName;
System.IO.StreamReader rd = new System.IO.StreamReader(op.FileName);
// read a line of text
rd.ReadLine();
rd.ReadLine();
ln = rd.ReadLine();
cpu = rd.ReadLine();
cpu = rd.ReadLine();
textBox5.Text = ln.Substring(3, ln.Length - 3);
textBox3.Text = cpu.Substring(3, cpu.Length - 3);
ram = rd.ReadLine();
ram = rd.ReadLine();
ram = rd.ReadLine();
textBox11.Text = ram.Substring(3, ram.Length - 3);
main = rd.ReadLine();
main = rd.ReadLine();
textBox7.Text = main.Substring(3, main.Length - 3);
gpu = rd.ReadLine();
gpu = rd.ReadLine();
gpu = rd.ReadLine();
textBox6.Text = gpu.Substring(3, gpu.Length - 3);
hdd = rd.ReadLine();
hdd = rd.ReadLine();
hdd = rd.ReadLine();
textBox4.Text = hdd.Substring(3, hdd.Length - 4);
opd = rd.ReadLine();
opd = rd.ReadLine();
textBox8.Text = opd.Substring(3, opd.Length - 3);
vc = rd.ReadLine();
vc = rd.ReadLine();
textBox9.Text = vc.Substring(3, vc.Length - 3);
// close the stream
rd.Close();
}
}
private void button1_Click(object sender, EventArgs e)
{
DataSet1TableAdapters.Table_2TableAdapter ta = new DataSet1TableAdapters.Table_2TableAdapter();
DataSet1 ds;
ta.InsertQuery(textBox5.Text.ToString(), textBox2.Text.ToString(), textBox6.Text.ToString(), textBox8.Text.ToString(), textBox10.Text.ToString(), textBox11.Text.ToString(), textBox7.Text.ToString(), textBox3.Text.ToString(), textBox9.Text.ToString(), textBox1.Text.ToString(), textBox4.Text.ToString(), textBox12.Text.ToString(), textBox14.Text.ToString(), textBox13.Text.ToString(), textBox15.Text.ToString());
}
}
}
تصویر نحوه انتقال اطلاعات:
140581
فایل دیگر و انتقال اشتباه اطلاعات (سه تکست باکس آخر):
140582
نمونه فایل نوت پد:
http://s7.picofile.com/file/8253245268/ga22011842_31645.rar.html
تصویر:
140583
تصویر طراحی برنامه:
140584
نکته: در هر نوت پد، فقط اطلاعات قسمت Summary باید انتقال داده بشه اطللاعات پایین تر مهم نیست.
پیشاپیش ممنون.
من قراره یه برنامه بنویسم و به این شکل هست که یه سری فایل نوت پد (حدودا 300 عدد) وجود داره که هر کدوم حاوی اطلاعات سخت افزاری یک سیستم هست (که با استفاده از نرم افزار مخصوص دریافت اطلاعات سخت افزاری سیستم تهیه شدند)، جزئیات اطلاعات سخت افزاری این نوت پدها باید از طریق برنامه نوشته شده در #C وارد بانک اطلاعاتی که در SQL Server ایجاد شده، شود.
حقیقت این هست که من با #C اصلا آشنایی ندارم، برای کارآموزی فوق دیپلم با کلی دردسر و رفت و آمد در نهایت تونستم به یه شرکت دولتی برم، هدف این بود که یه چیزی یاد بگیریم اما الان نه تنها چیزی یاد نگرفتم بلکه از درس های دیگه هم افتادم و چیزی هم به پایان زمان کارآموزی نمونده و گفتند حتما باید برنامه رو تحویل بدم تا کارآموزی رو تایید کنند.
به هر ترتیب که بود حدودا فک کنم 80% برنامه رو نوشتم، اما وقتی فکر می کردم برنامه کامل شده متوجه مشکل جدیدی شدم.
من فکر می کردم تمامی فایل های نوت پد یکسان هستند اما متوجه شدم که اینطور نیست، برخی سیستم های مثلا دو هارد، دو پردازنده، دو گرافیک و ... دارند و به همین خاطر نوشتن کد بر اساس ترتیب یک فایل نوت پد، باعث شده که اطلاعات خیلی از فایل ها به درستی وارد تکست باکس برنامه نشه، مثلا یک فایل مشخثات پردازنده میره بجای مشخصات گرافیک و در کل قاطی میکنه.
به من گفتند که باید یک شرط نوشته بشه که هر جا مثلا عنوان "CPU" قرار گرفت، محتویات خطوط بعدیش وارد تکست باکس بشه تا جایی که مثلا به "GPU" که پایین همون "CPU" هست رسید، انتقال متوقف بشه، به این شکل برای تمام نوت پدها، انتقال به درستی انجام میشه چون همه عنوان های "CPU" ، "GPU" ، "HDD" و ... یکسان هست.
ممنون میشم کمکم کنید و این شرط رو اگر ممکنه اضافه کنید، کلافه شدم تو این چند روز انقدر سرچ کردم و چیزی پیدا نشد.
کدهای برنامه ای که نوشتم به این شکل هست:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Damghan
{
public partial class Form1 : Form
{
string ln, cpu, ram, main, gpu, hdd, opd, vc, a;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'dataSet12.Table_2' table. You can move, or remove it, as needed.
this.table_2TableAdapter.Fill(this.dataSet12.Table _2);
// TODO: This line of code loads data into the 'dataSet1.Table_2' table. You can move, or remove it, as needed.
this.table_2TableAdapter.Fill(this.dataSet1.Table_ 2);
}
private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog op = new OpenFileDialog();
op.Filter = "Text Files (.txt)|*.txt";
op.FilterIndex = 1;
if (op.ShowDialog() == DialogResult.OK)
{
txtpath.Text = op.FileName;
System.IO.StreamReader rd = new System.IO.StreamReader(op.FileName);
// read a line of text
rd.ReadLine();
rd.ReadLine();
ln = rd.ReadLine();
cpu = rd.ReadLine();
cpu = rd.ReadLine();
textBox5.Text = ln.Substring(3, ln.Length - 3);
textBox3.Text = cpu.Substring(3, cpu.Length - 3);
ram = rd.ReadLine();
ram = rd.ReadLine();
ram = rd.ReadLine();
textBox11.Text = ram.Substring(3, ram.Length - 3);
main = rd.ReadLine();
main = rd.ReadLine();
textBox7.Text = main.Substring(3, main.Length - 3);
gpu = rd.ReadLine();
gpu = rd.ReadLine();
gpu = rd.ReadLine();
textBox6.Text = gpu.Substring(3, gpu.Length - 3);
hdd = rd.ReadLine();
hdd = rd.ReadLine();
hdd = rd.ReadLine();
textBox4.Text = hdd.Substring(3, hdd.Length - 4);
opd = rd.ReadLine();
opd = rd.ReadLine();
textBox8.Text = opd.Substring(3, opd.Length - 3);
vc = rd.ReadLine();
vc = rd.ReadLine();
textBox9.Text = vc.Substring(3, vc.Length - 3);
// close the stream
rd.Close();
}
}
private void button1_Click(object sender, EventArgs e)
{
DataSet1TableAdapters.Table_2TableAdapter ta = new DataSet1TableAdapters.Table_2TableAdapter();
DataSet1 ds;
ta.InsertQuery(textBox5.Text.ToString(), textBox2.Text.ToString(), textBox6.Text.ToString(), textBox8.Text.ToString(), textBox10.Text.ToString(), textBox11.Text.ToString(), textBox7.Text.ToString(), textBox3.Text.ToString(), textBox9.Text.ToString(), textBox1.Text.ToString(), textBox4.Text.ToString(), textBox12.Text.ToString(), textBox14.Text.ToString(), textBox13.Text.ToString(), textBox15.Text.ToString());
}
}
}
تصویر نحوه انتقال اطلاعات:
140581
فایل دیگر و انتقال اشتباه اطلاعات (سه تکست باکس آخر):
140582
نمونه فایل نوت پد:
http://s7.picofile.com/file/8253245268/ga22011842_31645.rar.html
تصویر:
140583
تصویر طراحی برنامه:
140584
نکته: در هر نوت پد، فقط اطلاعات قسمت Summary باید انتقال داده بشه اطللاعات پایین تر مهم نیست.
پیشاپیش ممنون.