Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Автор: Omicron_Persey_8
Дата сообщения: 13.09.2009 17:34
blaro
В конструкторе форм. Или делаешь одну форму с кнопками "Далее" и "Назад" и остальные шаги наследуешь от нее и дописываешь в них контролы. Либо делаешь универсальный класс, который формы на лету тебе будет делать.
Автор: LuckyStrike
Дата сообщения: 14.09.2009 21:18
3)Составить программу перевода натурального числа из позиционной системы счисления с основанием m в позиционную систему счисления с основанием n через десятичную систему счисления, где n=3, а m=8

Заранее спасибки!)
Автор: ppkp
Дата сообщения: 14.09.2009 21:28
Делал раньше бегущий график, пользуясь BitBlt(...)

Существует ли в C# аналог этого, типа

нарисовал что-то
foreach (int index in myList) {
    e.Graphics.DrawLine(myPen, index-1, myList[index-1], index, myList[index]);
} и сдвинул, или только BitBlt для этого ?
Автор: Omicron_Persey_8
Дата сообщения: 15.09.2009 07:25
ppkp
Копай в сторону Graphics.TranslateTransform(float, float)

LuckyStrike
Пора уже тему создавать про задачи на C#.

Код: class Program
{
static void Main(string[] args)
{
Console.WriteLine(FromDecimal(ToDecimal("100221002")));
Console.ReadKey();
}

static long ToDecimal(string number)
{
long sum = 0;
for (int i = number.Length - 1, j = 0; i >= 0; i--, j++)
{
sum += long.Parse(number[i].ToString()) * (long)Math.Pow(3.0, j);
}
return sum;
}

static string FromDecimal(long number)
{
string result = "";
while (number > 0)
{
result = (number % 8).ToString() + result;
number /= 8;
}
return result;
}
}
Автор: klimusu
Дата сообщения: 15.09.2009 07:33
Добрый день.

Хочется реализовать на c# кусок кода для web:

нужно брать из папки jpg файлы и расставлять их в случайной последовательности.

С чего начать?
Автор: niichavo
Дата сообщения: 15.09.2009 09:55
klimusu
Общая идея такая:

1. Создаёшь объект DirInfo, получаешь список файлов (FileInfo) - GetFiles("*.jpg")
2. Создаёшь объект Random r = new Random();
3. На основе длины списка полученных файлов случайно генеришь индекс r.Next(длина_списка)
4. получаешь, используя случайный индекс, имя файла из списка
5. склеиваешь путь с именем файла.
Автор: klimusu
Дата сообщения: 15.09.2009 10:13
niichavo
Спасибо, пашел кодить.
Автор: ppkp
Дата сообщения: 15.09.2009 13:49
Omicron_Persey_8

Цитата:
Копай в сторону Graphics.TranslateTransform(float, float)


спасибо, а как чистить освободившуюся область ?
PS что обычно используют для хранения данных для рисования графика - только список с методм Add или другое ?
Автор: Omicron_Persey_8
Дата сообщения: 15.09.2009 16:57
ppkp
А никак не чистить. Все, что в видимую область не попадает и так рисоваться не будет. Ты когда линию рисуешь она никуда не исчезнет и останется, грубо говоря, в Graphics до тех пор пока его весь цветом фона не зальешь. Так что линии графика для целей рисования даже хранить не надо. Только тогда для графика надо будет отдельный контрол сделать, а то если будешь напрямую на форме рисовать у тебя все содержимое формы сдвинется.
Автор: ppkp
Дата сообщения: 15.09.2009 18:04
Дык, тогда надо все время менять ClipBounds или куда ?

Вот, нарисована линия (или несколько) по старым точкам. foreach .. DrawLine..
Теперь приходят новые данные (из Com порта, к примеру. И нужно их хранить где-то). Нужно уже нарисованные линии сдвинуть вправо, TranslateTransform.. (и что-то еще)
а слева снова нарисовать новую линию (или несколько) по новым данным и т.д.

Вся область видима, только она должна двигаться. С BitBlt у меня получалось, а здесь чего-то не догоняю. Недавно начал.
Автор: Omicron_Persey_8
Дата сообщения: 15.09.2009 21:30
ppkp
Вот набей код:

Код: public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

}

private void Form1_MouseDown(object sender, MouseEventArgs e)
{
Graphics gr = this.CreateGraphics();
gr.FillEllipse(Brushes.Red, new Rectangle(e.X - 1, e.Y - 1, 3, 3));
}
}
Автор: ppkp
Дата сообщения: 15.09.2009 22:41
Спасибо. Для рисования в Вашем примере действительно не нужно хранить данные, но если приходит несколько значений, то, чтобы их отрисовать, очевидно, необходимо запомнить их где-то. Потом они заменяются новыми и т.д. Что используют обычно - список или другое ?
Сдвигание ClipBounds - это ClipBounds.Offset ? Не хочет.
Спасибо, в любом случае. Буду рыть дальше.
Автор: Omicron_Persey_8
Дата сообщения: 16.09.2009 07:12
ppkp
Обычно используют List<T>, но можешь что-нибудь свое придумать.

Добавлено:
А двигать при помощи TranslateTranform
Автор: muzzle
Дата сообщения: 17.09.2009 15:35
вопрос от лентяя:
будет ли работать программа на другом компе, если я просто перекину туда сформированный ехе'шник? продполагается, что предварительно на другом компе установлен net.framework 3.5

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

Добавлено:
зы C# 2008 express
Автор: Omicron_Persey_8
Дата сообщения: 17.09.2009 16:32
muzzle
Если твоя прога не использует библиотек, не входящих в .NET Framework, если не использует Platform Invoke, COM и т. п., то 99% что будет. Но, как всегда, возможны варианты.
Автор: ppkp
Дата сообщения: 18.09.2009 23:42
Подскажите, пожалуйста, какими средствами сделать пришпиленную панель (в стиле
Обозреватель решений, Панель элементов и т.д. в Visual Studio) ? Panel и SplitContainer пробовал - не получилось. Или только сторонние компоненты типа DevExpress могут это ?
Спасибо.
Автор: blaro
Дата сообщения: 19.09.2009 15:03
Omicron_Persey_8

Цитата:
В конструкторе форм. Или делаешь одну форму с кнопками "Далее" и "Назад" и остальные шаги наследуешь от нее и дописываешь в них контролы. Либо делаешь универсальный класс, который формы на лету тебе будет делать.

А где можно по подробней найти инфу?
Автор: Omicron_Persey_8
Дата сообщения: 19.09.2009 21:44
blaro
Мне ничего именно про создание мастеров не попадалось. Наиболее полезным будет инфа про создание контролов для .NET. А лучше всего сделай какую-нибудь форму с элементами управления и посмотри, что студия тебе впишет в метод Form1.InitializeComponent(). Там все будет.
Автор: blaro
Дата сообщения: 20.09.2009 13:30
Есть один классный сайт www.codeproject.com там полно всякого, в том числе и как создать мастер. В строке поиска вбиваете wizard и получаете полный список ссылок.
Вот ссылки выбранные случайно:
http://www.codeproject.com/KB/miscctrl/DesignTimeWizard.aspx
http://www.codeproject.com/KB/miscctrl/ak_wizard.aspx
http://www.codeproject.com/KB/dialog/WizardForm.aspx
А вот самая интересная имхо...
http://www.codeproject.com/KB/cs/WizardDemo.aspx
Автор: Yuurk
Дата сообщения: 28.09.2009 11:14
Всем привет. Столкнулся с такой задачей: надо записать ADO RecordSet в текстовое поле объекта. Идея такая - через XML.

Есть форма, есть соответствующий ей объект.
1. У объекта есть различные поля (атрибуты) ("Дата создания", "ФИО", "Должность" и тд.). Также у этого объекта есть текстовое поле.
2. На форме есть табличка, ДатаСоурсом у которой выставлен ADO DataSet. В рантайме генерирую RecordSet для того, чтобы подсунуть его в DataSet.
Все данные формы должны храниться в 1 объекте. Для того, чтобы хранить динамическую таблицу (набор столбцов всегда различный) в объекте - использую XML. Записать в поле я могу, а вот считать - не получается. Собсно задача: РекордСет заполнить из XML, созданного им же в рантайме. Без сохранения на жесткий.
Автор: MagistrAnatol
Дата сообщения: 01.10.2009 10:37
помогите с задачей - надо написать под компакт фреймворк консольное приложение или сервис чтобы отслеживались изминения в задачах и встречах - если что-то поменялось -
запускаем внешнее приложение
вот начало моей разрабоки - консоль - но она закрывается зараза
using System;
using Microsoft.WindowsMobile.Status;

namespace ChState
{

class Program
{


static void Main(string[] args)
{
SystemState tastState;
tastState = new SystemState(SystemProperty.TasksActive, true);
tastState.Changed += new ChangeEventHandler(tastState_Changed);
Console.ReadLine();

}
static void tastState_Changed(object sender, ChangeEventArgs args)
{
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "Kalendar.exe";
p.Start();

}

}

}
Автор: feor
Дата сообщения: 02.10.2009 11:08
ppkp
Стандартными, похоже, не обойтись. Но можно найти что-нибудь не коммерческое.
Автор: blaro
Дата сообщения: 07.10.2009 21:22
Привет всем!
У меня в программе имеется DataGridView в котором отображаются отсортированные файлы. Мне надо сделать следующее: двойным кликом открыть файл в своей программе. Т.е. если это мр3, то файл должен открываться в каком нибудь плеере (winamp, kmplayer и др.).
Событие двойного клика я уже добавил в прогу, а что дальше? Что писать?
Как получить список типов (расширений) файлов, которые используются в опер. системе?
Автор: dneprcomp
Дата сообщения: 07.10.2009 23:55
blaro

Цитата:
Как получить список типов (расширений) файлов, которые используются в опер. системе?

Выбирай http://filext.com/alphalist.php?extstart=%5EA

Только вот вопрос должен звучать так: "Какие типы файлов собираемся открывать. "
Кто кроме тебя может знать, что вы там открывать будете.
Автор: blaro
Дата сообщения: 08.10.2009 00:16

Цитата:
Только вот вопрос должен звучать так: "Какие типы файлов собираемся открывать. "
Кто кроме тебя может знать, что вы там открывать будете.

Что значит какие? Любые.. Если это *.mp3 то откроется в медиаплеере, если это *.pdf то в акробате, если это *.txt то в любом текстовом редакторе.

Добавлено:

Цитата:
Выбирай http://filext.com/alphalist.php?extstart=%5EA

Круто. А как получить тоже самое из Windows'а?
Автор: artbyte
Дата сообщения: 08.10.2009 06:04
Привет всем. Нашел в MSDN пример по высокопроизводительным асинхронным сокетам с использованием SocketAsyncEventArgs. Пример для TCP, кто-нибудь может подсказать как его переделать под UDP? Сам пример здесь http://msdn.microsoft.com/ru-ru/library/system.net.sockets.socketasynceventargs.aspx
Автор: V0lt
Дата сообщения: 08.10.2009 07:56
blaro

Цитата:
Мне надо сделать следующее: двойным кликом открыть файл в своей программе. Т.е. если это мр3, то файл должен открываться в каком нибудь плеере (winamp, kmplayer и др.).

я не мудрил и сделал как в любом учебнике пишут:

Код: string filename = "D:\pic.jpg";
try
{
Process.Start(filename);
}
catch
{
}
Автор: LuckyStrike
Дата сообщения: 08.10.2009 18:15
Доброго времени суток....подскажите как в С# из файла взять информацию....например я открыл блокнот написал там не сколько фамилий и потом нужно открыть этот файл в массив и отсортировать...как открыть файл?
Автор: dneprcomp
Дата сообщения: 08.10.2009 23:44
blaro

Цитата:
Что значит какие? Любые..

Так потому и спросил. Если любые известные данной OS на вот именно этом компьютере, то по методу 1 от V0lt. А вот если какие-нибудь нестандартные расширения(или расширения, не асоциированные на данном компьютере), то тогда метод 2 от V0lt и, возможно, с созданием своего списка расширений.

Цитата:
А как получить тоже самое из Windows'а?
Перебором HKEY_CLASSES_ROOT
Автор: ekky
Дата сообщения: 09.10.2009 05:42
LuckyStrike


Можно использовать статический метод OpenText класса File, который открывает текстовый файл и метод ReadLine, который считывает байты из входного потока до символа '\n'


string fileName = "C:/text.txt";
StreamReader reader = File.OpenText(fileName);
while (!reader.EndOfStream)
{
String line = reader.ReadLine();

. . . //выполнить нужные действия со строкой
}
reader.Close();

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102

Предыдущая тема: Как удалить/добавить/отключить/включить устройство?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.