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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.09.2010, 07:46   #1
Gauss
Форумчанин
 
Аватар для Gauss
 
Регистрация: 26.11.2007
Сообщений: 235
По умолчанию Проблемы с FileStream

Здравствуйте уважаемые форумчане.
У меня такая проблема, хочу чтобы сразу при запуске программа открыла txt файл который находится у меня на диске С.
Код:
using System;
using System.IO;
//using System.Collections.Generic;
//using System.Threading;

namespace zzz 
{
    public class zzz 
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        /// 
        static void Main()
        {
            string sTextFile = @"C:\mm.txt";
            string sLine;
            StreamReader srTest = File.OpenText(sTextFile);
            Console.WriteLine("Preparing to write file contents....");
            while ((sLine = srTest.ReadLine()) != null)
                Console.WriteLine(sLine);
        }

      }
    }
но как ни пробовал, (здесь я сам без блока try-catch записал) сколько разных вариантов из книг не перебирал, он не открывает. А если записать туда какую то строку то запись происходит. Из-за чего не получается открыть файл?
Gauss вне форума Ответить с цитированием
Старый 13.09.2010, 08:37   #2
Руслантус
Наркоман самоучка
Форумчанин
 
Аватар для Руслантус
 
Регистрация: 22.07.2007
Сообщений: 276
По умолчанию

Странно. У меня отлично работает данный код.

Вообще, если возникает какая-то ошибка открытия файла, должно появится исключение. Попробуй ещё раз словить его в блоке try-catch.
#include <мозг.h>
Руслантус вне форума Ответить с цитированием
Старый 13.09.2010, 08:39   #3
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 823
По умолчанию

Попробуй так:
Код:
try
{
        Stream fin = new FileStream("C:\\mm.txt", FileMode.Open);
        StreamReader in = new StreamReader(fin);
}
catch(Exception exc)
{
        Console.WriteLine("Проблема с открытие потока");
}
String s=null;
 while ((s =in.ReadLine()) != null)
                {
                    Console.WriteLine(s);
                }
in.Close();
fin.Close();
Писал сразу здесь,но вроде все должно работать.)
Не давай организму поблажки, каждый день тренируй его в шашки..

Последний раз редактировалось Скарам; 13.09.2010 в 08:42.
Скарам вне форума Ответить с цитированием
Старый 13.09.2010, 09:46   #4
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
По умолчанию

Незнаю правильно ли я тебя понял. Короче у меня таким способом программа выводит на экран содержимое текстового файла:
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplicationTextReader
{
    class Program
    {
        static void Main(string[] args)
        {
            TextReader textReader = new StreamReader(@"C:\Text.txt");
            String text = textReader.ReadToEnd();
            Console.WriteLine(text);
            Console.ReadKey();
        }
    }
}
Casper-SC вне форума Ответить с цитированием
Старый 13.09.2010, 13:43   #5
Gauss
Форумчанин
 
Аватар для Gauss
 
Регистрация: 26.11.2007
Сообщений: 235
По умолчанию

To Casper-SC: да правильно понял, только я хочу чтобы текст не в консоле появлялся а сразу открывался в блокноте. Но твой код тоже не пошел, при компиляции ошибка винды выходит и просит закрыть программу.
To Скарам: Этот код я записал так:
Код:
using System;
using System.IO;

namespace zzz
{
    public class zzz
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        /// 
        static void Main()
        {
            try
            {
                Stream fin = new FileStream("C:\\mm.txt", FileMode.Open);
                StreamReader sr = new StreamReader(fin);
            }

            catch (Exception exc)
            {
                Console.WriteLine("Проблема с открытие потока");
            }

                String s = null;
                while ((s = sr.ReadLine()) != null)
                {
                    Console.WriteLine(s);
                }
                sr.Close();
                fin.Close();

        }
    }
}
Выдает ошибку
The name 'sr' does not exist in the current context
The name 'fin' does not exist in the current context
Кажится не видит переменные которые в try описаны.

Последний раз редактировалось Gauss; 13.09.2010 в 13:51.
Gauss вне форума Ответить с цитированием
Старый 13.09.2010, 14:19   #6
Fataller
Пользователь
 
Регистрация: 04.03.2009
Сообщений: 62
По умолчанию

Конечно, он их и не должен видеть )) переменные, которые внутри каких-то фигурных скобок обозначены, только в них и действуют
Fataller вне форума Ответить с цитированием
Старый 13.09.2010, 15:36   #7
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 823
По умолчанию

Сорри,облажался,вот рабочий вариант.
Код:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Stream fin=null;
            StreamReader sr=null;
            try
            {
                fin= new FileStream("C:\\mm.txt", FileMode.Open);
                sr= new StreamReader(fin);
            }

            catch (Exception exc)
            {
                Console.WriteLine("Проблема с открытием потока");
                Console.Beep();
                Console.ReadKey();
                
            }
            if (sr != null)
            {
                String s = null;
                while ((s = sr.ReadLine()) != null)
                {
                    Console.WriteLine(s);
                }
                sr.Close();
                fin.Close();
                Console.ReadKey();
            }
        }
    }
}
Не давай организму поблажки, каждый день тренируй его в шашки..

Последний раз редактировалось Скарам; 13.09.2010 в 15:40.
Скарам вне форума Ответить с цитированием
Старый 13.09.2010, 16:50   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
да правильно понял, только я хочу чтобы текст не в консоле появлялся а сразу открывался в блокноте.
так надо блокнот запустить чтоль с открытым в нем файлом?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.09.2010, 16:58   #9
Gauss
Форумчанин
 
Аватар для Gauss
 
Регистрация: 26.11.2007
Сообщений: 235
По умолчанию

Скарам Большое спасибо, всё пошло. Только в данном случае он открывает txt файл через консоль, а как можно сделать чтобы txt файл сам открывался?

Цитата:
так надо блокнот запустить чтоль с открытым в нем файлом?
Да, то есть программно открыть блокнот.
Gauss вне форума Ответить с цитированием
Старый 13.09.2010, 17:08   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

http://programmersforum.ru/showthread.php?t=111867
начать процесс по ком строке notepad <путь к файлу>

и зачем вам тогда FileStream?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с С# PDV199003 Помощь студентам 0 04.06.2010 14:38
проблемы с if Vergil Общие вопросы C/C++ 8 21.04.2010 21:43
Visual Studio 2008 Express Edition C# - не могу применить блок try catch к FileStream I.C.E Visual C++ 1 14.12.2009 11:55
FileStream. Как узнать сколько байтов в Read и Write надо написать? Манжосов Денис :) Помощь студентам 2 24.10.2008 08:29
FileStream ryton Общие вопросы Delphi 9 26.05.2008 13:53