Soldato
- Joined
- 27 Mar 2003
- Posts
- 2,710
I have just created my first app and just wondering how my code could be improved.
Its a simpel app for when computer equipment is out on loan, when it is due to return, if it is overdue and add in new equipment.
here are some images of the screens.
here is the code
so just wondering how I could optimise the code or if it is fine as it is.
It probably is fairly simple compared to others but I am still learning C# and it really is helping me to come to grips with the language.
With every project I seem to be learning something new and this is helping me a lot with my career in programming.
So guys please don't hold back if there is a better way of doing what I have done I would like to know.
If you require the project files they can be downloaded from here:
http://jellybeans.bulldoghome.com/ps/infoboxs/docstore/docedit.aspx?doc=15367&what=download
Its a simpel app for when computer equipment is out on loan, when it is due to return, if it is overdue and add in new equipment.
here are some images of the screens.
here is the code
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace Loan_Kit
{
public partial class Form1 : Form
{
string filename = "eventitems.txt";
string checkeditem;
public Form1()
{
InitializeComponent();
LoadAllCombos(filename);
}
private void LoadAllCombos(string filename)
{
comboBox1.Items.Clear();
string currentline;
string itemname;
int pos;
StreamWriter writer = new StreamWriter(filename, true);
writer.Close();
StreamReader reader = new StreamReader(filename);
while (reader.EndOfStream != true)
{
currentline = reader.ReadLine();
pos = currentline.IndexOf(',');
itemname = currentline.Substring(0, pos);
comboBox1.Items.Add(itemname);
}
reader.Close();
}
private void button1_Click(object sender, EventArgs e)
{
string access;
StreamWriter textwriter = new StreamWriter(filename, true);
access = textBox6.Text.Replace( "\r\n", ",");
//access = textBox6.Text.Replace("\n", ",");
textwriter.WriteLine(textBox2.Text.ToString() + "," + textBox3.Text.ToString() + "," +
textBox4.Text.ToString() + "," + textBox5.Text.ToString() + "," + access + ";inn");
textwriter.Close();
LoadAllCombos(filename);
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
int index;
int loop = 0;
int pos1,pos2,pos3;
string currentline = "";
string part;
index = comboBox1.SelectedIndex;
StreamReader reader = new StreamReader(filename);
while (loop <= index)
{
currentline = reader.ReadLine();
loop++;
}
pos1 = currentline.IndexOf(",");
pos2 = currentline.IndexOf(",", pos1 + 1);
part = currentline.Substring(pos1 + 1, pos2 - pos1 - 1);
label8.Text = "Make: " + part;
pos1 = pos2;
pos2 = currentline.IndexOf(",", pos1 + 1);
part = currentline.Substring(pos1 + 1, pos2 - pos1 - 1);
label9.Text = "Model: " + part;
pos1 = pos2;
pos2 = currentline.IndexOf(",", pos1 + 1);
part = currentline.Substring(pos1 + 1, pos2 - pos1 - 1);
label10.Text = "Asset Tag: " + part;
pos3 = currentline.IndexOf(';');
if (pos3 > 0)
{
part = currentline.Substring(pos2 + 1, pos3 - pos2 - 1);
}
else
{
part = currentline.Substring(pos2 + 1);
}
part = part.Replace(",", "\r\n");
textBox1.Text = part.ToString();
reader.Close();
}
private void tabPage3_Enter(object sender, EventArgs e)
{
checkeditem = null;
listBox2.Items.Clear();
string readline;
StreamReader reader = new StreamReader(filename);
while (reader.EndOfStream != true)
{
readline = reader.ReadLine();
if (readline.IndexOf(";inn") > 0)
{
listBox2.Items.Add(readline.Substring(0,readline.IndexOf(',')));
}
}
reader.Close();
}
private void button2_Click(object sender, EventArgs e)
{
if (checkeditem == null)
{
MessageBox.Show("Please select an item to check out", "No Item Selected", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
string[] items;
items = new string[100];
int counter = 0;
int counter2 = 0;
string line;
StreamReader reader = new StreamReader(filename);
while (reader.EndOfStream != true)
{
items[counter] = reader.ReadLine();
counter++;
}
reader.Close();
StreamWriter writer = new StreamWriter(filename);
while (counter2 < counter)
{
if (items[counter2].IndexOf(checkeditem.ToString()) > -1)
{
line = items[counter2] = items[counter2].Substring(0, items[counter2].Length - 4) + ";out;" + monthCalendar1.SelectionStart.ToString() + ";" + monthCalendar2.SelectionStart.ToString();
writer.WriteLine(line.ToString());
}
else
{
writer.WriteLine(items[counter2].ToString());
}
counter2++;
}
writer.Close();
tabPage3_Enter(sender, e);
checkeditem = null;
}
}
private void tabPage4_Enter(object sender, EventArgs e)
{
checkeditem = null;
listBox1.Items.Clear();
string readline;
StreamReader reader = new StreamReader(filename);
while (reader.EndOfStream != true)
{
readline = reader.ReadLine();
if (readline.IndexOf(";out") > 0)
{
listBox1.Items.Add(readline.Substring(0, readline.IndexOf(',')));
}
}
reader.Close();
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
checkeditem = listBox1.Text.ToString();
string currentline, part;
int pos;
StreamReader reader = new StreamReader(filename);
while (reader.EndOfStream != true)
{
currentline = reader.ReadLine();
if (currentline.IndexOf(checkeditem) > -1)
{
pos = currentline.LastIndexOf(";");
part = currentline.Substring(pos);
label22.Text = "Check in Date: " + part.Substring(1, 10);
currentline = currentline.Substring(0, currentline.Length - (currentline.Length - pos));
pos = currentline.LastIndexOf(";");
part = currentline.Substring(pos);
label21.Text = "Checked Out Date: " + part.Substring(1, 10);
}
}
reader.Close();
}
private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
{
checkeditem = listBox2.Text.ToString();
}
private void button3_Click(object sender, EventArgs e)
{
if (checkeditem == null)
{
MessageBox.Show("Please Select an Item to check in", "No Item Selected", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
string[] items;
items = new string[100];
int counter = 0;
int counter2 = 0;
string line;
StreamReader reader = new StreamReader(filename);
while (reader.EndOfStream != true)
{
items[counter] = reader.ReadLine();
counter++;
}
reader.Close();
StreamWriter writer = new StreamWriter(filename);
while (counter2 < counter)
{
if (items[counter2].IndexOf(checkeditem.ToString()) > -1)
{
line = items[counter2] = items[counter2].Substring(0, items[counter2].IndexOf(";out") - 1) + ";inn";
writer.WriteLine(line.ToString());
}
else
{
writer.WriteLine(items[counter2].ToString());
}
counter2++;
}
writer.Close();
tabPage4_Enter(sender, e);
checkeditem = null;
}
}
private void Form1_Load(object sender, EventArgs e)
{
StreamReader reader = new StreamReader(filename);
string[,] eventitems;
eventitems = new string[100, 2];
int counter = 0;
int tempcounter = 0;
int tempcounter2 = 0;
string itemsoverdue;
while (reader.EndOfStream != true)
{
eventitems[counter, 0] = reader.ReadLine();
eventitems[counter, 1] = Convert.ToString(eventitems[counter, 0].IndexOf(";out"));
counter++;
}
reader.Close();
label1.Text = "Number of Items Listed: " + Convert.ToString(counter - 1);
for (int a = 0; a < counter; a++)
{
if (Convert.ToInt32( eventitems[a, 1]) > 0)
{
tempcounter++;
itemsoverdue = eventitems[a, 0].Substring(eventitems[a, 0].LastIndexOf(";") + 1, 10);
if (Convert.ToDateTime(itemsoverdue) < DateTime.Today)
{
tempcounter2 ++;
}
}
}
label2.Text = "Number of Items In: " + Convert.ToString(counter - tempcounter);
label3.Text = "Number of Items Out: " + Convert.ToString(tempcounter);
label6.Text = "Number of Items Over Due: " + Convert.ToString(tempcounter2) ;
}
private void tabControl1_Selected(object sender, TabControlEventArgs e)
{
Form1_Load(sender, e);
}
}
}
so just wondering how I could optimise the code or if it is fine as it is.
It probably is fairly simple compared to others but I am still learning C# and it really is helping me to come to grips with the language.
With every project I seem to be learning something new and this is helping me a lot with my career in programming.
So guys please don't hold back if there is a better way of doing what I have done I would like to know.
If you require the project files they can be downloaded from here:
http://jellybeans.bulldoghome.com/ps/infoboxs/docstore/docedit.aspx?doc=15367&what=download
Last edited: