Reputation: 11
I'm having a small issue trying to figure out how to set a string variable equal to certain lines of a .txt file. What i'm trying to do is set ContactInformatiom.ContactName
and all of ContactInformation
's stuff equal to different lines of the .txt file that I saved the definitions to but I can't seem to figure out how to do that. I've tried all kinds of things and none of them seem to work, i've looked all over this website and others and haven't come across someone with the same problem as myself, I'm not sure if it's the way i'm wording it or what.
I'm using the following code:
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;
using System.IO;
namespace Contact_List
{
public partial class Form1 : Form
{
string contactpath = @"CurrentContacts.txt";
string contactpath2 = @"" + ContactInformation.ContactName + ".txt";
public Form1()
{
if(!File.Exists(contactpath))
{
File.Create(contactpath, 1024).Dispose();
}
InitializeComponent();
}
private void AddContactButton_Click(object sender, EventArgs e)
{
NewContactTextBoxName.Visible = true;
NewContactTextBoxCell.Visible = true;
NewContactName.Visible = true;
NewContactPhoneNumberOther.Visible = true;
NewContactSaveButton.Visible = true;
NewContactSaveText.Visible = true;
textBox6.Visible = true;
textBox5.Visible = true;
textBox4.Visible = true;
}
private void NewContactSaveButton_Click_1(object sender, EventArgs e)
{
if (NewContactTextBoxName.Text == "")
{
MessageBox.Show("Please enter a Contact Name");
}
else
{
ContactInformation.ContactName = NewContactTextBoxName.Text;
string contactpath2 = @"" + ContactInformation.ContactName + ".txt";
string Readfile = File.ReadAllText(contactpath);
if (Readfile.Contains(NewContactTextBoxName.Text))
{
MessageBox.Show("This contact already exsists. Please rename the contact you're trying to create or delete the exsisting contact");
}
else
{
comboBox1.Items.Add(ContactInformation.ContactName);
File.Create(contactpath2).Dispose();
using (StreamWriter Writeline = new StreamWriter(contactpath, true))
{
Writeline.WriteLine(ContactInformation.ContactName);
Writeline.Dispose();
}
using (StreamWriter Writeline2 = new StreamWriter(contactpath2, true))
{
Writeline2.WriteLine(NewContactTextBoxName.Text);
Writeline2.WriteLine(NewContactTextBoxCell.Text);
Writeline2.WriteLine(NewContactPhoneNumberOther.Text);
Writeline2.WriteLine(textBox6.Text);
Writeline2.WriteLine(textBox5.Text);
Writeline2.WriteLine(textBox4.Text);
Writeline2.Dispose();
}
NewContactName.Visible = false;
NewContactPhoneNumberOther.Visible = false;
NewContactSaveButton.Visible = false;
NewContactSaveText.Visible = false;
textBox6.Visible = false;
textBox5.Visible = false;
NewContactTextBoxName.Visible = false;
NewContactTextBoxCell.Visible = false;
textBox4.Visible = false;
}
}
}
private void comboBox1_SelectionChangeCommitted(object sender, EventArgs e)
{
string currentselection = @"" + comboBox1.SelectedItem.ToString() + ".txt";
File.ReadAllLines(currentselection);
//set Contactinformation.ContactName = to line one of the .txt file
//set ContactInformation.ContactCell = to line two of the .txt file
//etc.
}
}
}
and the following class:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Contact_List
{
public class ContactInformation
{
public static string ContactName;
public static string ContactCellNumber;
public static string ContactOtherNumber;
public static string ContactRelationship;
public static string ContactEmail;
public static string ContactNote;
}
}
If you need any other information or a clarification of what I'm asking, please ask and sorry in advance if I'm not being clear enough on what i'm trying to do.
Upvotes: 0
Views: 305
Reputation: 82913
Try:
string[] contactInfo = File.ReadAllLines(currentselection);
Contactinformation.ContactName = contactInfo[0];
Contactinformation.ContactCell = contactInfo[1];
.
.
.
.
.
Make sure you check for array length before accessing the element
Upvotes: 1