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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Открытие файла при старте программы 
V
    Опции темы
djezul
Дата 13.12.2009, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Добрый вечер всем, мне нужно чтобы когда я выставил в свойствах файла (открывать моей прогой) при старте программы текст бокс заполнялся открытым файлом, подскажите как реализовать пожалуйста.
PM MAIL ICQ Skype   Вверх
diadiavova
Дата 13.12.2009, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



адрес файла передаётся программе как аргумент командной строки под индексом 1


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
djezul
Дата 13.12.2009, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А можно пример пожалуйста, потому что в книге найти не могу как это реализовать, пытаюсь сделать примерно так 
Код

 public MainWindow(string[] args)
        {
            if (args[1] == "")
            {
                InitializeComponent();
            }
            else
            {
                readFile(args[1]);
            }
            Text.Text = "";
        }

У меня WPF приложение. Погуглил, тоже ничего нормального не нашёл(возможно плохо искал)
PM MAIL ICQ Skype   Вверх
diadiavova
Дата 13.12.2009, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Это надо делать после инициализации компонентов, а не вместо и проверять надо на наличие аргументов, а не на содержимое и в случае если такой аргумент имеется проверить файл ли это.
Код

var args = Environment.GetCommandLineArgs();
if(args.length > 1)
{
    var fileName = args[1];
    try
    {
        //код загрузки
    }
    catch
    {
        //обработка ошибки(если файла не существует или строка вообще не является имнем файла)
    }
}
Если это делается в методе мэйн, то аргументы можно и твоим способом получить, но можно это сделать к примеру в обработчике события Load формы.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
djezul
Дата 13.12.2009, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А можете пожалуйста пример аргументов которые получает программа, так как сделал так 
Код

public MainWindow()
        {
            InitializeComponent();
            var args = Environment.GetCommandLineArgs();
            if(args.Length > 1)
            {
                var fileName = args[1];
                try
                {
                    readFile(args[1]);
                }
                catch(IOException ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
            Text.Text = "";
        }

не работает, хочу посмотреть в дебагере (задав аргумент вручную), возможно есть другой способ , использую VS2010 beta 2

Добавлено через 54 секунды
Ах да, исключение не вылетает.
PM MAIL ICQ Skype   Вверх
diadiavova
Дата 13.12.2009, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Это не впф и не 2010, но принцип тот же, открой с помощью этой проги текстовый файл и он отобразится в поле(без учёта кодировки ессно).
Цитата(djezul @  13.12.2009,  22:40 Найти цитируемый пост)
Ах да, исключение не вылетает. 

Оно и не должно вылетать. Исключение вылетит если, например, программа будет запущена из коммандной строки и ей будет переданкакой-нибудь "левый" аргумент, а так у тебя просто программа получает один аргумент(имя файла самой программы), то есть условие args.Length > 1 не выполняется.

Это сообщение отредактировал(а) diadiavova - 13.12.2009, 23:08

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  LadText.rar 33,90 Kb


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
djezul
Дата 13.12.2009, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо, ваша прога действительно работает, но у меня всё равно что то не так, и я не пойму зачем вам Text , я вроде уже по разному перепробовал  но вылетает 
Код

'The invocation of the constructor on type 'WpfFileReader.MainWindow' that matches the specified binding constraints threw an exception.' Line number '3' and line position '9'.


Вроде делаю всё как у вас
Код

public MainWindow()
        {
            InitializeComponent();
            var args = Environment.GetCommandLineArgs();
            if (args.Length > 1)
            {
                try
                {
                    Text.AppendText(File.ReadAllText(args[1]));
                }
                catch(IOException ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
            Text.Text = args[1].ToString();
        }


Это сообщение отредактировал(а) djezul - 13.12.2009, 23:34
PM MAIL ICQ Skype   Вверх
diadiavova
Дата 13.12.2009, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Цитата(djezul @  13.12.2009,  23:33 Найти цитируемый пост)
Вроде делаю всё как у вас

Не всё. У тебя сначала загружается документ, а потом ты в этот текстбокс добавляешь текст. Уменя это делается в блоке else, а у тебя безо всяких условий. В впф и 10-й студии тоже всё работает

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  WpfApplication1.rar 38,64 Kb


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
djezul
Дата 14.12.2009, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Да, действительно всё дело было в ветке else, спасибо большое , что потратили время на решение моей проблемы!
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

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


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

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


 




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


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

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