Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Microsoft .NET

  Все выпуски  

RusFAQ.ru: .NET


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

Чемпионы рейтинга экспертов в этой рассылке

Micren
Статус: Практикант
Рейтинг: 89
∙ повысить рейтинг >>
Бородин Константин Игоревич
Статус: 8-й класс
Рейтинг: 44
∙ повысить рейтинг >>
Evgenijm
Статус: 3-й класс
Рейтинг: 40
∙ повысить рейтинг >>

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / .NET

Выпуск № 119
от 28.03.2009, 17:35

Администратор:Grigory
В рассылке:Подписчиков: 246, Экспертов: 10
В номере:Вопросов: 1, Ответов: 1

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 163056: Здравствуйте уважаемые эксперты! У меня вопрос по C#(Visual studio 2005/2008). Есть программа, в которой есть dataGridView, данные вводит пользователь: Фрагмент кода: количество = (int)kol.Value; <div style="margin:15px; margin-top:10px"><di...


Вопрос № 163.056
Здравствуйте уважаемые эксперты! У меня вопрос по C#(Visual studio 2005/2008). Есть программа, в которой есть dataGridView, данные вводит пользователь:
Фрагмент кода:
количество = (int)kol.Value;
Код:

public string фам1; //Фамилия клиента!
public int количество; //Количество!
public double сумма1; //Сумма!
public double тариф = 20.0; //Тариф!
сумма1 = количество * тариф;
фам1 = fam1.Text;

GazBD.Rows.Insert(0, 1);
GazBD[0, 0].Value = фам1;
GazBD[1, 0].Value = количество;
GazBD[2, 0].Value = date1.Text; //Дата из DateTimePicker
GazBD[3, 0].Value = сумма1;


Мне нужно из GazBD(он же dataGridView1) сохранить данные в текстовый файл, открыть текстовый файл и записать из текстового файла в таблицу GazBD и вывести на печать данные той же таблицы из программы.
Благодарю всех Экспертов RusFAQ.Ru. Спасибо заранее...

Приложение:

Отправлен: 23.03.2009, 17:22
Вопрос задал: Сипан (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: DrakoN
Здравствуйте, Сипан!
А ) вы используете в коде кирилицу. Не делайте так.
теперь по сути вопроса. Существует много способов решить вашу задачу А хмл - файл, Б - сsv - файл Г txt файл. Все их можно назвать текстовыми. Разница лишь в том что с последним больше всего мороки.


по порядку СSV

Dim builder as new StringBuilder()
for each currentRow as DataGridViewRow in Me.theDataGridView.Rows
for each currentCell as DataGridViewCell in currentRow.Cells
builder.Append(currentCell.Value)
builder.Append(",")
next
builder.Append(Environment.NewLine)
next
builder.Remove(builder.Length - 1, 1) 'remove the last comma
using writer as new StreamWriter("myfile.csv")
writer.Write(builder.ToString())
writer.Close()
end using


Using parser As New Microsoft.VisualBasic.FileIO.TextFieldParser("c: empmyFile.csv")
parser.SetDelimiters(",")
Whi le Not parser.EndOfData
Me.DataGridView1.Rows.Add(parser.ReadFields())
End While
End Using



теперь ХМЛ

XmlDataDocument xmlDatadoc = new XmlDataDocument();
xmlDatadoc.DataSet.ReadXml("C:\books.xml");
DataSet ds = new DataSet("Books DataSet");
ds = xmlDatadoc.DataSet;
dataGridView1.DataSource = ds.DefaultViewManager;
dataGridView1.DataMember = "Book";

теперь засейвим

DataTable dt = ((DataView)this.dataGridView1.DataSource).Table;
dt.WriteXml(@"C: est ext.xml");

Я думаю что разобраться с FileDialog это не проблема. Пример открытия файла
OpenFileDialog fdlg = new OpenFileDialog();
fdlg.Title = "C# Corner Open File Dialog";
fdlg.InitialDirectory = @"C: ";
fdlg.Filter =
"Text files (*.txt | .txt | All files (*.*) | *.*";
fdlg.FilterI ndex = 2;
fdlg.RestoreDirectory = true;
if (fdlg.ShowDialog() == DialogResult.OK)
{
textBox1.Text = fdlg.FileName;
}

Теперь с печатью. Тут немного сложнее

using System.IO;
using System.Drawing.Printing;



\ момент истины добавить в обработчик кнопки печать.
string filename=textBox1.Text.ToString();
//Create a StreamReader object
reader = new StreamReader (filename);
//Create a Verdana font with size 10
verdana10Font = new Font ("Verdana", 10);
//Create a PrintDocument object
PrintDocument pd = new PrintDocument();
//Add PrintPage event handler
pd.PrintPage += new PrintPageEventHandler(this.PrintTextFileHandler);
//Call Print Method
pd.Print();
//Close the reader
if (reader != null)
reader.Close();




\просто добавь этот метод
private void PrintTextFileHandler (object sender, PrintPageEventArgs ppeArgs)
{
//Get the Graphics object
Graphics g = ppeArg s.Graphics;
float linesPerPage = 0;
float yPos = 0;
int count = 0;
//Read margins from PrintPageEventArgs
float leftMargin = ppeArgs.MarginBounds.Left;
float topMargin = ppeArgs.MarginBounds.Top;
string line = null;
//Calculate the lines per page on the basis of the height of the page and the height of the font
linesPerPage = ppeArgs.MarginBounds.Height/
verdana10Font.GetHeight (g);
//Now read lines one by one, using StreamReader
while (count<linesPerPage &&
(( line = reader.ReadLine ()) != null))
{
//Calculate the starting position
yPos = topMargin + (count *
verdana10Font.GetHeight (g));
//Draw text
g.DrawString (line, verdana10Font, Brushes.Black,
leftMargin, yPos, new StringFormat());
//Move to next line
count++;
}
//If PrintPageEventArgs has more pages to print
if (line != null)
{
ppeArgs.HasMorePages = true;
}
else
{
ppeArgs.HasMorePages = false;
}
}



Вни мание это примеры их нужно подстроить.
По всем вопросам You are Welcome.

пс - что касаеться работы с чистым тхт файлом, лучше забудь. Морока еще та. CSV это тот же TXT с одной разницей данные полей записаны через запятую. Экспорт Импорт чистого тексового файла довольно мучителен.
Обясню логику если понадобиться суть сводиться к той же идее что и в СSV файле формирование строки но без запятых. Идея в том что каждое поле имеет фиксированую длинну. И если у тебя дляинна поля короче то нужно дополнять остаток пробелами тогда у тебя как будто получаться колонки одна под одной. Чтение такой же самое читаешь строку потом режешь на SubString и зачитываешь их таблицу попутно тримая прпобелы.

Но советую с этим не связываться СSV и Xml вполне удовлетворят всем условиям задачи.


---------
От Винта!
Ответ отправил: DrakoN (статус: Практикант)
Ответ отправлен: 23.03.2009, 18:02

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 245880 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5
    Комментарий оценки:
    Спасибо огромное за ответ!


    Вы имеете возможность оценить этот выпуск рассылки.
    Нам очень важно Ваше мнение!
    Оценить этот выпуск рассылки >>

    Отправить вопрос экспертам этой рассылки

    Приложение (если необходимо):

    * Код программы, выдержки из закона и т.п. дополнение к вопросу.
    Эта информация будет отображена в аналогичном окне как есть.

    Обратите внимание!
    Вопрос будет отправлен всем экспертам данной рассылки!

    Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
    экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


    Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
    Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.13 от 01.12.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное