Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
4 / 4 / 2
Регистрация: 03.03.2011
Сообщений: 214
1

открыть файл, читая его, изменяя и сразу же записывать в этот файл?

25.04.2011, 20:03. Просмотров 3602. Ответов 32
Метки нет (Все метки)

как открыть файл, читая его, изменяя и сразу же записывать в этот файл?

C#
1
 File.WriteAllText("file.txt", File.OpenText("file.txt").ReadToEnd().Replace("aaa", "AAA"));
вот так не работает((
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2011, 20:03
Ответы с готовыми решениями:

Как открыть сразу картинку и текстовый файл с одинаковым названием?
WPF. OpenFileDialog На форме есть Image для изображения и TextBox для текста. Картинки и текстовые...

Загрузить файл на сервер методом POST не читая его содержимого
Собственно нужно загрузить текстовый файл на сервер (нужно сделать так, чтобы не заносить в...

Файл: Открыть файл в режиме «а+», внести изменения, характеризующие этот режим.
Открыть файл для записи и записать в него произвольную информацию. Закрыть файл. Открыть его же в...

Имеется текстовый файл. Открыть этот файл и каждое из чисел возвести в куб
ПОРЯДОК ВЫПОЛНЕНИЯ ЛАБОРАТОРНОЙ РАБОТЫ 1. Создать или открыть текстовый (типизированный,...

32
376 / 309 / 18
Регистрация: 26.05.2009
Сообщений: 2,676
25.04.2011, 20:10 2
Вам именно в одну строку? Не получается из-за прав доступа?
0
4 / 4 / 2
Регистрация: 03.03.2011
Сообщений: 214
25.04.2011, 20:17  [ТС] 3
угу нету прав
мне точно скопировать что есть в файле и что-то заменить.....
0
338 / 284 / 62
Регистрация: 02.09.2010
Сообщений: 547
25.04.2011, 20:21 4
C#
1
2
3
4
5
6
7
8
9
static void Main(string[] args)
        {
            string mass = File.ReadAllText(@"D:\test.txt", Encoding.Default).Replace('ф', 'а');
            File.Delete(@"D:\test.txt");
            StreamWriter sw = new StreamWriter(@"D:\test.txt",true,Encoding.Default);
            sw.Write(mass);
            sw.Close();
            Console.ReadKey();
        }
Ну вот так, только Replace меняет символ, а не слово.
0
4 / 4 / 2
Регистрация: 03.03.2011
Сообщений: 214
25.04.2011, 20:24  [ТС] 5
Цитата Сообщение от Filislav Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
static void Main(string[] args)
        {
            string mass = File.ReadAllText(@"D:\test.txt", Encoding.Default).Replace('ф', 'а');
            File.Delete(@"D:\test.txt");
            StreamWriter sw = new StreamWriter(@"D:\test.txt",true,Encoding.Default);
            sw.Write(mass);
            sw.Close();
            Console.ReadKey();
        }
Ну вот так, только Replace меняет символ, а не слово.
и слово тоже)))

Добавлено через 1 минуту
спасибо)
0
338 / 284 / 62
Регистрация: 02.09.2010
Сообщений: 547
25.04.2011, 20:27 6
Точно, что то я про перегрузки его забыл.
0
4 / 4 / 2
Регистрация: 03.03.2011
Сообщений: 214
25.04.2011, 20:46  [ТС] 7
эээм одна ошибочка
C#
1
2
3
4
5
6
7
8
9
10
11
 for (int t = 0; t < indexRusLinks; t++)
            {
                for (int y = 0; y < h; y++)
                {
                    string mass = File.ReadAllText(htmlFile[y], Encoding.Default).Replace(rusLinks[t], translit(rusLinks[t]));
                    File.Delete(htmlFile[y]);
                    StreamWriter sw = new StreamWriter(htmlFile[y], true, Encoding.Default);
                    sw.Write(mass);
                    sw.Close();
                }
            }
он на File.Delete пишет "файл занят другим процесом"...
0
338 / 284 / 62
Регистрация: 02.09.2010
Сообщений: 547
25.04.2011, 21:05 8
А файлы больше никаким приложением не используются?
0
4 / 4 / 2
Регистрация: 03.03.2011
Сообщений: 214
25.04.2011, 21:09  [ТС] 9
неа, нет

Добавлено через 30 секунд
а если без цикла все работает......
0
wade25
25.04.2011, 21:09
  #10

Не по теме:

StreamWriter(@"D:\test.txt",true,Encoding.Default)
Что означает 2ой параметр в конструкторе булевый который?

0
338 / 284 / 62
Регистрация: 02.09.2010
Сообщений: 547
25.04.2011, 21:10 11
Если не используются попробуй так:

C#
1
2
3
4
5
6
7
StreamReader sr = new StreamReader(@"D:\test.txt", Encoding.Default);
            string mass = sr.ReadToEnd().Replace("привет","пока");
            sr.Close();
            File.Delete(@"D:\test.txt");
            StreamWriter sw = new StreamWriter(@"D:\test.txt",true,Encoding.Default);
            sw.Write(mass);
            sw.Close();
Добавлено через 1 минуту
wade25,true - означает что если файл не существует, то он создается, а если существует, то в него дописывается.
1
4 / 4 / 2
Регистрация: 03.03.2011
Сообщений: 214
25.04.2011, 21:43  [ТС] 12
Все равно пишет что файл используеться другим процессом, хотя если бех цикла делать все работает...
0
376 / 309 / 18
Регистрация: 26.05.2009
Сообщений: 2,676
25.04.2011, 23:15 13
Капец! Народ, Вы же открыли файл и прочитали из него, а потом удаляете не закрыв его дискриптор. Возьмите чтение в using, что ли.
0
4 / 4 / 2
Регистрация: 03.03.2011
Сообщений: 214
25.04.2011, 23:47  [ТС] 14
как? это сделать?

Добавлено через 26 минут
когда без цикла все норм. А когда цикл он ругаеться что файл занят...


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 for (int t = 0; t < indexRusLinks; t++)
            {
                for (int y = 0; y < h; y++)
                {
                    StreamReader sr = new StreamReader(htmlFile[y], Encoding.Default);
                    string mass = sr.ReadToEnd().Replace(rusLinks[t], translit(rusLinks[t]));
                    sr.Close();
                    File.Delete(htmlFile[y]);
                    StreamWriter sw = new StreamWriter(htmlFile[y], true, Encoding.Default);
                    sw.Write(mass);
                    sw.Close();
 
                }
            }
у меня есть 10 html файлов. Я в них нахожу русские ссылки ввывожу на лист бокс. А этим кодом пытаюсь им всем сдлетьа транслит!
0
218 / 141 / 35
Регистрация: 25.06.2010
Сообщений: 383
26.04.2011, 11:11 15
Цитата Сообщение от Мыша Посмотреть сообщение
как? это сделать?
C#
1
2
3
4
5
6
 
     using (StreamReader sr = new StreamReader(@"D:\test.txt", Encoding.Default))
     {
         //какие-то действия с файлом
     }
         //здесь уже все будет закрыто и "почищено"
Вроде так.
0
4 / 4 / 2
Регистрация: 03.03.2011
Сообщений: 214
26.04.2011, 13:13  [ТС] 16
Цитата Сообщение от NiceGuyEddy Посмотреть сообщение
C#
1
2
3
4
5
6
 
     using (StreamReader sr = new StreamReader(@"D:\test.txt", Encoding.Default))
     {
         //какие-то действия с файлом
     }
         //здесь уже все будет закрыто и "почищено"
Вроде так.
Все равно.... именнно на File.Delet() пишет что это файл уже занят другим процесом...
0
376 / 309 / 18
Регистрация: 26.05.2009
Сообщений: 2,676
26.04.2011, 17:04 17
Два вопроса:
1. Ошибка выбрасывается на первой итерации?
2. Вы уверены, что больше нигде в вашей программе нет обращения к этим файлам?
0
4 / 4 / 2
Регистрация: 03.03.2011
Сообщений: 214
26.04.2011, 18:05  [ТС] 18
Цитата Сообщение от body90 Посмотреть сообщение
Два вопроса:
1. Ошибка выбрасывается на первой итерации?
2. Вы уверены, что больше нигде в вашей программе нет обращения к этим файлам?
1. Нет всегда по разному
2. Да.
3. Именно когда через цикл иду тогда ругаеться(
0
376 / 309 / 18
Регистрация: 26.05.2009
Сообщений: 2,676
27.04.2011, 01:38 19
По разному никак тут не может быть. Тут достаточно старичный код...
0
4 / 4 / 2
Регистрация: 03.03.2011
Сообщений: 214
27.04.2011, 08:06  [ТС] 20
Цитата Сообщение от body90 Посмотреть сообщение
По разному никак тут не может быть. Тут достаточно старичный код...
В каком смысле?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2011, 08:06

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Дан файл. Надо отсортировать этот файл в порядке убывания длин его строк
Помогите, плиз. Очень надо. Дан файл. Надо отсортировать этот файл в порядке убывания длин его...

Сохранить файл в папку, а ссылку на его в БД, открыть файл по ссылке из Бд
Здравствуйте. Не получается сохранить файлы в папку Data (c записью ссылки на него в БД),а затем...

Поток: открыть любой файл, определить его размер и занести в новый файл
очень нужно решить две задачи 1.Создать поток открывающий любой файл,определить его размер и...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.