2014-09-07 21 views
0

Я пытаюсь сделать эту программу, которая имеет 5 ящиков ввода, которые нужно сохранить, когда-либо были помещены в коробки, когда вы нажимаете кнопку и сохраняете ее. txt-файл.Я получаю сообщение об ошибке при попытке запустить мой код

protected void OnDeleteEvent (object sender, DeleteEventArgs a) 
{ 
    Application.Quit(); 
    a.RetVal = true; 
} 

protected void button1_Click(object sender, EventArgs e) { 
    string tb1Text = tb1.Text; 
    string tb2Text = tb2.Text; 
    string tb3Text = tb3.Text; 
    string tb4Text = tb4.Text; 
    string tb5Text = tb5.Text; 

    using(StreamWriter sw = new StreamWriter("/Home/Desktop/Test.txt")) { 
     sw.WriteLine(tb1Text + Environment.NewLine + tb2Text + Environment.NewLine + tb3Text + Environment.NewLine + tb4Text + Environment.NewLine + tb5Text); 
} 

Что я здесь делаю неправильно? Я получаю сообщение об ошибке «Неожиданный символ« конец файла »на секунду до последней строки кода.

+0

Посмотрите на свои фигурные скобки. – SLaks

ответ

0

Я предлагаю вам использовать согласованный стиль в коде, иногда вы кладете скобу на следующую строку, иногда вы помещаете ее в одну строку. Выберите один стиль (первый из них более распространен) и придерживайтесь его.

protected void OnDeleteEvent (object sender, DeleteEventArgs a) 
{ 

protected void button1_Click(object sender, EventArgs e) { 

Когда блок кода является Oneliner, как последней строке кода, вы можете опустить скобки:

using(StreamWriter sw = new StreamWriter("/Home/Desktop/Test.txt")) 
    sw.WriteLine(tb1Text + Environment.NewLine + tb2Text + Environment.NewLine + tb3Text + Environment.NewLine + tb4Text + Environment.NewLine + tb5Text); 

эквивалентно:

using(StreamWriter sw = new StreamWriter("/Home/Desktop/Test.txt")) 
{ 
    sw.WriteLine(tb1Text + Environment.NewLine + tb2Text + Environment.NewLine + tb3Text + Environment.NewLine + tb4Text + Environment.NewLine + tb5Text); 
} 

Ваша проблема что у вас была только одна из этих фигурных скобок в вашем коде.

1

У вас есть дополнительная фигурная скобка на линии StreamWriter. Либо сделать

using (StreamWriter sw = new StreamWriter("/Home/Desktop/Test.txt")) 
    sw.WriteLine(..); 

или

using (StreamWriter sw = new StreamWriter("/Home/Desktop/Test.txt")) 
{ 
    sw.WriteLine(..); 
} 

Btw. вы можете захотеть просмотреть метод String.Join(), и вы можете избавиться от кода «+ NewLine». String.Join(Environment.NewLine, tb1.Text,tb2.Text etc....)

0
using(StreamWriter sw = new StreamWriter("/Home/Desktop/Test.txt")) { 

У вас возникли проблемы с этой строкой. Изменение кода в

using(StreamWriter sw = new StreamWriter("c:\\username\\Home\\Desktop\\Test.txt")) { 

Ее все основам, путь, который показывает окна отличается от пути, указанного на языке. Программа считает «/» простым символом, который, в свою очередь, рассматривается как одно имя файла. Между тем «\» является особым символом, и он может четко различать путь; поэтому он должен сделать немного другое.