Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
 Аватар для Resume
143 / 133 / 69
Регистрация: 08.11.2013
Сообщений: 767
Записей в блоге: 5

Считывание данных из файла и перезапись

03.12.2014, 20:40. Показов 3740. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Мне необходима ваша помощь.
Вот код мой:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
 
namespace ConsoleApplication9
{
    class Program
    {        
        static void Main(string[] args)
        {
            List<string> listik = new List<string>();
                string line = "";
                StreamReader sr = new StreamReader("ok.txt");
                while (!sr.EndOfStream)
                {
                    line += sr.ReadToEnd();
                }
                sr.Close();
                string[] inputs = line.Split('\n');
                for (int j = 0; j < inputs.Length; j++)
                {
                  Console.WriteLine("{0}", inputs[j]);
                   listik.Add(inputs[j]);
                }
                 int n;
                 Console.WriteLine("введите индекс элемента списка, который необходимо удалить!");
                 n = int.Parse(Console.ReadLine());
                 for (int j = 0; j < listik.Count; j++)
                 {
                     if (n == j)
                     {
                         listik.RemoveAt(n);
                         listik.Insert(n, "\n");
                     }
                     Console.WriteLine("{0}", listik[j]);
                     
                 }
                 for (int j = 0; j < listik.Count; j++)
                 {
                     StreamWriter sw = new StreamWriter("ok.txt", false); // почему-то тут здесь ничего не записывает!
                     sw.Write(listik[j]);
                     sw.Close();
                 }
                }
        }
    }
Я считываю из файла данные, которые расположены примерно в таком виде:
ааа
ббб
ввв
....

Вопрос в следующем: почему у меня в файл ничего не записывается??
Помогите, пожалуйста.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.12.2014, 20:40
Ответы с готовыми решениями:

Чтение файла xls и перезапись данных в файл txt
Задача Файл xls в нем данные (текст и числа), алгорит читает файл xls и перезаписывает данные в файл txt

Запрос данных из файла. Проблема в открывании файла и считывание из него данных
Не понимаю что не так, программа не хочет открывать файл... Пробовал и перемещать его, и использовать другие команды для его вызова... (Щас...

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

11
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
03.12.2014, 22:36
А дебагер что показывает
C#
1
sw.Write(listik[j]);
в listik?
или допишите Console.WriteLine(listik[j]); и что будет выводить, может у вас там пусто.
0
 Аватар для Resume
143 / 133 / 69
Регистрация: 08.11.2013
Сообщений: 767
Записей в блоге: 5
03.12.2014, 23:27  [ТС]
ntlinuxnt,
При:
C#
1
1 sw.Write(listik[j]);
у меня записывается последняя строка.
Дописал, как вы сказали: лист не пустой, все норм.
Скорее всего ошибка в перезаписи данных.
У меня к вам такой вопрос:я верно переписываю данные в тот же файл?
0
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
03.12.2014, 23:31
C#
1
sw.WriteLine(listik[j]);
0
 Аватар для Resume
143 / 133 / 69
Регистрация: 08.11.2013
Сообщений: 767
Записей в блоге: 5
03.12.2014, 23:39  [ТС]
ntlinuxnt,
В файле пусто!

Добавлено через 19 секунд
если использовать:
C#
1
sw.WriteLine(listik[j]);
0
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
03.12.2014, 23:50
Append попробуйте.
1
140 / 133 / 88
Регистрация: 18.05.2013
Сообщений: 399
04.12.2014, 00:02
Resume, у вас каждый раз файл перезаписывается, поэтому в файле оказывается только последняя строка.
ntlinuxnt правильно написал, нужно использовать Append, поэтому в 43 строке должно быть так:
C#
1
StreamWriter sw = new StreamWriter("ok.txt", true);
1
 Аватар для Resume
143 / 133 / 69
Регистрация: 08.11.2013
Сообщений: 767
Записей в блоге: 5
04.12.2014, 17:45  [ТС]
atoi,
Спасибо за ответ. Я попробовал ваш способ, но он меня не устроил, ибо он записывает в конец строки,а мне надо с самого начала, то есть перезапись. Все равно, большее Вам спасибо, что откликнулись!!!
ntlinuxnt,
Спасибо! Работает!!! Очень Большое Спасибо!!

Добавлено через 17 часов 18 минут
ntlinuxnt, я вчера рано радовался. Мне не помогло, поскольку AppendText - записывает в конец файла, а мне надо заново записать в тот же файл,при чем с самого начала, с которого и считывал.
0
Life Builder
 Аватар для sk007
531 / 496 / 374
Регистрация: 12.01.2011
Сообщений: 1,755
04.12.2014, 18:24
вы просто исправьте вот это
Цитата Сообщение от Resume Посмотреть сообщение
C#
1
2
3
4
5
6
for (int j = 0; j < listik.Count; j++)
                 {
                     StreamWriter sw = new StreamWriter("ok.txt", false); // почему-то тут здесь ничего не записывает!
                     sw.Write(listik[j]);
                     sw.Close();
                 }
там должна быть вот так
C#
1
2
3
4
5
using(StreamWriter sw = new StreamWriter("ok.txt", false))
{
    for (int j = 0; j < listik.Count; j++)
       sw.WriteLine(listik[j]);
}
По вашему при каждом интерации будет открывать и закрывать файл, сохранив его, причем каждый раз записав заново. Поэтому там и оказывается только последняя строка.
1
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
04.12.2014, 19:17
Цитата Сообщение от Resume Посмотреть сообщение
ntlinuxnt, я вчера рано радовался. Мне не помогло, поскольку AppendText - записывает в конец файла, а мне надо заново записать в тот же файл,при чем с самого начала, с которого и считывал.
Ну так, а пересоздание файла и норм будет.
1
 Аватар для Resume
143 / 133 / 69
Регистрация: 08.11.2013
Сообщений: 767
Записей в блоге: 5
04.12.2014, 20:20  [ТС]
ntlinuxnt,
а по-другому никак?
0
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
05.12.2014, 17:55
А зачем? Там где ты true false ставишь одно это добавление второе это перезапись, что трудного то?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.12.2014, 17:55
Помогаю со студенческими работами здесь

Считывание данных из файла
Есть программа для вычисления суммы ряда, состоящего из N элементов. Её нужно изменить для считывание N из файла и записи результата в...

Считывание данных из файла
В файле 2 строки. В первой 1 число, а во 2 - ряд чисел через пробел. Как можно реализовать считывание всех чисел как элементов массива?

Считывание данных из файла
char y; ifstream fin; fin.open(&quot;maps1.txt&quot;); fin &gt;&gt; y; fin.close(); cout &lt;&lt; y; Почему-то не работает следующий код. В...

Считывание данных из файла
В файле funс.dat есть два столбца данных надо считать первый столбец в один массив, второй столбец в другой массив. Вариант когда в...

Считывание данных из файла
Проблема состоит в том, что при записи каждой новой строки в List игнорируется 1 символ, например должно быть &quot;Камень&quot;, а...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru