Нужна помощь в освоении программирования Мне нужно написать программу под виндовс. Программа должна работать через интернет и связывать компьютеры пользователей напрямую. Какой язык выбрать?
У меня сейчас стоит визуал студио 2008. Книжек, по которым можно быстро освоиться не нашел. Давно раньше программировал на паскале и с++. |
> Какой язык выбрать?
Какой лучше знаешь ты, либо твой хороший знакомый, которому не лень будет помогать. В этом деле программистов лучше не слушать - они будут хвалить свой любимый язык, а для этой задачи подойдет чуть ли не любой популярный. > Давно раньше программировал на паскале и с++. C++ сложный язык и очень сильно эволюционировал в последнее время (став намного удобнее и при том еще сложнее). Если использовать его - то лучше в паре с удобным и простым фреймворком, например, Qt (там есть примеры fortune server и fortune client). Заодно код можно будет собрать хоть под Android, хоть под iOS, хоть под Linux. Плюс в Qt есть практически все. Про паскаль не скажу, в современном виде это, наверное, только Delphi. Тут есть для него пример: http://rosettacode.org/wiki/Echo_server#Delphi П.С. хотя вспомнил - есть еще Free Pascal и Lazarus, открытый аналог Delphi |
советую Делфи, если пишешь на паскале
или сразу учи Java, так как программа на джаве запустится на любом устройстве и в любой системе |
Цитата:
|
Цитата:
С++ и другие... это тоже пальто, но на выворот Почесав затылок, юзер дописал через 4 минуты Цитата:
А спорить, кто круче С++ или Java можно долго... Если человек выучил Джаву, он смело выучит любой другой язык (они все похожи) |
Цитата:
Цитата:
|
пиши на том, что знает твой сосед ) ну или знакомый.Если задание разовое и для себя. Если в будущем для денег - то стат. анализ зарплат предполагаемого региона, в котором будешь работать )
|
Спасибо за советы, пока остановился на c# просто потому, что попалась книга, которая позволила начать осваиваться на визуал студио 2008.
В программе должно быть: проводник, просмотр картинок, базы данных, которые должны синхронизироваться по сети с другими компьютерами напрямую. Сейчас вопрос по проводнику. Есть два окошка - дерево каталогов и список файлов. Насколько я понимаю, в тулбоксе нет таких готовых инструментов. Нашел в сети ДЛЛ-ки, которые выполняют такие функции и подключил их к моей программе. Это такой путь - искать готовые коды и ДЛЛ-ки и использовать их, чтобы самому глубоко не кодировать? Какой ресурс предлагает базы таких готовых решений? |
Цитата:
В тулбоксе нет готового контрола, но там есть TreeView и так же есть ListView, который умеет отображать данные в табличном\плитковом представлении. Есть еще часто мелькающее решение по использованию WebBrowser, которому указываеться путь на файловой системе, и он использую стандартный ActiveX - отображает тот же проводник, но как по мне правильнее написать самому, учитывая что там кода как-то и не сильно много. Строк 30-60 для обычного простого проводника |
Неделю ковыряю cs а он меня уже вконец выбесил :) У кого как было - привыкаешь и просто перестаешь беситься или все-таки можно разобраться и что-то нормально сделать?
Итак, задача. Перевод компьютера в спящий режим. Ставлю чекбокс, при отметке которого запускается таймер. При срабатывании таймера нужно открыть окошко с предупреждением о переводе в спящий режим. Пробовал MessageBox, но он не показывается поверх всех окон. Пробовал вторую форму открывать, но не могу оттуда передать параметр в первую, что вторую закрыл пользователь. Пробовал notifyIcon1.ShowBalloonTip, но тоже - и не показывается поверх кино и не срабатывает NotifyIcon1_BalloonTipClicked. А еще, когда форма не видна на экране, перестает работать таймер. :cray: |
Цитата:
Цитата:
Код:
MyPopupForm form = new MyPopupForm(); Цитата:
А вообще, если есть вопросы, то нужно и код какой-то показывать, так как отвечать на вопросы без кода это как гадание на кофейной гуще. |
Попытка открыть вторую форму Form2
Код:
using System; Цитата:
|
Цитата:
Потом метод снизу называется f2_Closing, а в подписывании указано: f2.Closing += form2_Closing; . Метод должен же быть одним и тем же. А так описан метод f2_Closing, а попытка использования form2_Closing, которого тут нету. Должно быть хотя бы где-то так, хотя в данном случае форма будет открываться при запуске основной формы: Код:
using System; |
вот так работает:
Код:
using System; Почесав затылок, юзер дописал через 8 минут Цитата:
|
Есть такая задача... нужно в не используемую оперативную память записывать нужный код и оставлять это свободным для использования. Другими словами, определяем место в озу, которое не испол.дается в данный момент, его заполняем кодом, и оставляем к нему доступ других программ, то есть, не используемая память должна содержать определенный код
Интересует вопрос - можно ли такое в принципе сделать? Насколько это сложно или сколько это может стоить? Я пробовал на си шарп что то делать, - смотрел размер свободной паияти, записывал в большую матрицу данные, и смотрел опять размер свободной памяти, но она как была свободной, так и оставалась. К тому же медленно все происходило. |
Цитата:
"оставляем к нему доступ других программ" - очевидно речь идет о shared memory. Вот дока для C#: https://msdn.microsoft.com/ru-ru/lib...vs.110%29.aspx "определяем место в озу, которое не испол.дается в данный момент, его заполняем кодом" - типичное поведение ОС для файлового кэша. А эффективно реализовать такое же на уровне процесса в user space не получится. Так что просто пишем сколько нужно, а ОС разрулит. Это если речь не идет о регулярной передаче и обновлении гигабайт данных, тогда задача изначально решается неверно. "и смотрел опять размер свободной памяти, но она как была свободной, так и оставалась" - значит рантайм C# изначально запросил достаточно памяти для размещения новых данных. Это делается для оптимизации. Даже банальный malloc большей частью занимается просто "нарезанием", а не вызовом syscall mmap на каждый чих. Ну или смотреть использование памяти было надо не там. |
Цитата:
|
Цитата:
|
Цитата:
Код:
GC может вполне и в процессе работы метода вмешаться и удалить не используемые данные. Только опять же это будет private память, и она будет доступна только этому процессу. В чем практическая ценность задачи? Зачем нужна такая логика? |
Цитата:
PHP код:
|
Вложений: 1
Ребята, вы точно наши, а не из гарварда пишите? :)
Привожу код, а в комментарии еще буду вникать. В целом так: 1. Определяем размер свободной части ОЗУ 2. Высчитываем, сколько туда поместится строк текста 3. Если процессор не загружен, записываем в переменную строку Код:
using System; |
Цитата:
Во втором случае с str = str + textBox1.Text - да, тут память используется активнее, но так как промежуточные состояния переменной str нигде не сохраняются, то и они очень быстро уничтожаются GC в процессе работы метода. При данном подходе компромиссом будет где-то такое внутри цикла, который будет выполнять этот кусок для каждого элемента массива: Код:
str = str + textBox1.Text; Опять же, это private память, а не shared, и таким образом процесс просто будет забирать свободную память у системы(наверняка файловый кэш), и все остальные процессы начнут активно свапиться, и как следствие все приложения начнут тупить. |
|
Цитата:
|
На сейчас задача такая - забить не используемую область озу нужным кодом и оставить ее в свободном доступе.: По идее, тут самое место что то типа прямому доступу к памяти, просто я когда искал инфу, то ничего нужного не нашел. Мой код, это просто попытка выкрутиться.
|
"забить нужным кодом" - чушь какая-то. без оглядки на размер памяти? объем кода? просто забить? что надо доказать шефу, что на компе мало памяти и нужен апгрейд? или неуклюжая попытка написать вирус? :)
|
wouldnt_even, ну, все тривиальные задачи давно уже решены. Остается ходить по неведомым дорожкам :)
|
Новая задача.
Нужно, чтобы один компьютер напрямую соединялся с другим компьютером в интернете и передавал данные. Для этого компьютер, который вышел в сеть, должен оставлять свои идентификационные данные (или как они называются?) на сайте в сети. А другой компьютер мог брать эти данные и напрямую связываться с первым компьютером. Что-то вроде связи торрент-трекеров. Сколько ни ищу информации по форумам и книжкам - как это можно сделать, какие принципы, какие методы или функции есть для этого в языках программирования, но ничего пока не нашел, чтобы можно было уяснить подробно. Может кто подскажет - где искать ответы? |
Как то совсем непонятно что нужно. Выделенный IP, PPTP поднять или сервисы типа dyndns, noip.
Чем старые добрые почтовые и фтп протоколы неподходят? |
Я сам не знаю - как это называется. Мне нужно, чтобы программа на одном компьютере связывалась напрямую с такой же программой на другом компьютере в сети. Каждый комп в сети должен иметь свой уникальный адрес, чтобы к нему можно было обращаться. Что это за адресация, какие есть процедуры в языках программирования для реализации таких возможностей?
|
Время на сервере: 19:46. |
vBulletin 3, Copyright © 2000-2024, Jelsoft Enterprises Ltd.
Русский перевод: zCarot, Vovan & Co