Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C#, NCF] работа с xml-файлом, создание, чтение, запись 
V
    Опции темы
VampirDX
Дата 4.10.2010, 03:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 24.5.2007
Где: Россия, Москва

Репутация: нет
Всего: нет



Создавал тему в мобильных устройствах тут, но ответа так и не дождался. Подумал, может быть, тут подскажете. 


Продублирую вопрос: 
Цитата
Подскажите, как создать xml файл для мобильного устройства? То что есть отличия от стандартного .net это я уже понял.

PM MAIL   Вверх
mrbrooks
Дата 4.10.2010, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 7
Всего: 306



VampirDX, linqtoxml - отличное решение.
PM MAIL   Вверх
VampirDX
Дата 4.10.2010, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 24.5.2007
Где: Россия, Москва

Репутация: нет
Всего: нет



А без использования дополнительных инструментов это сделать нереально?
PM MAIL   Вверх
Experimenter
Дата 4.10.2010, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 430
Регистрация: 8.5.2007
Где: Уфа

Репутация: 8
Всего: 17



VampirDX,

1. XmlWriter
2. XmlDocument
3. XmlSerializer

Все эти классы работают и в .NET CF


--------------------
public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){
    if(zlo1 < zlo2) return zlo1;
    else if(zlo1 > zlo2) return zlo2;
    else throw new Exception("Kill yourself by the wall"); }
PM WWW ICQ   Вверх
mrbrooks
Дата 4.10.2010, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 7
Всего: 306



Цитата(VampirDX @  4.10.2010,  10:05 Найти цитируемый пост)
А без использования дополнительных инструментов это сделать нереально? 

а linqtoxml к ним относится? smile
PM MAIL   Вверх
VampirDX
Дата 4.10.2010, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 24.5.2007
Где: Россия, Москва

Репутация: нет
Всего: нет



mrbrooks а разве linq идет под mobile? и разве для использования linq не надо подключать дополнительные библиотеки?


Experimenter можешь привести пример, хотя бы создания файла, работающий под эмулятором? ибо у меня уже голова пухнет, но гад файл не создает, что работает под обычным windows forms не хочет запускаться под эмулятором кпк

Это сообщение отредактировал(а) VampirDX - 4.10.2010, 16:46
PM MAIL   Вверх
Experimenter
Дата 4.10.2010, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 430
Регистрация: 8.5.2007
Где: Уфа

Репутация: 8
Всего: 17



VampirDX, ты тогда уточни, что это значит "файл не создает", "не хочет запускаться". Какой код юзаешь, покажи? Может он файл создает, но в другом месте сохраняет?


--------------------
public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){
    if(zlo1 < zlo2) return zlo1;
    else if(zlo1 > zlo2) return zlo2;
    else throw new Exception("Kill yourself by the wall"); }
PM WWW ICQ   Вверх
mrbrooks
Дата 5.10.2010, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 7
Всего: 306



Цитата(VampirDX @  4.10.2010,  17:45 Найти цитируемый пост)
mrbrooks а разве linq идет под mobile? и разве для использования linq не надо подключать дополнительные библиотеки?

епт, а это
Цитата(Experimenter @  4.10.2010,  10:35 Найти цитируемый пост)
1. XmlWriter
2. XmlDocument
3. XmlSerializer


тебе чего из вакуума берется? 
PM MAIL   Вверх
VampirDX
Дата 12.10.2010, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 24.5.2007
Где: Россия, Москва

Репутация: нет
Всего: нет



извиняюсь, что не отвечал, болел.

так...
mrbrooks, наверное из вакуума. не знал, что XmlWriter и т.д. относятся к linq.

Код

const string FILENAME = "dbase.xml";

        private void CreateXMLDocument(string filepath)
        {
            XmlTextWriter xtw = new XmlTextWriter(filepath, Encoding.UTF32);
            xtw.WriteStartDocument();
            xtw.WriteStartElement("begin");
            xtw.WriteEndDocument();
            xtw.Close();
        }

        private void WriteToXMLDocument(string filepath, string picturepath)
        {
            XmlDocument xd = new XmlDocument();
            FileStream fs = new FileStream(filepath, FileMode.OpenOrCreate);
            xd.Load(fs);

            // Создаем новую запись USER c аттрибутом следующего id   
            XmlElement path = xd.CreateElement("path");
            path.SetAttribute("picturepath", picturepath);

            XmlText tPath = xd.CreateTextNode(picturepath);

            xd.DocumentElement.AppendChild(path);

            fs.Close();         // Закрываем поток   
            xd.Save(filepath); // Сохраняем файл
        }

        public Form1()
        {
            WriteToXMLDocument(FILENAME, @"C:\pro\gj.jpg");
            InitializeComponent();
        }


вот как-бы пример. отлично работает на .net, но на ncf не хочет...
PM MAIL   Вверх
mrbrooks
Дата 12.10.2010, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 7
Всего: 306



а какой версией CF пользуешься то?
PM MAIL   Вверх
Experimenter
Дата 12.10.2010, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 430
Регистрация: 8.5.2007
Где: Уфа

Репутация: 8
Всего: 17



VampirDX, распространенная ошибка. Файловая система на КПК немного отличается от настольных. И путь указывается по другому, без метки диска:

Пример:

ПК: C:\Program Files\MyProgram\MyFile.xml
КПК: \Program Files\MyProgram\MyFile.xml


--------------------
public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){
    if(zlo1 < zlo2) return zlo1;
    else if(zlo1 > zlo2) return zlo2;
    else throw new Exception("Kill yourself by the wall"); }
PM WWW ICQ   Вверх
VampirDX
Дата 13.10.2010, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 24.5.2007
Где: Россия, Москва

Репутация: нет
Всего: нет



mrbrooks 3.5


Experimenter, хорошо, но в случае, если указывается просто имя файла, сам файл должен создаться по умолчанию в папке с ехе-шником? Может если сможете накатать рабочий пример просто создания файла, чтобы после запуска его можно было увидеть в папке программы... smile 
PM MAIL   Вверх
Experimenter
Дата 13.10.2010, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 430
Регистрация: 8.5.2007
Где: Уфа

Репутация: 8
Всего: 17



Цитата(VampirDX @ 13.10.2010,  12:51)
Experimenter, хорошо, но в случае, если указывается просто имя файла, сам файл должен создаться по умолчанию в папке с ехе-шником? Может если сможете накатать рабочий пример просто создания файла, чтобы после запуска его можно было увидеть в папке программы... smile

Здесь также имеются различия. Если указывается просто имя файла, то сам файл сохраняется в корневой папке, а не в папке приложения. Чтобы файл увидеть в каталоге программы, надо путь к данному каталогу указывать явно.


--------------------
public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){
    if(zlo1 < zlo2) return zlo1;
    else if(zlo1 > zlo2) return zlo2;
    else throw new Exception("Kill yourself by the wall"); }
PM WWW ICQ   Вверх
VampirDX
Дата 13.10.2010, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 24.5.2007
Где: Россия, Москва

Репутация: нет
Всего: нет



мдя....указал так 
Код

FILENAME = "C:\\dbase.xml";


выдает 
Цитата

Could not find a part of the path '\C:\dbase.xml'

PM MAIL   Вверх
Experimenter
Дата 13.10.2010, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 430
Регистрация: 8.5.2007
Где: Уфа

Репутация: 8
Всего: 17



VampirDX, еще раз: букву диска НЕ указываем.

FILENAME = "dbase.xml";

В этом случае файл будет сохранен в корневой папке.

FILENAME = "\\Program Files\\MyProgram\\dbase.xml";

В этом случае файл будет сохранен в папке Program Files\MyProgram


--------------------
public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){
    if(zlo1 < zlo2) return zlo1;
    else if(zlo1 > zlo2) return zlo2;
    else throw new Exception("Kill yourself by the wall"); }
PM WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0530 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.