Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2009, 19:20   #1
BlincAttack
Пользователь
 
Аватар для BlincAttack
 
Регистрация: 15.09.2009
Сообщений: 28
По умолчанию XML редактирование.

В общем имеется код:
Код:
using System;
using System.Runtime.InteropServices;
using System.Text.RegularExpressions;

class programm
{
    [DllImport("ChilkatDotNet2.dll")]
    public static extern bool LoadXmlFile(string fileName);

    [DllImport("kernel32.dll")]

    public static extern bool SetConsoleTextAttribute(IntPtr hConsoleOutput,
    int wAttributes);

    [DllImport("kernel32.dll")]

    public static extern IntPtr GetStdHandle(uint nStdHandle);

    public static void Main(string[] args)
    {
        uint STD_OUTPUT_HANDLE = 0xfffffff5;
        IntPtr hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
        SetConsoleTextAttribute(hConsole, 12);
        Console.WriteLine("Здравствуйте, вас приветствует бот \"Болтун\".");
    retry:
    onlyname:
        SetConsoleTextAttribute(hConsole, 12);
        Console.Write("Для начала общения введите своё имя: ");
        SetConsoleTextAttribute(hConsole, 15);
        string myname = Console.ReadLine();
        myname = myname.Trim();
    botname:
        SetConsoleTextAttribute(hConsole, 12);
        Console.Write("Теперь введите имя бота с которым хотите общаться: ");
        SetConsoleTextAttribute(hConsole, 15);
        string botname = Console.ReadLine();
        botname = botname.Trim();
        if (myname == "")
        {
            Console.WriteLine("\nSystem: Вы должны обязательно ввести ваше имя!\n");
            goto retry;
        }
        if (botname == "")
        {
            Console.WriteLine("\nSystem: Вы должны обязательно ввести имя бота!\n");
            goto botname;
        }
        if (botname == myname)
        {
            Console.WriteLine("\nSystem: Ваш ник и имя бота не должно совпадать!\n");
            goto onlyname;
        }
        SetConsoleTextAttribute(hConsole, 15);
        Console.WriteLine("\nSystem: Отлично!Можете начинать общаться!");
        Console.WriteLine("System: Чтобы выйти с программы напишите \"!exit\".");
    ask:
        SetConsoleTextAttribute(hConsole, 10);
        Console.Write("\n{0}: ", myname);
        SetConsoleTextAttribute(hConsole, 7);
        string quest = Console.ReadLine();
        string answer = "";
        Chilkat.Xml obj = new Chilkat.Xml();
        obj.LoadXmlFile("bases.xml");
        if (quest == "!exit")
        {
            SetConsoleTextAttribute(hConsole, 15);
            Console.WriteLine("\nSystem: Спасибо за использование нашей программы!");
            Console.WriteLine("System: Нажмите любую клавишу...");
            goto exit;
        }
        
            for (int i = 0; i < obj.NumChildren; i++)
            {
                Chilkat.Xml xmlField = obj.GetChild(i);
                Chilkat.Xml q = xmlField.GetChildWithTag("question");

                for (int j = 0; j < q.NumChildren; j++)
                {
                    Regex rx = new Regex(q.GetChildContentByIndex(j), RegexOptions.IgnoreCase);
                    if (rx.IsMatch(quest))
                    {
                        Chilkat.Xml a = xmlField.GetChildWithTag("answer");
                        Random r = new Random();
                        int k = r.Next(0, a.NumChildren);
                        answer = a.GetChildContentByIndex(k);
                        goto name;
                    }
                }
            }
        name:
            if (answer.Length > 0)
            {
                SetConsoleTextAttribute(hConsole, 14);
                Console.Write("\n{0}: ", botname);
                SetConsoleTextAttribute(hConsole, 7);
                Console.Write("{0}\n", answer); 
            }
            goto ask;
            return;
        exit:
            Console.ReadKey();
        }
    }
Имеется парсер: _http://www.example-code.com/csharp/xml.asp

И имеется xml файл такого формата:
Код:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<base>
<0>
 <question>
	<1>Hello</1>
 </question>
 <answer>
	<0>Превед!</0>
 </answer>
</0>
</base>
Не подскажите как можно сделать редактирование xml напрямую из программы.Например строками "Введите вопрос" и "Введите ответ".
За ранее благодарен!
BlincAttack вне форума Ответить с цитированием
Старый 07.10.2009, 11:30   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Опять ты за свое, я же говорил про сериализацию.
Раз уж так начал делать вот http://www.example-code.com/csharp/csXmlAddRecord.asp
Hollander вне форума Ответить с цитированием
Старый 10.12.2009, 10:23   #3
StitchUA
Новичок
Джуниор
 
Регистрация: 04.12.2009
Сообщений: 2
По умолчанию

Можно LINQ to XML. Довольно просто и интуитивно понятно.
StitchUA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Редактирование Valera24 Помощь студентам 9 11.06.2009 19:41
Фильтровка и редактирование БД rainbow БД в Delphi 1 17.10.2008 12:44
редактирование TDBGrid mm_mauser БД в Delphi 5 29.11.2007 11:39
Редактирование AntiZero Помощь студентам 2 12.11.2007 18:02
редактирование формы РИЯ Помощь студентам 4 31.10.2007 10:53