Приветствуем на Форум Херсона. Форум Херсонской молодежи.. На данный момент Вы находитесь на форуме как Гость и имеете очень ограниченные возможности и права. Что бы писать или отвечать в темах, загружать картинки, файлы на форуме Вам нужно зарегистрироваться, что совершенно бесплатно. Регистрация очень быстрая, не откладывайте эту процедуру! Если возникнут проблемы с регистрацией напишите нам. |
|
Программирование Все вопросы по написанию программ |
|
Опции темы |
13.10.2014, 18:38 | #1 (Ссылка на пост) | ||||||||
Что-то высматривает
Пол:
Благодарил(а): 161
Благодарили 84 раз в 50 постах
Галерея:
0
Вес репутации: 15
|
Нужна помощь в освоении программирования
Мне нужно написать программу под виндовс. Программа должна работать через интернет и связывать компьютеры пользователей напрямую. Какой язык выбрать?
У меня сейчас стоит визуал студио 2008. Книжек, по которым можно быстро освоиться не нашел. Давно раньше программировал на паскале и с++. |
||||||||
|
13.10.2014, 19:37 | #2 (Ссылка на пост) | ||||||||
Гаденыш
Пол:
Благодарил(а): 2,441
Благодарили 5,833 раз в 2,093 постах
Галерея:
0
Вес репутации: 78
|
> Какой язык выбрать?
Какой лучше знаешь ты, либо твой хороший знакомый, которому не лень будет помогать. В этом деле программистов лучше не слушать - они будут хвалить свой любимый язык, а для этой задачи подойдет чуть ли не любой популярный. > Давно раньше программировал на паскале и с++. C++ сложный язык и очень сильно эволюционировал в последнее время (став намного удобнее и при том еще сложнее). Если использовать его - то лучше в паре с удобным и простым фреймворком, например, Qt (там есть примеры fortune server и fortune client). Заодно код можно будет собрать хоть под Android, хоть под iOS, хоть под Linux. Плюс в Qt есть практически все. Про паскаль не скажу, в современном виде это, наверное, только Delphi. Тут есть для него пример: http://rosettacode.org/wiki/Echo_server#Delphi П.С. хотя вспомнил - есть еще Free Pascal и Lazarus, открытый аналог Delphi
__________________
- Слава Україні! - закричали они, вместо приветствия. - Что это за фашизм?! - возмутился журналист Гундырев. - Откуда у них столько ненависти к русским? |
||||||||
|
30.10.2014, 18:19 | #3 (Ссылка на пост) | ||||||||
Задержался
Пол:
Благодарил(а): 5
Благодарили 3 раз в 3 постах
Галерея:
0
Вес репутации: 14
|
советую Делфи, если пишешь на паскале
или сразу учи Java, так как программа на джаве запустится на любом устройстве и в любой системе |
||||||||
|
Сказали Спасибо пользователю osp за этот пост: | ПВО (10.11.2014) |
30.10.2014, 18:21 | #4 (Ссылка на пост) | ||||||||
Уже сменил себе статус
Пол:
Благодарил(а): 3,844
Благодарили 1,942 раз в 919 постах
Галерея:
0
Вес репутации: 40
|
|||||||||
|
30.10.2014, 18:42 | #5 (Ссылка на пост) | ||||||||||
Задержался
Пол:
Благодарил(а): 5
Благодарили 3 раз в 3 постах
Галерея:
0
Вес репутации: 14
|
Цитата:
С++ и другие... это тоже пальто, но на выворот Почесав затылок, юзер дописал через 4 минуты Цитата:
А спорить, кто круче С++ или Java можно долго... Если человек выучил Джаву, он смело выучит любой другой язык (они все похожи) |
||||||||||
|
30.10.2014, 19:15 | #6 (Ссылка на пост) | |||||||||
Гаденыш
Пол:
Благодарил(а): 2,441
Благодарили 5,833 раз в 2,093 постах
Галерея:
0
Вес репутации: 78
|
Цитата:
Ага, а парадигмы программирования, семантика, синтаксис, модель управления памятью, типизация и т.д. и т.п. - это все нудная и заумная фигня, все равно все одинаковое.
__________________
- Слава Україні! - закричали они, вместо приветствия. - Что это за фашизм?! - возмутился журналист Гундырев. - Откуда у них столько ненависти к русским? |
|||||||||
|
07.11.2014, 02:17 | #7 (Ссылка на пост) |
Местные мы
Пол:
|
пиши на том, что знает твой сосед ) ну или знакомый.Если задание разовое и для себя. Если в будущем для денег - то стат. анализ зарплат предполагаемого региона, в котором будешь работать )
|
|
Сказали Спасибо пользователю kovalev за этот пост: | ПВО (10.11.2014) |
10.11.2014, 16:58 | #8 (Ссылка на пост) | ||||||||
Что-то высматривает
Пол:
Благодарил(а): 161
Благодарили 84 раз в 50 постах
Галерея:
0
Вес репутации: 15
|
Спасибо за советы, пока остановился на c# просто потому, что попалась книга, которая позволила начать осваиваться на визуал студио 2008.
В программе должно быть: проводник, просмотр картинок, базы данных, которые должны синхронизироваться по сети с другими компьютерами напрямую. Сейчас вопрос по проводнику. Есть два окошка - дерево каталогов и список файлов. Насколько я понимаю, в тулбоксе нет таких готовых инструментов. Нашел в сети ДЛЛ-ки, которые выполняют такие функции и подключил их к моей программе. Это такой путь - искать готовые коды и ДЛЛ-ки и использовать их, чтобы самому глубоко не кодировать? Какой ресурс предлагает базы таких готовых решений? |
||||||||
|
10.11.2014, 17:46 | #9 (Ссылка на пост) | |||||||||
Уже сменил себе статус
Пол:
Благодарил(а): 3,844
Благодарили 1,942 раз в 919 постах
Галерея:
0
Вес репутации: 40
|
Цитата:
В тулбоксе нет готового контрола, но там есть TreeView и так же есть ListView, который умеет отображать данные в табличном\плитковом представлении. Есть еще часто мелькающее решение по использованию WebBrowser, которому указываеться путь на файловой системе, и он использую стандартный ActiveX - отображает тот же проводник, но как по мне правильнее написать самому, учитывая что там кода как-то и не сильно много. Строк 30-60 для обычного простого проводника |
|||||||||
|
Сказали Спасибо пользователю PhoeniXX за этот пост: | ПВО (10.11.2014) |
05.01.2015, 20:43 | #10 (Ссылка на пост) | ||||||||
Что-то высматривает
Пол:
Благодарил(а): 161
Благодарили 84 раз в 50 постах
Галерея:
0
Вес репутации: 15
|
Неделю ковыряю cs а он меня уже вконец выбесил У кого как было - привыкаешь и просто перестаешь беситься или все-таки можно разобраться и что-то нормально сделать?
Итак, задача. Перевод компьютера в спящий режим. Ставлю чекбокс, при отметке которого запускается таймер. При срабатывании таймера нужно открыть окошко с предупреждением о переводе в спящий режим. Пробовал MessageBox, но он не показывается поверх всех окон. Пробовал вторую форму открывать, но не могу оттуда передать параметр в первую, что вторую закрыл пользователь. Пробовал notifyIcon1.ShowBalloonTip, но тоже - и не показывается поверх кино и не срабатывает NotifyIcon1_BalloonTipClicked. А еще, когда форма не видна на экране, перестает работать таймер. |
||||||||
|
05.01.2015, 21:41 | #11 (Ссылка на пост) | ||||||||||
Уже сменил себе статус
Пол:
Благодарил(а): 3,844
Благодарили 1,942 раз в 919 постах
Галерея:
0
Вес репутации: 40
|
Цитата:
Цитата:
Код:
MyPopupForm form = new MyPopupForm(); form.Closing += form_Closing; // оно будет вызвано когда форма будет закрываться form.Show(); private void form_Closing(object sender, CancelEventArgs e) { MyPopupForm form = (MyPopupForm) sender; string myParameter = form.MyCustomParameter; // это свойство новой формы, в которую можно сохранить нужный параметр // ну и дальше его можно использовать } А вообще, если есть вопросы, то нужно и код какой-то показывать, так как отвечать на вопросы без кода это как гадание на кофейной гуще. Последний раз редактировалось PhoeniXX, 05.01.2015 в 23:09. |
||||||||||
|
Сказали Спасибо пользователю PhoeniXX за этот пост: | ПВО (05.01.2015) |
09.01.2015, 17:36 | #12 (Ссылка на пост) | |||||||||
Что-то высматривает
Пол:
Благодарил(а): 161
Благодарили 84 раз в 50 постах
Галерея:
0
Вес репутации: 15
|
Попытка открыть вторую форму Form2
Код:
using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace forvard { public partial class Form1 : Form { public Form1() { InitializeComponent(); } Form2 f2 = new Form2(); f2.Closing += form2_Closing; // оно будет вызвано когда форма будет закрываться f2.Show(); private void f2_Closing(object sender, CancelEventArgs e) { } } } Цитата:
|
|||||||||
|
09.01.2015, 18:58 | #13 (Ссылка на пост) | |||||||||
Уже сменил себе статус
Пол:
Благодарил(а): 3,844
Благодарили 1,942 раз в 919 постах
Галерея:
0
Вес репутации: 40
|
Цитата:
Потом метод снизу называется f2_Closing, а в подписывании указано: f2.Closing += form2_Closing; . Метод должен же быть одним и тем же. А так описан метод f2_Closing, а попытка использования form2_Closing, которого тут нету. Должно быть хотя бы где-то так, хотя в данном случае форма будет открываться при запуске основной формы: Код:
using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace forvard { public partial class Form1 : Form { public Form1() { InitializeComponent(); Form2 f2 = new Form2(); f2.Closing += f2_Closing; // оно будет вызвано когда форма будет закрываться f2.Show(); } private void f2_Closing(object sender, CancelEventArgs e) { } } } |
|||||||||
|
Сказали Спасибо пользователю PhoeniXX за этот пост: | ПВО (09.01.2015) |
09.01.2015, 19:19 | #14 (Ссылка на пост) | ||||||||
Что-то высматривает
Пол:
Благодарил(а): 161
Благодарили 84 раз в 50 постах
Галерея:
0
Вес репутации: 15
|
вот так работает:
Код:
using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace forvard { public partial class Form1 : Form { Form2 f2; public Form1() { InitializeComponent(); f2 = new Form2(); f2.FormClosing += delegate { f2_Closing(); }; } private void checkBox1_CheckedChanged(object sender, EventArgs e) { f2.ShowDialog(); } void f2_Closing() { MessageBox.Show("For2 is closing now!"); } } } Почесав затылок, юзер дописал через 8 минут ну вот, теперь в голове все сложилось - классы и методы |
||||||||
|
29.04.2015, 01:39 | #15 (Ссылка на пост) | ||||||||
Что-то высматривает
Пол:
Благодарил(а): 161
Благодарили 84 раз в 50 постах
Галерея:
0
Вес репутации: 15
|
Есть такая задача... нужно в не используемую оперативную память записывать нужный код и оставлять это свободным для использования. Другими словами, определяем место в озу, которое не испол.дается в данный момент, его заполняем кодом, и оставляем к нему доступ других программ, то есть, не используемая память должна содержать определенный код
Интересует вопрос - можно ли такое в принципе сделать? Насколько это сложно или сколько это может стоить? Я пробовал на си шарп что то делать, - смотрел размер свободной паияти, записывал в большую матрицу данные, и смотрел опять размер свободной памяти, но она как была свободной, так и оставалась. К тому же медленно все происходило. |
||||||||
|
29.04.2015, 03:19 | #16 (Ссылка на пост) | |||||||||
Гаденыш
Пол:
Благодарил(а): 2,441
Благодарили 5,833 раз в 2,093 постах
Галерея:
0
Вес репутации: 78
|
Цитата:
"оставляем к нему доступ других программ" - очевидно речь идет о shared memory. Вот дока для C#: https://msdn.microsoft.com/ru-ru/lib...vs.110%29.aspx "определяем место в озу, которое не испол.дается в данный момент, его заполняем кодом" - типичное поведение ОС для файлового кэша. А эффективно реализовать такое же на уровне процесса в user space не получится. Так что просто пишем сколько нужно, а ОС разрулит. Это если речь не идет о регулярной передаче и обновлении гигабайт данных, тогда задача изначально решается неверно. "и смотрел опять размер свободной памяти, но она как была свободной, так и оставалась" - значит рантайм C# изначально запросил достаточно памяти для размещения новых данных. Это делается для оптимизации. Даже банальный malloc большей частью занимается просто "нарезанием", а не вызовом syscall mmap на каждый чих. Ну или смотреть использование памяти было надо не там.
__________________
- Слава Україні! - закричали они, вместо приветствия. - Что это за фашизм?! - возмутился журналист Гундырев. - Откуда у них столько ненависти к русским? |
|||||||||
|
Сказали Спасибо пользователю Lester за этот пост: | ПВО (03.05.2015) |
29.04.2015, 03:58 | #17 (Ссылка на пост) | |||||||||
Щас сменю себе статус
Пол:
Благодарил(а): 6,493
Благодарили 7,331 раз в 2,872 постах
Галерея:
0
Вес репутации: 98
|
Цитата:
|
|||||||||
|
Сказали Спасибо пользователю wouldnt_even за этот пост: | ПВО (30.05.2015) |
29.04.2015, 11:02 | #18 (Ссылка на пост) | |||||||||
Гаденыш
Пол:
Благодарил(а): 2,441
Благодарили 5,833 раз в 2,093 постах
Галерея:
0
Вес репутации: 78
|
Цитата:
__________________
- Слава Україні! - закричали они, вместо приветствия. - Что это за фашизм?! - возмутился журналист Гундырев. - Откуда у них столько ненависти к русским? |
|||||||||
|
Сказали Спасибо пользователю Lester за этот пост: | ПВО (30.05.2015) |
29.04.2015, 11:17 | #19 (Ссылка на пост) | |||||||||
Уже сменил себе статус
Пол:
Благодарил(а): 3,844
Благодарили 1,942 раз в 919 постах
Галерея:
0
Вес репутации: 40
|
Цитата:
Код:
const int count = 1024*1024*1024/sizeof(int); Console.ReadLine(); int[] q = new int[count]; //for (int index = 0; index < q.Length; index++) //{ // q[index] = 0; //} Console.ReadLine(); GC может вполне и в процессе работы метода вмешаться и удалить не используемые данные. Только опять же это будет private память, и она будет доступна только этому процессу. В чем практическая ценность задачи? Зачем нужна такая логика? |
|||||||||
|
Эти 2 пользователей сказали Спасибо PhoeniXX за хороший пост: | wouldnt_even (29.04.2015), ПВО (03.05.2015) |
29.04.2015, 12:06 | #20 (Ссылка на пост) | |||||||||
Гаденыш
Пол:
Благодарил(а): 2,441
Благодарили 5,833 раз в 2,093 постах
Галерея:
0
Вес репутации: 78
|
Цитата:
PHP код:
__________________
- Слава Україні! - закричали они, вместо приветствия. - Что это за фашизм?! - возмутился журналист Гундырев. - Откуда у них столько ненависти к русским? |
|||||||||
|
Сказали Спасибо пользователю Lester за этот пост: | ПВО (30.05.2015) |
30.04.2015, 16:55 | #21 (Ссылка на пост) | ||||||||
Что-то высматривает
Пол:
Благодарил(а): 161
Благодарили 84 раз в 50 постах
Галерея:
0
Вес репутации: 15
|
Ребята, вы точно наши, а не из гарварда пишите?
Привожу код, а в комментарии еще буду вникать. В целом так: 1. Определяем размер свободной части ОЗУ 2. Высчитываем, сколько туда поместится строк текста 3. Если процессор не загружен, записываем в переменную строку Код:
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.Diagnostics; namespace mg { public partial class Form1 : Form { PerformanceCounter ramCounter = new PerformanceCounter("Memory", "Available MBytes"); PerformanceCounter cpuCounter = new PerformanceCounter(); int cpucnt; string[] stringArray; string str; int arrlenght; int ramfree; int i = 1; public Form1() { InitializeComponent(); cpuCounter.CategoryName = "Processor"; cpuCounter.CounterName = "% Processor Time"; cpuCounter.InstanceName = "_Total"; str = textBox1.Text; ramfree = (int)ramCounter.NextValue(); label_memory.Text = ramfree+"MB"; } private void checkBox1_CheckedChanged(object sender, EventArgs e) { if (checkBox1.Checked) timer1.Enabled = true; else timer1.Enabled = false; textBox1.Text = str; } private void timer1_Tick(object sender, EventArgs e) // Каждые 10 милисекунд дописываем строку в память { cpucnt = (int)cpuCounter.NextValue(); // Определяем загрузку процессора if (cpucnt < 35) { arrlenght = (int)ramfree*1024*1024 / (textBox1.Text.Length*2+10); // Определяем - сколько в памяти поместится нужных строк arrlenght = (int)arrlenght / 10; // stringArray = new string[arrlenght]; label_arr.Text = "Допуст. кол. в массиве: " + arrlenght.ToString(); label_txt_nb.Text = textBox1.Text.Length.ToString(); if ( i+100 < arrlenght ) { // stringArray[i - 1] = textBox1.Text; // Сначала я записывал строку в массив for (int n = 0; n < 100; n++) { str = str + textBox1.Text; } // Потом дописывал строку в переменную стринг i = i + 100; } // stringArray = null; if (i >= arrlenght) { i = 1; str = null; } } } private void timer_renew_Tick(object sender, EventArgs e) // Каждую секунду обновляем показания на форме { label_cpu.Text = cpucnt + "%"; label_i.Text = "i = " + i; ramfree = (int)ramCounter.NextValue(); label_free_2.Text = ramfree+"MB"; } } } |
||||||||
|
30.04.2015, 17:07 | #22 (Ссылка на пост) | |||||||||
Уже сменил себе статус
Пол:
Благодарил(а): 3,844
Благодарили 1,942 раз в 919 постах
Галерея:
0
Вес репутации: 40
|
Цитата:
Во втором случае с str = str + textBox1.Text - да, тут память используется активнее, но так как промежуточные состояния переменной str нигде не сохраняются, то и они очень быстро уничтожаются GC в процессе работы метода. При данном подходе компромиссом будет где-то такое внутри цикла, который будет выполнять этот кусок для каждого элемента массива: Код:
str = str + textBox1.Text; stringArray[i - 1] = str; Опять же, это private память, а не shared, и таким образом процесс просто будет забирать свободную память у системы(наверняка файловый кэш), и все остальные процессы начнут активно свапиться, и как следствие все приложения начнут тупить. |
|||||||||
|
30.04.2015, 17:09 | #23 (Ссылка на пост) | ||||||||
Политический эксперт
Пол:
Благодарил(а): 661
Благодарили 922 раз в 427 постах
Галерея:
0
Вес репутации: 21
|
__________________
SAVE CARAMEL!!! |
||||||||
|
Сказали Спасибо пользователю Школьник за этот пост: | ПВО (30.04.2015) |
30.04.2015, 17:15 | #24 (Ссылка на пост) | ||||||||
Гаденыш
Пол:
Благодарил(а): 2,441
Благодарили 5,833 раз в 2,093 постах
Галерея:
0
Вес репутации: 78
|
И потому очень интересно - а что за задача вообще будет решаться таким способом. Возможно подойдет банальная СУБД с shared cache, например, berkeley db или sqlite.
__________________
- Слава Україні! - закричали они, вместо приветствия. - Что это за фашизм?! - возмутился журналист Гундырев. - Откуда у них столько ненависти к русским? |
||||||||
|
30.04.2015, 21:46 | #25 (Ссылка на пост) | ||||||||
Что-то высматривает
Пол:
Благодарил(а): 161
Благодарили 84 раз в 50 постах
Галерея:
0
Вес репутации: 15
|
На сейчас задача такая - забить не используемую область озу нужным кодом и оставить ее в свободном доступе.: По идее, тут самое место что то типа прямому доступу к памяти, просто я когда искал инфу, то ничего нужного не нашел. Мой код, это просто попытка выкрутиться.
|
||||||||
|
01.05.2015, 08:02 | #26 (Ссылка на пост) | ||||||||
Щас сменю себе статус
Пол:
Благодарил(а): 6,493
Благодарили 7,331 раз в 2,872 постах
Галерея:
0
Вес репутации: 98
|
"забить нужным кодом" - чушь какая-то. без оглядки на размер памяти? объем кода? просто забить? что надо доказать шефу, что на компе мало памяти и нужен апгрейд? или неуклюжая попытка написать вирус?
|
||||||||
|
30.05.2015, 13:52 | #27 (Ссылка на пост) | ||||||||
Что-то высматривает
Пол:
Благодарил(а): 161
Благодарили 84 раз в 50 постах
Галерея:
0
Вес репутации: 15
|
wouldnt_even, ну, все тривиальные задачи давно уже решены. Остается ходить по неведомым дорожкам
Последний раз редактировалось ПВО, 31.05.2015 в 20:03. |
||||||||
|
16.10.2016, 12:29 | #28 (Ссылка на пост) | ||||||||
Что-то высматривает
Пол:
Благодарил(а): 161
Благодарили 84 раз в 50 постах
Галерея:
0
Вес репутации: 15
|
Новая задача.
Нужно, чтобы один компьютер напрямую соединялся с другим компьютером в интернете и передавал данные. Для этого компьютер, который вышел в сеть, должен оставлять свои идентификационные данные (или как они называются?) на сайте в сети. А другой компьютер мог брать эти данные и напрямую связываться с первым компьютером. Что-то вроде связи торрент-трекеров. Сколько ни ищу информации по форумам и книжкам - как это можно сделать, какие принципы, какие методы или функции есть для этого в языках программирования, но ничего пока не нашел, чтобы можно было уяснить подробно. Может кто подскажет - где искать ответы? |
||||||||
|
16.10.2016, 13:46 | #29 (Ссылка на пост) | ||||||||
Щас сменю себе статус
Пол:
Благодарил(а): 7,785
Благодарили 20,671 раз в 4,561 постах
Галерея:
0
Вес репутации: 229
|
Как то совсем непонятно что нужно. Выделенный IP, PPTP поднять или сервисы типа dyndns, noip.
Чем старые добрые почтовые и фтп протоколы неподходят? Последний раз редактировалось olegjack, 16.10.2016 в 13:59. |
||||||||
|
16.10.2016, 14:22 | #30 (Ссылка на пост) | ||||||||
Что-то высматривает
Пол:
Благодарил(а): 161
Благодарили 84 раз в 50 постах
Галерея:
0
Вес репутации: 15
|
Я сам не знаю - как это называется. Мне нужно, чтобы программа на одном компьютере связывалась напрямую с такой же программой на другом компьютере в сети. Каждый комп в сети должен иметь свой уникальный адрес, чтобы к нему можно было обращаться. Что это за адресация, какие есть процедуры в языках программирования для реализации таких возможностей?
|
||||||||
|
Здесь присутствуют: 1 (пользователей - 0 , гостей - 1) | |
Опции темы | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужна помощь | vetal rv | Ваши вопросы в support | 9 | 22.06.2012 09:11 |
Нужна помощь | Recaro | Убей в себе ламера | 10 | 05.03.2008 13:32 |
нужна помощь | СтАсON | Общие | 14 | 27.07.2007 23:28 |
Нужна помощь !!! | Now | Железяки | 37 | 26.10.2006 15:49 |