Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Ответ
 
Опции темы
Старый 06.07.2010, 22:15   #1
-= Элитный Мастер =-
 Главнокомандующий
Аватар для Kitsune
 
Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
 
Post Читаем/Сохраняем файл настроек. C# version

В данном гайде я расскажу вам как можно просто сохранять и загружать настройки вашей программы.

Приступим:
  1. Откроем или созданим новый проект. Накидаем на форму элементы управления, в которых мы будем отображать и редактированить наши настройки.
    Я накидал 2 текстбокса и 2 лейбла и 2 кнопки

    [Ссылки могут видеть только зарегистрированные пользователи. ]

  2. Теперь переходим к коду.
    Создадим класс, который будет отображать структуру наших настроек.
    Код:
    public class Settings
    {
     // Свойство Email
     public String Email { get; set; }
     // Свойство Password
     public String Password { get; set; }
     
     // Конструктор класса
     public Settings(string email, string password)
     {
       this.Email = email; this.Password = password;
     }
    }
    Теперь создадим класс, который будет производить чтение/записать настроек из файла
    Подключим вначале неймспейс, открывающий нам возможности по работе с файлами
    Код:
    using System.IO;
    Теперь опишем наш класс
    Код:
    public class SettingsManager
    {
     // Путь к файлу, в котором будут наши настройки
     private string fileName = "settings.conf";
    
     // Конструктор
     public SettingsManager() { }
    
     // Метод сохранения настроек в файл
     public void Save(Settings settings)
     {
       try
       {
         // Создаем объект класса, который будет производить запись в файл
         using (StreamWriter sw = new StreamWriter(File.Open(fileName, FileMode.Create)))
         {
           // Записываем строку (наш емейл)
           sw.WriteLine(settings.Email);
           // Записываем строку (наш пароль)
           sw.WriteLine(settings.Password);
           // Закрываем писатель
           sw.Close();
         }
       }
       catch (Exception ex)
       {
         MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
       }
     }
    
     // Метод загрузки настроек из файла
     public Settings Load()
     {
       try
       {
         // Проверка на существование файла
         if (File.Exists(fileName))
         {
           // Создадим объект класса пустой, который мы потом заполним данными при загрузке
           Settings rtnSetting = new Settings("", "");
           // Создаем объект класса, который будет читать наш файл настроек
           using (StreamReader sr = new StreamReader(File.Open(fileName, FileMode.Open)))
           {
             // Читаем 1ую строку, а именно емейл
             rtnSetting.Email = Crypt(sr.ReadLine());
             // Читаем 2ую строку, а именно пароль
             rtnSetting.Password = Crypt(sr.ReadLine());
             // Закрываем читатель
             sr.Close();
           }
           // Возваращаем объект класса настроек после удачного прочтения
           return rtnSetting;
         }
         // Возвращаем ничего, если файла не существует
         return null;
       }
       catch (Exception ex)
       {
         MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
         // Возвращаем ничего, если произошла ошибка
         return null;
       }
     }
    }
  3. Теперь начнем использовать наши 2 самописных класса для наших нужд.
    2 раза кликнем по нашим кнопках "Сохранить" и "Загрузить", чтобы создать методы, которые будут вызываться при нажатии на кнопки.
    Создадим объект класса SettingsManager в теле нашего основного класса
    Код:
    private SettingsManager manager;
    При инициализации нашего главного класса, в моем случаи эта форма, проинициализируем наш объект класса SettingsManager
    Код:
    manager = new SettingsManager();
    Теперь напишем код, выполняемый при нажатии на кнопку "Сохранить".
    Код:
    // Вызываем метод сохранения передавая новый объект класса настроек
    // с нашими данными из текстовых полей
    // tEmail - мой текстбокс, хранящий email
    // tPassword - мой текстбокс, хранящий пароль
    manager.Save(new Settings(tEmail.Text, tPassword.Text));
    Теперь напишем код, выполняемый при нажатии на кнопку "Загрузить".
    Код:
    // Создаем объект класса Settings
    // и загружаем в него данные из файла
    Settings settings = manager.Load();
    // Если данные загрузились,
    // то заполняем текстбоксы
    if (settings != null)
    {
    tEmail.Text = settings.Email;
    tPassword.Text = settings.Password;
    }
    Все, теперь собираем наш проект, тестируем, радуемся
  4. Хотя у нас и получился отличный работоспособный код, но пароль хранить в не защифрованном виде не безопастно.
    Напишем простейший метод, который будет шифровать наши данные.
    Код:
    // Метод шифрующий входящую строку
    private string Crypt(string text)
    {
    // Создаем строку, которую будет возвращать
    string rtnStr = string.Empty;
    // В цикле перебираем каждый символ входящей строки
    foreach (char c in text)
    {
    // Добавляем в возвращаемую строку наш переработанный символ
    // (int)c - переводи символ в его код
    // ((int) c ^ 52) - применение XOR к номеру символа
    // (char)((int) c ^ 52) - получаем символ из измененного номера
    // Число, которым мы XORим можете поставить любое. Эксперементируйте.
    rtnStr += (char)((int)c ^ 52);
    }
    return rtnStr;
    }
    Вставим этот метод в тело класса SettingsManager и добавить шифрование при записи и дешифрование при чтении.
    Код:
    ...
    sw.WriteLine(Crypt(settings.Email));
    sw.WriteLine(Crypt(settings.Password));
    ...
    rtnSetting.Email = Crypt(sr.ReadLine());
    rtnSetting.Password = Crypt(sr.ReadLine());
    ...
    Запускаем, наслаждаемся, радуемся.

    Пример зашифрованной строки
    Цитата:
    [email protected]
    tratata

    Цитата:
    @QG@t@QG@FA
    @FU@U@U

    Полный код главной формы:
    Код:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    
    using System.IO;
    
    namespace SaveSettingsInFile
    {
     public partial class Main : Form
     {
       public class Settings
       {
         // Свойство Email
         public String Email { get; set; }
         // Свойство Password
         public String Password { get; set; }
         
         // Конструктор класса
         public Settings(string email, string password)
         {
           this.Email = email; this.Password = password;
         }
       }
    
       public class SettingsManager
       {
         // Путь к файлу, в котором будут наши настройки
         private string fileName = "settings.conf";
    
         // Конструктор
         public SettingsManager() { }
    
         // Метод сохранения настроек в файл
         public void Save(Settings settings)
         {
           try
           {
             // Создаем объект класса, который будет производить запись в файл
             using (StreamWriter sw = new StreamWriter(File.Open(fileName, FileMode.Create)))
             {
               // Записываем строку (наш емейл)
               sw.WriteLine(Crypt(settings.Email));
               // Записываем строку (наш пароль)
               sw.WriteLine(Crypt(settings.Password));
               // Закрываем писатель
               sw.Close();
             }
           }
           catch (Exception ex)
           {
             MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
           }
         }
    
         // Метод загрузки настроек из файла
         public Settings Load()
         {
           try
           {
             // Проверка на существование файла
             if (File.Exists(fileName))
             {
               // Создадим объект класса пустой, который мы потом заполним данными при загрузке
               Settings rtnSetting = new Settings("", "");
               // Создаем объект класса, который будет читать наш файл настроек
               using (StreamReader sr = new StreamReader(File.Open(fileName, FileMode.Open)))
               {
                 // Читаем 1ую строку, а именно емейл
                 rtnSetting.Email = Crypt(sr.ReadLine());
                 // Читаем 2ую строку, а именно пароль
                 rtnSetting.Password = Crypt(sr.ReadLine());
                 // Закрываем читатель
                 sr.Close();
               }
               // Возваращаем объект класса настроек после удачного прочтения
               return rtnSetting;
             }
             // Возвращаем пустой, если файла не существует
             return null;
           }
           catch (Exception ex)
           {
             MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
             // Возвращаем, если произошла ошибка
             return null;
           }
         }
    
         // Метод шифрующий входящую строку
         private string Crypt(string text)
         {
           // Создаем строку, которую будет возвращать
           string rtnStr = string.Empty;
           // В цикле перебираем каждый символ входящей строки
           foreach (char c in text)
           {
             // Добавляем в возвращаемую строку наш переработанный символ
             // (int)c - переводи символ в его код
             // ((int) c ^ 52) - применение XOR к номеру символа
             // (char)((int) c ^ 52) - получаем символ из измененного номера
             // Число, которым мы XORим можете поставить любое. Эксперементируйте.
             rtnStr += (char)((int)c ^ 52);
           }
           return rtnStr;
         }
       }
    
       private SettingsManager manager;
    
       public Main()
       {
         InitializeComponent();
    
         manager = new SettingsManager();
       }
    
       private void bLoad_Click(object sender, EventArgs e)
       {
         // Создаем объект класса Settings
         // и загружаем в него данные из файла
         Settings settings = manager.Load();
         // Если данные загрузились,
         // то заполняем текстбоксы
         if (settings != null)
         {
           tEmail.Text = settings.Email;
           tPassword.Text = settings.Password;
         }
       }
    
       private void bSave_Click(object sender, EventArgs e)
       {
         // Вызываем метод сохранения передавая новый объект класса настроек
         // с нашими данными из текстовых полей
         // tEmail - мой текстбокс, хранящий email
         // tPassword - мой текстбокс, хранящий пароль
         manager.Save(new Settings(tEmail.Text, tPassword.Text));
       }
     }
    }
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.

Последний раз редактировалось Kitsune; 06.07.2010 в 22:18.
  Ответить с цитированием
12 пользователя(ей) сказали cпасибо:
0xFF (16.07.2010), Грант97 (31.01.2015), крайслер (19.07.2013), FreePVP))) (05.02.2011), Leo_ня (10.07.2010), Moisei (06.07.2010), Nickolas (07.07.2010), object (14.09.2011), OveRKinG (26.07.2010), warl0ck (07.07.2010), werseche (03.03.2012), Zhyk (08.07.2010)
Старый 07.07.2010, 11:46   #2
Знатный Читер
 Разведчик
Аватар для witcherD
 
witcherD на правильном путиwitcherD на правильном пути
Регистрация: 26.03.2010
Сообщений: 31
Популярность: 105
Сказал(а) спасибо: 1
Поблагодарили 54 раз(а) в 22 сообщениях
 
По умолчанию Re: Читаем/Сохраняем файл настроек. C# version

Класс System.IO.File предоставляет ряд статических методов, которые могут облегчить выполнение одноразовых операций над файлами, например, создание, запись, чтение и т.д.
Цитата:
using (StreamWriter sw = new StreamWriter(File.Open(fileName, FileMode.Create)))
{
// Записываем строку (наш емейл)
sw.WriteLine(Crypt(settings.Email));
// Записываем строку (наш пароль)
sw.WriteLine(Crypt(settings.Password));
// Закрываем писатель
sw.Close();
}

в некоторых случаях удобно заменить на
Цитата:
File.WriteAllText(fileName, settings.Email + Environment.NewLine + settings.Password);

  Ответить с цитированием
Старый 10.07.2010, 11:14   #3
Знатный Читер
 Фельдмаршал
Аватар для Leo_ня
 
Leo_ня в состоянии испепелить взглядомLeo_ня в состоянии испепелить взглядомLeo_ня в состоянии испепелить взглядомLeo_ня в состоянии испепелить взглядомLeo_ня в состоянии испепелить взглядомLeo_ня в состоянии испепелить взглядомLeo_ня в состоянии испепелить взглядомLeo_ня в состоянии испепелить взглядомLeo_ня в состоянии испепелить взглядомLeo_ня в состоянии испепелить взглядомLeo_ня в состоянии испепелить взглядом
Регистрация: 10.06.2008
Сообщений: 965
Популярность: 5501
Сказал(а) спасибо: 786
Поблагодарили 942 раз(а) в 598 сообщениях
Отправить сообщение для Leo_ня с помощью ICQ Отправить сообщение для Leo_ня с помощью Telegram
 
По умолчанию Re: Читаем/Сохраняем файл настроек. C# version

Описанный способ не удобен в том случае, если предполагается, что пользователь программы будет сам изменять файл настроек вручную (текстовым редактором).

В этом случае лучше сохранять параметры со своими ключами.
К примеру, чтобы файл настроек выглядил так:
Цитата:
[Settings]
Email=[Ссылки могут видеть только зарегистрированные пользователи. ]
Password=qwerty

Здесь данные находятся в секции Settings, у каждой записи свой ключ. E-mail адрес записан с ключом Email, а пароль с ключом Password. Пользователь легко может догадаться, для чего каждая строчка.

Если хочется готового решение, то можно использовать Win32API. Конкретно, тут подойдут функции WritePrivateProfileString, GetPrivateProfileString. Прочитать о них можно здесь: [Ссылки могут видеть только зарегистрированные пользователи. ]

В C# понадобится использовать DllImport.
Код:
        [DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string section,
            string key,string val,string filePath);
        [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section,
                 string key,string def, StringBuilder retVal,
            int size,string filePath);
Гляньте на [Ссылки могут видеть только зарегистрированные пользователи. ], чтобы не писать это всё вручную.


Также вы можете самостоятельно открывать файл настрок и обрабатывать строки. Понадобится читать каждую строчку до знака "=". Сравнивать прочитанное с нужным параметром, а потом уже читать\записывать значение.
  Ответить с цитированием
Старый 22.07.2010, 22:11   #4
-= Элитный Мастер =-
 Главнокомандующий
Аватар для Kitsune
 
Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
 
По умолчанию Re: Читаем/Сохраняем файл настроек. C# version

Leo_ня, данный гайд лишь показывает правильную стуктуру кода и логику сохранения/загрузки простых конфигов.

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

Файл с натройками можно например назвать kernel.dll и не важно, что содержание его будет совсем не как у библиотеки, но большинство пользователей не додумается, что это наш файл с настройками.
________________
Fireball - Быстрое снятие и загрузка скриншотов на хостинг.
  Ответить с цитированием
Пользователь сказал cпасибо:
MiKS007 (13.02.2011)
Старый 27.11.2010, 16:31   #5
Заблокирован
 Разведчик
Аватар для yjksr
 
yjksr на правильном пути
Регистрация: 14.06.2010
Сообщений: 34
Популярность: 62
Сказал(а) спасибо: 47
Поблагодарили 47 раз(а) в 27 сообщениях
Отправить сообщение для yjksr с помощью ICQ Отправить сообщение для yjksr с помощью Skype™
 
По умолчанию Re: Читаем/Сохраняем файл настроек. C# version

а че это?)
  Ответить с цитированием
Старый 04.12.2010, 19:06   #6
 Пехотинец
Аватар для Vlad2891
 
Vlad2891 вызывает надежду
Регистрация: 03.01.2010
Сообщений: 97
Популярность: -41
Сказал(а) спасибо: 217
Поблагодарили 67 раз(а) в 32 сообщениях
Отправить сообщение для Vlad2891 с помощью ICQ
 
По умолчанию Re: Читаем/Сохраняем файл настроек. C# version

TBX1n, с какой целью вы делаете такие замудренные гайды? Весь ваш код в 3-4 раза превысил мой код на шарпе, только у меня кроме импорта из файл - используется симметричное шифрование (как вы сказали выше "для фейков" это бесценно)
________________
  Ответить с цитированием
Старый 13.02.2011, 10:49   #7
Заблокирован
 Сержант
Аватар для MiKS007
 
MiKS007 определенно авторитетная личностьMiKS007 определенно авторитетная личностьMiKS007 определенно авторитетная личностьMiKS007 определенно авторитетная личностьMiKS007 определенно авторитетная личностьMiKS007 определенно авторитетная личностьMiKS007 определенно авторитетная личностьMiKS007 определенно авторитетная личностьMiKS007 определенно авторитетная личность
Регистрация: 11.12.2010
Сообщений: 130
Популярность: 1146
Сказал(а) спасибо: 42
Поблагодарили 191 раз(а) в 51 сообщениях
Отправить сообщение для MiKS007 с помощью ICQ Отправить сообщение для MiKS007 с помощью Telegram Отправить сообщение для MiKS007 с помощью Yahoo Отправить сообщение для MiKS007 с помощью Skype™
 
По умолчанию Re: Читаем/Сохраняем файл настроек. C# version

TBX1n, Наконец то, спасибо, а то погулили там такая ересь!
  Ответить с цитированием
Старый 13.02.2011, 10:55   #8
Читер-спонсор
 Рыцарь-защитник
Аватар для Nickitee
 
Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(
Регистрация: 28.08.2009
Сообщений: 603
Популярность: 19129
Золото Zhyk.Ru: 500
Сказал(а) спасибо: 84
Поблагодарили 602 раз(а) в 321 сообщениях
 
По умолчанию Re: Читаем/Сохраняем файл настроек. C# version

Цитата:
Сообщение от Vlad2891Посмотреть сообщение
TBX1n, с какой целью вы делаете такие замудренные гайды? Весь ваш код в 3-4 раза превысил мой код на шарпе, только у меня кроме импорта из файл - используется симметричное шифрование (как вы сказали выше "для фейков" это бесценно)

Покажи мне свой код на СиШарпе
________________
We are Ducks. We are birds. We like bread. We cryack. Cryack.
  Ответить с цитированием
Старый 09.04.2011, 21:52   #9
 Разведчик
Аватар для pashtet232
 
pashtet232 никому не известный тип
Регистрация: 09.04.2011
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Читаем/Сохраняем файл настроек. C# version

Я конечно понимаю что сейчас каждый мнит себя мега прогером научившись писать на управляемом языке. Но если уж лезите в это то хотя бы следуйте рекомендациям разработчиков этого самого языка. А именно для хранения настроек рекомендуется использовать класс Settings наследуемый от класса ApplicationSettingsBase тоесть грубо говоря в VS на вкладочке Settings в настройке проекта забить список необходимых переменных и обращатся к ним типа Settings.Default.<variable>.
В данном варианте объекты имеют зоны видемости уровня приложения либо пользователя.
А главное для шифрования сам же мелкософт рекомендует использовать класс RijndaelManaged который во первых полностью реализован на управляемом коде, а во вторых отвечает стандартам стойкости алгоритмов. Не надо выдумывать велосипед там где уже давно идут поездаю
  Ответить с цитированием
Пользователь сказал cпасибо:
KiRo_Lajt (08.02.2014)
Старый 14.04.2011, 07:14   #10
Читер-спонсор
 Рыцарь-защитник
Аватар для Hermein
 
Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(
Регистрация: 14.01.2011
Сообщений: 633
Популярность: 28087
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 90
Поблагодарили 717 раз(а) в 374 сообщениях
Отправить сообщение для Hermein с помощью ICQ Отправить сообщение для Hermein с помощью Skype™
 
По умолчанию Re: Читаем/Сохраняем файл настроек. C# version

Цитата:
Сообщение от pashtet232Посмотреть сообщение
Я конечно понимаю что сейчас каждый мнит себя мега прогером научившись писать на управляемом языке. Но если уж лезите в это то хотя бы следуйте рекомендациям разработчиков этого самого языка. А именно для хранения настроек рекомендуется использовать класс Settings наследуемый от класса ApplicationSettingsBase тоесть грубо говоря в VS на вкладочке Settings в настройке проекта забить список необходимых переменных и обращатся к ним типа Settings.Default.<variable>.
В данном варианте объекты имеют зоны видемости уровня приложения либо пользователя.
А главное для шифрования сам же мелкософт рекомендует использовать класс RijndaelManaged который во первых полностью реализован на управляемом коде, а во вторых отвечает стандартам стойкости алгоритмов. Не надо выдумывать велосипед там где уже давно идут поездаю

Я с тобой согласен, чтобы сохранить, а затем загрузить настройки нужно всего 4 строки кода! На формлоад и закрытие формы(для 2 полей-логин/пароль, id/auth)
  Ответить с цитированием
Старый 08.01.2012, 16:24   #11
 Разведчик
Аватар для banality
 
banality никому не известный тип
Регистрация: 28.12.2011
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Читаем/Сохраняем файл настроек. C# version

а возможно, чтоб этот файл был в ресурсах проги? Ну чтоб в экзешнике хранился, там же изменялся и сохранялся, чтоб с собой его не тоскать,м?
  Ответить с цитированием
Старый 15.01.2012, 22:01   #12
-= Элитный Мастер =-
 Главнокомандующий
Аватар для Kitsune
 
Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(Kitsune сломал счётчик популярности :(
Регистрация: 20.01.2010
Сообщений: 1,539
Популярность: 22780
Золото Zhyk.Ru: 600
Сказал(а) спасибо: 43
Поблагодарили 1,717 раз(а) в 538 сообщениях
 
По умолчанию Re: Читаем/Сохраняем файл настроек. C# version

banality, нет. Невозможно изменять главный исполняемый файл запущенного приложения.
  Ответить с цитированием
Старый 17.07.2012, 19:55   #13
 Старший сержант
Аватар для крайслер
 
крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(крайслер сломал счётчик популярности :(
Регистрация: 04.02.2011
Сообщений: 198
Популярность: 12244
Сказал(а) спасибо: 453
Поблагодарили 435 раз(а) в 242 сообщениях
Отправить сообщение для крайслер с помощью Skype™
 
По умолчанию Re: Читаем/Сохраняем файл настроек. C# version

Цитата:
Сообщение от Teest[2]Посмотреть сообщение
У меня вот такая ошибка:

Переименуй элементы или измени код на свои имена...
tEmail = textBox1
tPassword = textBox1
Для Crypt'а видимо забыл указать:
Цитата:
private string Crypt(string text)
{
// Создаем строку, которую будет возвращать
string rtnStr = string.Empty;
// В цикле перебираем каждый символ входящей строки
foreach (char c in text)
{
// Добавляем в возвращаемую строку наш переработанный символ
// (int)c - переводи символ в его код
// ((int) c ^ 52) - применение XOR к номеру символа
// (char)((int) c ^ 52) - получаем символ из измененного номера
// Число, которым мы XORим можете поставить любое. Эксперементируйте.
rtnStr += (char)((int)c ^ 52);
}
return rtnStr;
}

________________

-Отложи на послезавтра то что можешь сделать сегодня, и тогда у тебя появятся два свободных дня!
  Ответить с цитированием
Старый 15.07.2013, 20:47   #14
 Разведчик
Аватар для CoMMoN86
 
CoMMoN86 никому не известный тип
Регистрация: 03.07.2013
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Читаем/Сохраняем файл настроек. C# version

Kitsune, а можно более подробнее описать как мне напримерр это к полям ввода выводить и/или в настройках сохранения.
  Ответить с цитированием
Старый 16.07.2013, 00:37   #15
Читер-спонсор
 Рыцарь-защитник
Аватар для Nickitee
 
Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(Nickitee сломал счётчик популярности :(
Регистрация: 28.08.2009
Сообщений: 603
Популярность: 19129
Золото Zhyk.Ru: 500
Сказал(а) спасибо: 84
Поблагодарили 602 раз(а) в 321 сообщениях
 
По умолчанию Re: Читаем/Сохраняем файл настроек. C# version

Цитата:
Сообщение от CoMMoN86Посмотреть сообщение
Kitsune, а можно более подробнее описать как мне напримерр это к полям ввода выводить и/или в настройках сохранения.

Yukikaze писал про сериализацию класса, гораздо удобнее.
________________
We are Ducks. We are birds. We like bread. We cryack. Cryack.
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Уязвимость] Читаем старый или чужой личный чат pr1nt Баги, читы и статьи по Point Blank 4 19.07.2010 14:05
Описание настроек L2Walker Неrо Статьи и описания по Lineage 2 2 03.07.2010 03:24
FAQ - Читаем толстые .pdf-файлы на PSP object PSP 0 14.05.2010 17:06
[Обсуждение] Досчитаем до 1 000 000 000 DeMoN:) Треп 150 25.03.2010 10:32

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 10:02.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net