Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 7452-й день

Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua

 C# для новичков, вопросы и ответы

Barmivah
Apr 11 2010, 9:57
  
Пост #161



Репутация:   1  
Дух


Группа: Пользователи
Сообщений: 17
С нами с: 18-March 09


Уважаемые прогеры, у меня назрел вопрос. Собственными силами в нете ответа не нашел.
Итак прогал я шифрование des. И вообщем-то запрогал, даже ответы сходяться smile.gif, но вот беда я не нашел как из введенных букв преобразовать в бинарный код. Сейчас использую Convert.ToString(Convert.ToSByte(fl[i]), 2) но такой вариант не подходит, потому что он не конвертирует кирилицу + нельзя таким методом из бинарника вернуться обратно к тексту.
Сегодня наткнулся на это: System.Text.Encoding COD = System.Text.Encoding.GetEncoding(1251);
Но пока не понял как же им считывать и выводить инфу. Может кто сталкивался - подскажите.

Сообщение отредактировал Barmivah - Apr 11 2010, 9:58
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
surly
Apr 11 2010, 14:32
  
Пост #162



Репутация:   -96  
Cтаршой
**

Группа: BANNED
Сообщений: 922
С нами с: 2-December 07


(Barmivah @ Apr 11 2010, 10:57) Перейти к цитате

Уважаемые прогеры, у меня назрел вопрос. Собственными силами в нете ответа не нашел.
Итак прогал я шифрование des. И вообщем-то запрогал, даже ответы сходяться smile.gif, но вот беда я не нашел как из введенных букв преобразовать в бинарный код. Сейчас использую Convert.ToString(Convert.ToSByte(fl[i]), 2) но такой вариант не подходит, потому что он не конвертирует кирилицу + нельзя таким методом из бинарника вернуться обратно к тексту.
Сегодня наткнулся на это: System.Text.Encoding COD = System.Text.Encoding.GetEncoding(1251);
Но пока не понял как же им считывать и выводить инфу. Может кто сталкивался - подскажите.

используй класс Marshal.
свою строку заверни в структурку и используй метод StructureToPtr.
так же можно покопатся с небезопасным кодом (блок unsafe { ... })
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Gengzu
Apr 12 2010, 16:37
  
Пост #163



Репутация:   8  
Дух


Группа: Пользователи
Сообщений: 190
С нами с: 2-July 07


так что ли?

            string s = "test string";

            Encoding enc = Encoding.GetEncoding(1251);

            byte[] b = enc.GetBytes(s);

            foreach (var ch in b)
            {
                Console.Write("{0,3:X}",ch);
            }

            Console.WriteLine();

            Console.WriteLine(enc.GetString(b));
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Firebird
Jun 12 2010, 7:52
  
Пост #164



Репутация:   3  
Дух


Группа: Пользователи
Сообщений: 37
С нами с: 18-December 06


(Barmivah @ Apr 11 2010, 10:57) Перейти к цитате

Уважаемые прогеры, у меня назрел вопрос. Собственными силами в нете ответа не нашел.
Итак прогал я шифрование des. И вообщем-то запрогал, даже ответы сходяться smile.gif, но вот беда я не нашел как из введенных букв преобразовать в бинарный код. Сейчас использую Convert.ToString(Convert.ToSByte(fl[i]), 2) но такой вариант не подходит, потому что он не конвертирует кирилицу + нельзя таким методом из бинарника вернуться обратно к тексту.
Сегодня наткнулся на это: System.Text.Encoding COD = System.Text.Encoding.GetEncoding(1251);
Но пока не понял как же им считывать и выводить инфу. Может кто сталкивался - подскажите.


Какая изначально кодировка, 1251 или, всё-же UTF?

В зависимости от кодировки:
Encoding enc = Encoding.GetEncoding(1251);

У класса Encoding есть набор наиболее часто применяемых кодировок, например:
Encoding enc = Encoding.UTF8;
Encoding enc = Encoding.ASCII;

С помощью этой кодировки можно выполнять преобразования:

string str = "Hello Wordl!";
Byte[] data = enc.GetBytes(str); // в массив байтов
string stringData = enc.GetString(data); // обратно в строку

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



User is offlineProfile CardPM
Go to the top of the page
+Quote Post
KzD
Jul 15 2010, 21:19
  
Пост #165



Репутация:   9  
Дух


Группа: Пользователи
Сообщений: 93
С нами с: 21-March 10


Доброго времени суток всем, имею следующую проблему. Нужно определять от каого юзера запущена программа
ОС: Windows
.NET Framework 3.5
Visual Studio 2008
C#

Банально вытащить имя юзера от кого запущен процес. Пытался на примере хрома.
            Process chrome;
            Process[] temp;
            
            temp = Process.GetProcessesByName("chrome");
            chrome = temp[0];
Собственно сабж, каким образм имея chrome как представителя класса System.Diagnostics.Process достать имя юзера?

Подключения библиотек не боюсь (они не кусаются), уже работал с user32.dll, знаю как это делается, но мне нужны какие-то более-менее рабочие примеры, т.к. гуглом ничего не нагуглил. Пусть даже не через System.Diagnostics, не имеет значения как.

Все пытаются обращаться к Process.StartInfo.UserName для получения имени юзера, но это фэйл, в уже рабочих процесах все поля в StartInfo пустые, т.к. этот клас нужнен только для запуска процесов.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
aminchenko
Jul 16 2010, 15:14
  
Пост #166



Репутация:   133  
Активист
*

Группа: Пользователи
Сообщений: 239
С нами с: 21-December 06


(KzD @ Jul 15 2010, 22:19) Перейти к цитате

Доброго времени суток всем, имею следующую проблему. Нужно определять от каого юзера запущена программа

Смотри в сторону System.Management

Посмотри пример - думаю разберёшься:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


Сообщение отредактировал aminchenko - Jul 16 2010, 15:16
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
undertaker
Jul 16 2010, 21:07
  
Пост #167



Репутация:   12  
Дух


Группа: Validating
Сообщений: 45
С нами с: 26-April 06


public class InteropHelper
{
[DllImport("advapi32.dll", SetLastError = true)]
public static extern Boolean OpenProcessToken(IntPtr processHandle, UInt32 desiredAccess, out IntPtr tokenHandle);

[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern Boolean CloseHandle(IntPtr hObject);

public static String GetProcessIdentity(Process process)
{
IntPtr tokenHandle = IntPtr.Zero;
try
{
OpenProcessToken(process.Handle, 0x0008, out tokenHandle);
WindowsIdentity identity = new WindowsIdentity(tokenHandle);
return identity.Name;
}

finally
{
if (tokenHandle != IntPtr.Zero)
CloseHandle(tokenHandle);
}
}
}

GetProcessIdentity и вернет имя учетной записи.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Graf_Igor
Jul 19 2010, 9:43
  
Пост #168



Репутация:   0  
Дух


Группа: Validating
Сообщений: 2
С нами с: 22-June 10


добрый день. у меня вопрос. никак не могу понять, в чем разница между интерфейсом и абстрактным классом?
P.S: если можна пример использования
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
olehzloy
Jul 19 2010, 17:55
  
Пост #169



Репутация:   24  
Дух


Группа: Пользователи
Сообщений: 126
С нами с: 21-December 09


(Graf_Igor @ Jul 19 2010, 10:43) Перейти к цитате

добрый день. у меня вопрос. никак не могу понять, в чем разница между интерфейсом и абстрактным классом?
P.S: если можна пример использования


Когда ты создаешь интерфейс, ты только описываешь все методы интерфейса. Когда ты создаешь абстрактный класс ты можешь создать как обычные методы(описание+реализация), так и абстрактные(только описание). Таким образом если ты опишешь 10 классов, реализующих интерфейс, но имеющих по 2 абсолютно одинаковых метода тебе придётся 20 раз писать одно и тоже. в то же время ты можешь создать абстракный класс и унаследовать его 10 производными классами. Результат один и тот же, но 2 способом кода намного меньше smile.gif . Плюс если захочешь модифицировать эти функции во втором случае всё будет намного легче)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Graf_Igor
Jul 19 2010, 19:38
  
Пост #170



Репутация:   0  
Дух


Группа: Validating
Сообщений: 2
С нами с: 22-June 10


(olehzloy @ Jul 19 2010, 18:55) Перейти к цитате

Когда ты создаешь интерфейс, ты только описываешь все методы интерфейса. Когда ты создаешь абстрактный класс ты можешь создать как обычные методы(описание+реализация), так и абстрактные(только описание). Таким образом если ты опишешь 10 классов, реализующих интерфейс, но имеющих по 2 абсолютно одинаковых метода тебе придётся 20 раз писать одно и тоже. в то же время ты можешь создать абстракный класс и унаследовать его 10 производными классами. Результат один и тот же, но 2 способом кода намного меньше smile.gif . Плюс если захочешь модифицировать эти функции во втором случае всё будет намного легче)

о, спасибо большое. очень хорошо объяснили. dance4.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
KzD
Jul 22 2010, 19:18
  
Пост #171



Репутация:   9  
Дух


Группа: Пользователи
Сообщений: 93
С нами с: 21-March 10


2aminchenko, 2undertaker:
Спасибо большое обоим, всё работает. Даже не знаю, что лучше использовать.

З.Ы. ещё 2aminchenko я бы использовал не Console.Read(); а Console.ReadKey(true);
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
twix
Aug 26 2010, 20:56
  
Пост #172



Репутация:   135  
Cтаршой
**

Группа: Пользователи
Сообщений: 621
С нами с: 21-December 07


Посоветуйте идеальную книгу по С#, типо как Лафоре по С++. Нужен как синтаксис языка так и принципы ООП, чтобы повторить, так сказать. Буду очень благодарен.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
olehzloy
Aug 26 2010, 22:54
  
Пост #173



Репутация:   24  
Дух


Группа: Пользователи
Сообщений: 126
С нами с: 21-December 09


Троелсен. Язык программирование на C# и платформа .NET X.X Лучшей книги для новичка не встречал.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Ko3bIPb
Sep 6 2010, 11:47
  
Пост #174



Репутация:   1  
Дух


Группа: Пользователи
Сообщений: 11
С нами с: 14-March 10


Я думаю что для новичка - лутше всего это практика. Например есть задача создать сайт с возможностью загрузки файлов. Или написать какойто проигрыватель. Ставь задачу и делай, а вот курить теорию толку будет мало.

Из теории реккомендую:
Кента Бека
Мартина Фаулера

И культовую книгу "Рефакторинг с использованием шаблонов проектирования".

Все дело в практике)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
olehzloy
Sep 8 2010, 13:23
  
Пост #175



Репутация:   24  
Дух


Группа: Пользователи
Сообщений: 126
С нами с: 21-December 09


А я бы наоборот советовал не оч налегать на самообучение практикой. Ибо именно так рождаются быдлокодеры sad.gif Лучше прочитать книгу. а потом шот руками трогать. Кста для изучения шарпа лучше не с сайтов, а из десктоп приложений начинать.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
twix
Sep 8 2010, 17:07
  
Пост #176



Репутация:   135  
Cтаршой
**

Группа: Пользователи
Сообщений: 621
С нами с: 21-December 07


Учить только с помощью практики это очень долгий и тернистый путь, мне хватило метода проб и ошибок с С++. Тут хочется более серьезно подойти, чтобы была теор база, которую потом подкрепить практикой.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
twix
Sep 28 2010, 18:16
  
Пост #177



Репутация:   135  
Cтаршой
**

Группа: Пользователи
Сообщений: 621
С нами с: 21-December 07


Есть какой-то класс и такая проблемка:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
olehzloy
Sep 28 2010, 23:44
  
Пост #178



Репутация:   24  
Дух


Группа: Пользователи
Сообщений: 126
С нами с: 21-December 09


(twix @ Sep 28 2010, 19:16) Перейти к цитате

Есть какой-то класс и такая проблемка:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «



Не уверен, что решение оч правильное, но можешь сделать наследника Класс1_1, который переопределит ТоСтринг, чтобы возвращать имя и возраст. В 1 листбокс отправь обьект, как Класс1, а в другой как Класс1_1
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Gengzu
Sep 29 2010, 23:19
  
Пост #179



Репутация:   8  
Дух


Группа: Пользователи
Сообщений: 190
С нами с: 2-July 07


(twix @ Sep 28 2010, 19:16) Перейти к цитате

Есть какой-то класс и такая проблемка:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «



В данном случае решение будет таким.
1. Сам класс:

    
public class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }

        public string NameAndAge
        {
            get
            {
                return Name + ", " + Age;
            }
        }
    }


2. Инициализация массива. Как пример. Может быть и по другому:


            Person[] persons = new Person[]
                                   {
                                       new Person {Name = "Вася", Age = 16},
                                       new Person {Name = "Петя", Age = 18},
                                       new Person {Name = "Маша", Age = 14},
                                   };


3. Отображение. Первый листбокс отображает только имя, второй имя и после запятой возраст:


            this.listBox1.DataSource = persons;
            this.listBox1.DisplayMember = "Name";

            this.listBox2.DataSource = persons;
            this.listBox2.DisplayMember = "NameAndAge";


Последние два куска можно засунуть куда-нить в конструктор формы, или Form.OnLoad
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
di_ez
Dec 2 2010, 19:55
  
Пост #180



Репутация:   14  
Активист
*

Группа: Пользователи
Сообщений: 240
С нами с: 1-January 08


Интересует небольшая мелочь. Как в Си-шарп передать функцию в другую функцию параметром?
ЗЫ. Я знаю что в С++ такое возможно, путем создания указателя на ф-цию, но может кто-то знает как сделать такое тут
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
JONSON
Mar 24 2015, 14:10
  
Пост #1



Репутация:   176  
Постоялец
***

Группа: Пользователи
Сообщений: 1 057
С нами с: 17-January 08


del

Сообщение отредактировал JONSON - Aug 14 2015, 10:38
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
2 Страницы  « <  
Reply to this topicStart new topic
Ответов(160 - 34)

2 Страницы  « <
Reply to this topicStart new topic

 



- Упрощённая версия
Сейчас: 9th August 2026 - 16:28
Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст.