Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Открыть новую тему     Написать ответ в эту тему

bbEye



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Поделитесь, плиз, опытом, кто как играет звуки в приложении WinForms ...
Стандартные средства имеют свои недостатки:
- SoundPlayer (играет только WAV PCM, не может воспроизводить несколько звуков одновременно)
- SystemSound (ограничен только узким набором системных звуков)
 
Задача такая: повесить звуки на события программы, чтобы они могли воспроизводиться параллельно (н-р: несколько событий случилось за короткий промежуток времени), при этом минимально использовать native-код (а лучше - совсем не использовать )

Всего записей: 128 | Зарегистр. 30-04-2003 | Отправлено: 12:18 25-03-2009
avkorets



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Все задолбался вконец...
Ребят есть мысли у кого по отправке почты?
банально создал форму с одной кнопкой "отправить"...
И все равно отправляет только после закрытия формы...(я описывал выше проблему)

Код:
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net.Mail;
 
namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            string sSubj = "тест";
            string sTo = "kva@gggg.ru";
            string sFrom = "ggg@gggg.ru";
            string sServer = "gggggg";
            string sBody = @"тест";
            MailMessage mmMailMessage = new MailMessage();
            SmtpClient smtpC = new SmtpClient(sServer, 25);
            mmMailMessage.SubjectEncoding = System.Text.Encoding.UTF8;
            mmMailMessage.BodyEncoding = System.Text.Encoding.UTF8;
            smtpC.UseDefaultCredentials = false;
            smtpC.Send(sFrom, sTo, sSubj, sBody);
            mmMailMessage.Dispose();
        }
    }
}
 

пробовал уже асинхронно отправлять...создавал поток и убивал...емае да что ж такое..
и самое главное такое на всех машинах...Если что отправляю через местный смтп сервер.

Всего записей: 81 | Зарегистр. 09-09-2008 | Отправлено: 12:30 25-03-2009
bbEye



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
avkorets
навскидку - зачем создавать MailMessage, если он не используется?
 
Попробовал этот код - вывалило ошибку в методе SmtpClient.Send
 
Написал свой, работает:

Код:
 
        private void button1_Click(object sender, EventArgs e)
        {
            SmtpClient sc = new SmtpClient("адрес smtp-сервера");
            sc.UseDefaultCredentials = false;
            // мой локальный smtp-сервер требует аутентификации
            sc.Credentials = new NetworkCredential("username", "password");
 
            MailAddress from = new MailAddress("from@mail.ru", "Иван Иванов", System.Text.Encoding.UTF8);
            MailAddress to = new MailAddress("to@mail.ru", "Петр Петров", Encoding.UTF8);
            using (MailMessage message = new MailMessage(from, to))
            {
                message.Body = "Тест. Никакого смысла не несет.";
                message.BodyEncoding = System.Text.Encoding.UTF8;
                message.Subject = "Тест. Просто тест.";
                message.SubjectEncoding = System.Text.Encoding.UTF8;
 
                sc.Send(message);
            }
        }
 

 
Если сообщение реально уходит, только когда приложение закрывается, то это похоже на косяк SMTP-сервера.
Посмотри внутрь SmtpClient'а - он запрашивает физическое соединение, отправляет письмо, а затем возвращает соединение в пул. Может случиться, что smtp-сервер не отправит письма до тех пор, пока физическое соединение от клиента не закроется, а оно - висит в пуле.

Всего записей: 128 | Зарегистр. 30-04-2003 | Отправлено: 13:14 25-03-2009 | Исправлено: bbEye, 13:38 25-03-2009
avkorets



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Если сообщение реально уходит, только когда приложение закрывается, то это похоже на косяк SMTP-сервера.  
Посмотри внутрь SmtpClient'а - он запрашивает физическое соединение, отправляет письмо, а затем возвращает соединение в пул. Может случиться, что smtp-сервер не отправит письма до тех пор, пока физическое соединение от клиента не закроется, а оно - висит в пуле.

Скорее так он и есть...
А как побороть этот косяк?
Нужно править что-то на Smtp сервере или можно что-то в коде сделать?
в любом случае спасибо за ответ...
вощем достал логи с смтп сервака..
нажимаю кнопку отправить

Код:
 
2009-03-25 11:10:25 10.4.11.228 ws893 SMTPSVC1 SRVEXPROXY01 10.1.35.61 0 EHLO - +ws893 250 0 309 10 0 SMTP - - - -
2009-03-25 11:10:25 10.4.11.228 ws893 SMTPSVC1 SRVEXPROXY01 10.1.35.61 0 MAIL - +FROM:<so@gg.ru> 250 0 39 26 0 SMTP - - - -
2009-03-25 11:10:25 10.4.11.228 ws893 SMTPSVC1 SRVEXPROXY01 10.1.35.61 0 RCPT - +TO:<s@gg.ru> 250 0 31 28 0 SMTP - - - -
 

все ждет data
закрываю приложение
Приложение ЗАНОВО отправляет!

Код:
 
2009-03-25 11:12:06 10.4.11.228 ws893 SMTPSVC1 SRVEXPROXY01 10.1.35.61 0 MAIL - +FROM:<so@gg.ru> 250 0 39 26 0 SMTP - - - -
2009-03-25 11:12:06 10.4.11.228 ws893 SMTPSVC1 SRVEXPROXY01 10.1.35.61 0 RCPT - +TO:<s@gg.ru> 250 0 31 28 0 SMTP - - - -
2009-03-25 11:12:06 10.4.11.228 ws893 SMTPSVC1 SRVEXPROXY01 10.1.35.61 0 DATA - <SRVEXPROXY01FRaqbC80000000b@srvexproxy01.ru> 250 0 131 234 250 SMTP - - - -
2009-03-25 11:12:06 10.4.11.228 ws893 SMTPSVC1 SRVEXPROXY01 10.1.35.61 0 QUIT - ws893 240 100422 67 4 0 SMTP - - - -
 

вощем на смтп серваке менять ничо низя...как тут реально решить проблему?

Всего записей: 81 | Зарегистр. 09-09-2008 | Отправлено: 13:55 25-03-2009 | Исправлено: avkorets, 14:45 25-03-2009
bbEye



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
все ждет data  
закрываю приложение  
Приложение ЗАНОВО отправляет!  

Шайтанство!
Сервер же возвращает статус 250, непонятно, почему следующая команда не посылается...
В-общем, рекомендую попробовать какой-нибудь другой класс для отправки писем.
Или, если надо сделать срочно, и чтоб работало, написать консольное приложение, которое будет отправлять пачку писем и завершать работу (чтобы письма отправились), плюс батничек, который это приложение будет в цикле рестартовать

Всего записей: 128 | Зарегистр. 30-04-2003 | Отправлено: 15:10 25-03-2009
avkorets



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bbEye
Спасибо!

Цитата:
другой класс для отправки писем

Посоветуй..Попробую.

Цитата:
консольное приложение, которое будет отправлять пачку писем

не подходит нужно в реальном времени..у меня на появлении файла срабатывает и в момент появления нужно посылать уведомление типа я появился =)
 
Кстати вполне вероятно что хост...Оказывается наши ящики были перемещены на новый хост,попытаюсь выяснить подробности...
Раньше отправка проходила норм как и должно быть.
 

Всего записей: 81 | Зарегистр. 09-09-2008 | Отправлено: 16:38 25-03-2009
bbEye



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
avkorets
Навскидку не могу посоветовать. Их много всяких, надо пробовать...
 
У меня прога, которая отправляет почту, написана еще на дельфи. Да и то, чтобы не зависеть от глюков и тормозов разных smtp-серверов, я ставлю свой локальный сервер, с которым прога работает стопудово, а в нем настраиваю перенаправление почты уже на smtp-сервер провайдера.

Всего записей: 128 | Зарегистр. 30-04-2003 | Отправлено: 17:15 25-03-2009
AlexandrVS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BlackVetal Сервер мне не к чему таскать, у меня базы на access-e.
 
BaluBig Ну ты как всегда прав , я именно таким путем и пошел, единственное данные пока гружу в датасет а потом из него заполняю все дочерние узлы при обращении, его удобно использовать для быстрой фильтрации rowfilter, поиск работает быстро, но при первой загрузке приходится ждать, у меня сейчас в базе 200 000 записей в dataset грузятся 15 секунд потом 2сек в сам компонент и все летает, больше тормозов нет, но первая загрузка напрягает, можно конечно использовать datareader, но тогда фильтрацию придется делать самому, как лучше сделать в этом случае, чем можно быстро отфильтровывать значения IList?
 

Всего записей: 50 | Зарегистр. 04-05-2006 | Отправлено: 11:55 26-03-2009
avkorets



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bbEye
ну хоть за это спасибо=)
Нашел консольную утилиту которая норм отправляет из смд прикручу к коду программы =)
кстать а как скрыть окно смд при запуске сторонней утилиты из тела кода?
запускаю System.Diagnostics.Process.Start
Вот еще возник вопрос как вырезать кусок из файла?
Нахожу строку..Начиная с нее пишу в файл до момента пока не найду другую строку..
тобишь получается пишу в файл со строки которую нашел по совпадению до строки которую так же нашел но по другому совпадению =)
Чот не пойму как это сделать...

Всего записей: 81 | Зарегистр. 09-09-2008 | Отправлено: 15:26 26-03-2009
V0lt



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
avkorets

Цитата:
кстать а как скрыть окно смд при запуске сторонней утилиты из тела кода?

Что-то типа этого

Код:
using (Process myproc = new Process())
{
    myproc.StartInfo.FileName = path;
    myproc.StartInfo.Arguments = arguments;
 
    myproc.StartInfo.UseShellExecute = false;
    myproc.StartInfo.RedirectStandardInput = true;
    myproc.StartInfo.RedirectStandardOutput = true;
    myproc.StartInfo.RedirectStandardError = true;
    myproc.StartInfo.CreateNoWindow = true;
 
    myproc.Start();
 
    myproc.WaitForExit();
}

 

Цитата:
Вот еще возник вопрос как вырезать кусок из файла?

Основы файлового ввода-вывода. Читай. В самом низу есть ссылки на примеры.

Всего записей: 10483 | Зарегистр. 05-02-2003 | Отправлено: 18:10 26-03-2009
Skyer1

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!  
Помогите с решением задачи только начинаю программировать на шарпе дали задание
 
Создать класс студент (виртуальный) метод  
 создать случайным образом коллекцию из 20 студентов.  
Вывести на консоль распределение оценок и % списывавших.
 
Вроде должно выглядеть так:

Код:
 
using System;
using System.Collections.Generic;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 0;
            St1[] arr = new St1[10];
            arr[0] = new St1();            
            System.Console.WriteLine("{0} ocenka - {1} spisal - {2}%", arr[0].name, arr[0].Examen(ref a, arr[0].t), a);            
            System.Console.Read();
        }
    }
    class Student
    {
        public int Examen(ref int a, int t)
        {
            Random r = new Random();
            a = r.Next(t) + 1;
            return r.Next(5) + 1;
        }
    }
    class St1 : Student
    {
        public string name = "Student 1";
        public int t = 10;
    }
    class St2 : Student
    {
        public string name = "Student 2";
        public int t = 30;
    }
    class St3 : Student
    {
        public string name = "Student 3";
        public int t = 50;
    }
    class St4 : Student
    {
        public string name = "Student 4";
        public int t = 70;
    }
    class St5 : Student
    {
        public string name = "Student 5";
        public int t = 100;
    }
}
 
 
 

Всего записей: 38 | Зарегистр. 02-11-2008 | Отправлено: 00:35 27-03-2009
Omicron_Persey_8



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Skyer1
Ну давай будем разбираться:

Код:
 
namespace Student
{
    class Program
    {
        static void Main(string[] args)
        {
            // Делаем список студентов
            List<Student> students = new List<Student>();
            students.Add(new Student("Иванов", 5));
            students.Add(new Student("Петров", 4));
            students.Add(new Student("Сидоров", 3));
            students.Add(new Student("Егоров", 4));
            // и выводим его на консоль
            foreach (Student item in students)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();
        }
    }
 
    // Создаем класс студента
    public class Student
    {
        private string name;    // Его имя
        private int mark;       // Оценка
                                // что имелось в виду под количеством списывающих - хз
 
        public Student(string name,int mark)    // Делаем конструктор, который рожает нам студента из имени и оценки
        {
            this.name = name;
            this.mark = mark;
            // тут хорошо бы сделать проверки, чтобы оценки были от 1 до 5 и целые, а не 3,5 балла
        }
 
        public override string ToString()       // Пробуем сделать красиво: этот метод возвращает строковое описание объекта
        {
            return string.Format("{0} ocenka - {1}", this.name, this.mark);
        }
    }
}
 

А дальше пытайся сам

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 10:14 27-03-2009
Skyer1

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мой вариант рабочий если его запустить будет видно как должно выводить, у меня проблема только в одном случайно генерируется только один студент остальные просто не отображаются
Под процентом списавших имеется ввиду, сколько студентов списывало на экзамене(выводит случайно) Т.е нам не важно их имена в моей программе два массива один студенты другой под оценки и процент списывавших

Всего записей: 38 | Зарегистр. 02-11-2008 | Отправлено: 13:50 27-03-2009
avkorets



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ребят подскажите
 
dateTimePicker1.Value.Month.ToString()
dateTimePicker1.Value.Day.ToString()
 
как исправить чтоб месяц и день выдал в формате ММ и ДД а не М и Д???
ну соответсвенно и год =)

Всего записей: 81 | Зарегистр. 09-09-2008 | Отправлено: 14:00 27-03-2009
Omicron_Persey_8



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
у меня проблема только в одном случайно генерируется только один студент остальные просто не отображаются

А зачем делать пять классов для студентов???
У вас есть массив, состоящий из элементов типа st1 и заполнен только один элемент arr[0]. И на фига нужны классы St2, St3 ... ???
 
avkorets
dateTimePicker1.Day.ToString("D2"));
dateTimePicker1.Month.ToString("D2"));
где D - десятичный формат, 2 - количество позиций под число

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 14:23 27-03-2009 | Исправлено: Omicron_Persey_8, 14:34 27-03-2009
Skyer1

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А зачем делать пять классов для студентов???  
У вас есть массив, состоящий из элементов типа st1 и заполнен только один элемент arr[0]. И на фига нужны классы St2, St3 ... ???

 
А может я перепутал но вроде нам говорили, что нужно создать было 5 производных классов

Всего записей: 38 | Зарегистр. 02-11-2008 | Отправлено: 20:24 27-03-2009
Disperados



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую!
На форуме Дундас нарыл интересное решение, а самому разобраться никак не получается.
Надо масштабирование по оси Х на графике перевести из Double в DateTime
Исходники переделал под MS  Chart Control.
Надеюсь на помощь!
файло http://www.onlinedisk.ru/file/109691/
 
Помощь не потребовалась, сам нашел в чем был косяк.

Всего записей: 8 | Зарегистр. 06-07-2008 | Отправлено: 07:19 28-03-2009 | Исправлено: Disperados, 23:23 29-03-2009
Omicron_Persey_8



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Skyer1
Ну если так, то тогда делай массив не St1, а Student:

Код:
 
Student[] arr=new Student[10];
arr[0]=new St1();
arr[1]=new St2();
 

И так далее...

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 07:35 28-03-2009
Skyer1

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нет не хочет работать хотя поидее в моем варианте должно выводить этож вроде производные классы они должны наследоваться

Всего записей: 38 | Зарегистр. 02-11-2008 | Отправлено: 09:17 28-03-2009
feor



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Skyer1
Может я не совсем понимаю задачу (особенно про отдельный класс для каждого инстанса студента), но по-моему, name нужно обернуть в виртуальное проперти и метод Examen тоже сделать виртуальным.

Всего записей: 164 | Зарегистр. 04-09-2005 | Отправлено: 09:51 28-03-2009 | Исправлено: feor, 09:51 28-03-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru