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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ограничение текстового файла по размеру, текстовый файл запись 
:(
    Опции темы
PashaSem
Дата 3.3.2007, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Всем Привет!
Подскажите как сделать чтоб при очередном вызове если размер привышает установленный содержимое файла удалялось.
Код

try
            {
                // Create an instance of StreamReader to read from a file.
                // The using statement also closes the StreamReader.
                using (StreamReader sr = new StreamReader("log.txt"))
                {
                    int Number = sr.Dispose();
                    String line;
                    // Read and display lines from the file until the end of 
                    // the file is reached.
                    while ((line = sr.ReadLine()) != null)
                    {
                        listBox1.Items.Add(line);
                    }
                }
            }
            catch (Exception en)
            {
                // Let the user know what went wrong.
                listBox1.Items.Add("The file could not be read:");
                Console.WriteLine(en.Message);
            }

Спасибо! :qstn 

PM MAIL   Вверх
Idsa
Дата 3.3.2007, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Твой код меня пугает smile. Ты создаешь StreamReader, тут же его уничтожаешь, а потом пытаешься что-то считать.
А вообще в век баз данных задача довольно странная...


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
PashaSem
Дата 3.3.2007, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Я сохраняю в этот файл от силы 50 строк!
И базу делать для этого не целесообразно.
PM MAIL   Вверх
Idsa
Дата 3.3.2007, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(PashaSem @  3.3.2007,  15:04 Найти цитируемый пост)
Я сохраняю в этот файл от силы 50 строк!

Ну а если всего 50 строк, какой смысл ограничивать?
Опиши подробнее проблему.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
PashaSem
Дата 3.3.2007, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Я кидаю в файл запись 
Код

  StreamWriter w = File.AppendText("log.txt");
                            Log((szDeviceList23 + "\t\t" + ErrorMessage).ToString(), w);
                            w.Close();

 и потом его вызываю кодом котрый приводил раньше 
Но мне нужно чтоб при очередной записи или вызове если размер файла log.txt привышает какое то значение содержимое файла очищалось.

Как это сделать подскажите?

Спасибо!
PM MAIL   Вверх
Idsa
Дата 3.3.2007, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Т. е. тебя интересует физический размер файла, а не количество записей? Если так, то делаем следующее:
Код

FileInfo fi = new FileInfo("log.txt");
      long size = fi.Length;
      if (size > maxSize)
        ...

Не забудь подключить System.IO.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Gelis
Дата 5.3.2007, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

FileStream fs=new FileStream();
fs.SetLength(позиция_до_ какой_урезать_файл);

PM MAIL   Вверх
-ser-
Дата 10.3.2007, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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

Код

int iMaxSize = 9192;
string sPrevContents = string.Empty;
string sNewRecord = "something to be added ";

if( File.Exists( sLogFileName ) )
            {
                using( StreamReader sr = new StreamReader( sLogFileName ) )
                {
                    sPrevContents = sr.ReadToEnd();
                }
            }

         sNewRecord += sPrevContents; // а лучше использовать StringBuilder

            if( sNewRecordLength > iMaxSize )
            {
                sNewRecord = sNewRecord.Remove( iMaxSize );    
            }

            using( StreamWriter sw = new StreamWriter( sLogFileName ) )
            {
                sw.WriteLine( sNewRecord );
            }

   smile 

ну а если сурьезно, то на кодепроджект один мен вон целую диссертацию написал как вставлять текст в файл. признаюсь сам не читал, но судя по оценке что-то заумное. 
http://www.codeproject.com/useritems/InsertTextInCSharp.asp


--------------------
"Тонкая, однако, работа." 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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