Учим языки программирования, Помогаем друг-другу, делимся опытом. |
Здравствуйте, гость ( Авторизация | Регистрация )
Учим языки программирования, Помогаем друг-другу, делимся опытом. |
22.12.2012, 22:21
Сообщение
#541
|
|
Der Metzgermeister Репутация: 1153 Группа: Участник Сообщений: 4669 Награды: 11 Регистрация: 06.01.2008 |
Срочно нужен спец по MFC. Есть такие?
-------------------- Моя конфа: Intel Core 2 Duo E8500 (3.16x2); 4Gb Ram;
"Перемен требуют наши сердца."© В.Цой "Die Liebe ist ein wildes Tier, sie ahnt dich, sie sucht nach dir."© Rammstein - Amour Ничто не истинно, все дозволено. Мой Twitter - Чемпион по Assassin's Creed: Brotherhood по версии ИгроМир 2010. |
 
|
|
|
|
24.12.2012, 02:38
Сообщение
#542
|
|
Der Metzgermeister Репутация: 1153 Группа: Участник Сообщений: 4669 Награды: 11 Регистрация: 06.01.2008 |
Очень нужна помощь до утра. Все то же ограничение ввода, чтобы только цифры и одна точка. МаскЭдит не предлагать, кейпресс в 10 студии выпилен.
-------------------- Моя конфа: Intel Core 2 Duo E8500 (3.16x2); 4Gb Ram;
"Перемен требуют наши сердца."© В.Цой "Die Liebe ist ein wildes Tier, sie ahnt dich, sie sucht nach dir."© Rammstein - Amour Ничто не истинно, все дозволено. Мой Twitter - Чемпион по Assassin's Creed: Brotherhood по версии ИгроМир 2010. |
 
|
|
26.12.2012, 11:55
Сообщение
#543
|
|
The One Репутация: 744 Группа: Участник Сообщений: 2715 Награды: 5 Регистрация: 05.12.2005 |
кейпресс в 10 студии выпилен. Marauder, а не через унаследование контрола ли это делается? Посмотри в сторону MFC Class Wizard, в частности вкладку Messages и определи там обработчик WM_KEYDOWN для своего контрола или лучше даже WM_CHAR. Блин, пролетел с советом, видимо уже не актуально... Сообщение отредактировал Neo][ - 26.12.2012, 12:10 -------------------- |
 
|
|
02.01.2013, 14:30
Сообщение
#544
|
|
Босс Репутация: 880 Группа: Участник Сообщений: 4181 Награды: 3 Регистрация: 20.04.2008 |
Возник у меня вопрос по сокетам, может кто в курсе. Есть у меня программа-ВебСервер. Которая на запрос от браузера отсылает ему страничку на которой 3 изображения.
Сделано так что после соединения с браузером, отсылка всех данных происходит через один сокет, без разрыва соединения. Браузер, после получения странички, запрашивает изображения расположенные на этой страничке. Одно изображение запрашивает через уже созданный сокет, а вот остальные он пытается загрузить открыв новые соединения, и в результате, в браузере вместо трех изображений, появляется только одно. Вот и вопрос, это особенность работы браузеров, или в программе можно все таки сделать, что бы браузер загружал все через один сокет, не пытаясь создать новых? -------------------- |
 
|
|
03.01.2013, 18:28
Сообщение
#545
|
|
The One Репутация: 744 Группа: Участник Сообщений: 2715 Награды: 5 Регистрация: 05.12.2005 |
Вот и вопрос, это особенность работы браузеров, или в программе можно все таки сделать, что бы браузер загружал все через один сокет, не пытаясь создать новых? l3kar, на сколько я понимаю - особенность браузеров, закачка контента в несколько потоков. А вообще в чём проблема, у тебя же многопоточный сервер? -------------------- |
 
|
|
03.01.2013, 18:35
Сообщение
#546
|
|
Геймер Репутация: 86 Группа: Участник Сообщений: 128 Награды: 4 Регистрация: 05.05.2012 |
l3kar, почитай спецификацию http, может там найдется ответ на твой вопрос:
-------------------- nop
|
 
|
|
03.01.2013, 20:43
Сообщение
#547
|
|
Босс Репутация: 880 Группа: Участник Сообщений: 4181 Награды: 3 Регистрация: 20.04.2008 |
С этим разобрался. Просто я один из пунктов задания не так понял. Надо было ограничить количество запросов от одного компа за один сеанс keep-alive, а не количество одновременных подключений.
Возник другой вопрос. По заданию сервер должен обрабатывать POST запросы, вот только что можно сделать с этими данными? Кроме как просто складировать в отдельный файл, я не придумал. Прикручивать PHP ради них я желанием не горю, CGI скрипты, тоже еще тот геморрой. Сообщение отредактировал l3kar - 03.01.2013, 20:43 -------------------- |
 
|
|
16.02.2013, 12:46
Сообщение
#548
|
|
Игровое Воплощение Репутация: 384 Группа: Участник Сообщений: 4718 Награды: 9 Регистрация: 21.05.2008 |
Не знаю куда еще запостить эту тему.
Думаю на форуме много программистов и дельные советы между собой, были бы очень кстати. Мой вопрос такой. Есть List<details> - соответственно хранит список обЪектов класса details, на самом деле хранит ссылку на него. Т.е. если два списка приравнять, то второй тупо получит ссылку. Отсюда вывод, что если изменить данные во втором, то открыв первый список, который опять же ссылка, данные тоже будут изменены. Я пытался его переписать следующими способами: CopyTo(T[]) GetRange Опять же и то и то передает лишь ссылки. Переводить в массив, а потом опять в список, это крайне долго... Вот и вопрос, как скопировать, чтобы копировалась не ссылка, а сами данные. P.S. Неплохо , если бы был раздел про программирование... |
 
|
|
16.02.2013, 13:05
Сообщение
#549
|
|
Геймер Репутация: 86 Группа: Участник Сообщений: 128 Награды: 4 Регистрация: 05.05.2012 |
смысл создавать было эту тему, на этом форуме уже есть подобная: http://www.gameru.net/forum/index.php?showtopic=16244 плодить овер 100500 тем с похожими названиями плохая идея, к тому же твой вопрос легко гуглится, по первой же ссылке нашел:
Код using System;
using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { List<int> l1 = new List<int>(10), l2; for (int i = 0; i < 10; i++) { l1.Add(i); } l2 = new List<int>(l1); l1.Clear(); for (int i = 0; i < 10; i++) { System.Console.Write(l2[i]); } System.Console.ReadLine(); } } } -------------------- nop
|
 
|
|
16.02.2013, 13:06
Сообщение
#550
|
|
Игровое Воплощение Репутация: 384 Группа: Участник Сообщений: 4718 Награды: 9 Регистрация: 21.05.2008 |
Дык l1.Clear(); , а первый список то сохранить нужно
|
 
|
|
16.02.2013, 13:19
Сообщение
#551
|
|
Follow me: @VIGUR91 Репутация: 2821 Группа: Участник Сообщений: 10420 Награды: 9 Регистрация: 29.03.2008 |
nuan, refuse, тему соединил с "Учим языки программирования".
-------------------- Мой ник читается как VÍGUR (с ударением на первый слог!)
Programming is like sex: one mistake and you have to support it for the rest of your life... "- Ребята, хватит. Всё. Креатива больше не надо... - Верно, согласны. Креатива больше не надо. НА СЕГОДНЯ креатива больше не надо." (с) Андрей Прохоров. |
 
|
|
16.02.2013, 13:22
Сообщение
#552
|
|
Геймер Репутация: 86 Группа: Участник Сообщений: 128 Награды: 4 Регистрация: 05.05.2012 |
Дык l1.Clear(); , а первый список то сохранить нужно ну а что мешает-то, можно и сохранить: Код using System;
using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { List<int> l1 = new List<int>(10), l2; for (int i = 0; i < 10; i++) { l1.Add(i); } l2 = new List<int>(l1); for (int i = 0; i < 10; i++) { l1[9 - i] = i; } for (int i = 0; i < 10; i++) { System.Console.Write(l1[i]); } System.Console.Write("\n"); for (int i = 0; i < 10; i++) { System.Console.Write(l2[i]); } System.Console.ReadLine(); } } } -------------------- nop
|
 
|
|
16.02.2013, 13:24
Сообщение
#553
|
|
Follow me: @VIGUR91 Репутация: 2821 Группа: Участник Сообщений: 10420 Награды: 9 Регистрация: 29.03.2008 |
А по теме: nuan, весь смысл в передачи в конструктор второго листа имени первого. Первый же не обязательно очищать. Вот аналогичное нагуглил:
Код using System;
using System.Collections.Generic; class Program { static void Main() { int[] arr = new int[3]; // New array with 3 elements arr[0] = 2; arr[1] = 3; arr[2] = 5; List<int> list = new List<int>(arr); // Copy to List Console.WriteLine(list.Count); // 3 elements in List } } -------------------- Мой ник читается как VÍGUR (с ударением на первый слог!)
Programming is like sex: one mistake and you have to support it for the rest of your life... "- Ребята, хватит. Всё. Креатива больше не надо... - Верно, согласны. Креатива больше не надо. НА СЕГОДНЯ креатива больше не надо." (с) Андрей Прохоров. |
 
|
|
16.02.2013, 13:46
Сообщение
#554
|
|
Игровое Воплощение Репутация: 384 Группа: Участник Сообщений: 4718 Награды: 9 Регистрация: 21.05.2008 |
CODE class Program { static void Main(string[] args) { List<S> l1 = new List<S>(); List<S> l2 = new List<S>(); for(int i =0; i<5;i++) l1.Add(new S(i+1,i+14)); Console.WriteLine("Первый массив"); foreach (S i in l1) Console.WriteLine(i.ToString()); l2 = l1; Console.WriteLine("Второй массив"); foreach (S i in l2) Console.WriteLine(i.ToString()); Console.WriteLine("Поменяли второй массив"); foreach (S i in l2) { i.x += 1; i.y += 1; } foreach (S i in l2) Console.WriteLine(i.ToString()); Console.WriteLine("Выводим первый массив"); foreach (S i in l1) Console.WriteLine(i.ToString()); Console.ReadKey(); } } class S { public int x; public int y; public S(int x, int y) { this.x = x; this.y = y; } public override string ToString() { return x.ToString()+" "+y.ToString(); } } Вывод: Первый массив 1 14 2 15 3 16 4 17 5 18 Второй массив 1 14 2 15 3 16 4 17 5 18 Поменяли второй массив 2 15 3 16 4 17 5 18 6 19 Выводим первый массив 2 15 3 16 4 17 5 18 6 19 UPD: List<S> l1 = new List<S>(),l2; - не передача в конструктор второго листа //List<S> l2 = new List<S>(); Сообщение отредактировал nuan - 16.02.2013, 13:47 |
 
|
|
16.02.2013, 13:48
Сообщение
#555
|
|
Геймер Репутация: 86 Группа: Участник Сообщений: 128 Награды: 4 Регистрация: 05.05.2012 |
а до меня доехало в чем проблема, имеем список референсов на объекты, которые по ходу выполнения программы меняют свои свойства, т.е. как-то так:
Код using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Details { public Details() { } public Details(int n) { i = n; } public int i; }; class Program { static void Main(string[] args) { List<Details> l1 = new List<Details>(10), l2; for (int i = 0; i < 10; i++) { l1.Add(new Details(i)); } l2 = new List<Details>(l1); for (int i = 0; i < 10; i++) { l1[i].i = 9 - i; } for (int i = 0; i < 10; i++) { System.Console.Write(l2[i].i); } System.Console.ReadLine(); } } } решение ващемто такое же, как в предыдущих сообщениях, только применять его нужно не к списку, а к каждому элементу списка: Код using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Details { public Details() { } public Details(int n) { i = n; } public Details(Details d) { this.i = d.i; } public int i; }; class Program { static void Main(string[] args) { List<Details> l1 = new List<Details>(10); for (int i = 0; i < 10; i++) { l1.Add(new Details(i)); } List<Details> l2 = new List<Details>(10); for (int i = 0; i < 10; i++) { l2.Add(new Details(l1[i])); } for (int i = 0; i < 10; i++) { l1[i].i = 9 - i; } for (int i = 0; i < 10; i++) { System.Console.Write(l2[i].i); } System.Console.ReadLine(); } } } -------------------- nop
|
 
|
|
16.02.2013, 13:50
Сообщение
#556
|
|
Follow me: @VIGUR91 Репутация: 2821 Группа: Участник Сообщений: 10420 Награды: 9 Регистрация: 29.03.2008 |
nuan, ну ты же присваиваешь. А надо при создании второго передавать в конструктор первый лист:
Код ... List<S> l1 = new List<S>(); for(int i = 0; i < 5; i++) l1.Add(new S(i + 1, i + 14)); List<S> l2 = new List<S>(l1); ... Вот линк на референс: -------------------- Мой ник читается как VÍGUR (с ударением на первый слог!)
Programming is like sex: one mistake and you have to support it for the rest of your life... "- Ребята, хватит. Всё. Креатива больше не надо... - Верно, согласны. Креатива больше не надо. НА СЕГОДНЯ креатива больше не надо." (с) Андрей Прохоров. |
 
|
|
16.02.2013, 14:01
Сообщение
#557
|
|
Игровое Воплощение Репутация: 384 Группа: Участник Сообщений: 4718 Награды: 9 Регистрация: 21.05.2008 |
CODE for (int i = 0; i < 5; i++) l2.Add(new S(l1[i].x,l1[i].y)); Воооттт теперь пашет правильно... Спасибо. Но опять же перебирать долго... Есть ли другой способ? |
 
|
|
16.02.2013, 14:16
Сообщение
#558
|
|
Геймер Репутация: 86 Группа: Участник Сообщений: 128 Награды: 4 Регистрация: 05.05.2012 |
ну во-первых не так уж и долго, а во-вторых, независимо от того существует ли другая форма записи в с# или нет, в данном случае все сводится к поэлементному копированию списка, такова уж природа самого списка, независимо от языков и платформ. а вот нужно ли это самое копирование или нет для решения твоей задачи в целом - это уже вопрос десятый, возможно есть какое-то более оптимальное решение.
-------------------- nop
|
 
|
|
16.02.2013, 14:52
Сообщение
#559
|
|
Follow me: @VIGUR91 Репутация: 2821 Группа: Участник Сообщений: 10420 Награды: 9 Регистрация: 29.03.2008 |
refuse, nuan, ответьте мне, почему не подходит через конструктор это делать как я описал выше?
-------------------- Мой ник читается как VÍGUR (с ударением на первый слог!)
Programming is like sex: one mistake and you have to support it for the rest of your life... "- Ребята, хватит. Всё. Креатива больше не надо... - Верно, согласны. Креатива больше не надо. НА СЕГОДНЯ креатива больше не надо." (с) Андрей Прохоров. |
 
|
|
16.02.2013, 15:07
Сообщение
#560
|
|
Геймер Репутация: 86 Группа: Участник Сообщений: 128 Награды: 4 Регистрация: 05.05.2012 |
VIGUR, в твоем примере копируются линки на объекты, а не сами объекты, в терминах языка с++ это означает, что ты копируешь список указателей на объекты std::list<S*>
upd. с plain of data типами этот вариант срабатывает в c#, как в 1-м примере, но не с объектами. -------------------- nop
|
 
|
|
Текстовая версия | Сейчас: 06.06.2024, 06:58 |