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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2012, 10:02   #1
Alinka_
Пользователь
 
Регистрация: 11.10.2012
Сообщений: 31
Плохо создать список строк в файле

создать список строк в файле,из файла прочитать эти строки и отсортировать их встроенными методами списка(String builder), полученные результаты вывести в файлы

StringBuilder freader = new StringBuilder("Hello World!");
freader.Append(" What a beautiful day");
Console.WriteLine(freader);
Console.ReadLine();

как переписать этот код,чтобы "Helloy word" был записан в одном файле, потом мы его считываем, добавляем в конец с помощью Append " What a beautiful day." и выводим результат "Hello World!What a beautiful day" в другой файл?
Alinka_ вне форума Ответить с цитированием
Старый 24.10.2012, 10:35   #2
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Подключаем модуль для работы с файлами
Код:
using System.IO
Код:
 //читаем текст из первого файла
            StreamReader sr = new StreamReader("1.txt");
            StringBuilder sb = new StringBuilder();
            sb.Append((string)sr.ReadToEnd());
            sr.Close();

            //читаем текст из второго файла
            sr = new StreamReader("2.txt");
            sb.Append((string)sr.ReadToEnd());
            sr.Close();

            Console.WriteLine(sb);

            //пишет текст в третий файл
            StreamWriter sw = new StreamWriter("3.txt");
            sw.WriteLine(sb);
            sw.Close();
            Console.ReadKey();
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 24.10.2012, 16:04   #3
Alinka_
Пользователь
 
Регистрация: 11.10.2012
Сообщений: 31
По умолчанию

Цитата:
Сообщение от GetMax Посмотреть сообщение
Подключаем модуль для работы с файлами
Код:
using System.IO
Код:
 //читаем текст из первого файла
            StreamReader sr = new StreamReader("1.txt");
            StringBuilder sb = new StringBuilder();
            sb.Append((string)sr.ReadToEnd());
            sr.Close();

            //читаем текст из второго файла
            sr = new StreamReader("2.txt");
            sb.Append((string)sr.ReadToEnd());
            sr.Close();

            Console.WriteLine(sb);

            //пишет текст в третий файл
            StreamWriter sw = new StreamWriter("3.txt");
            sw.WriteLine(sb);
            sw.Close();
            Console.ReadKey();
почему не работает?

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
StringBuilder sb = new StringBuilder("Hello World!");
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
using (StreamWriter strWriter = new StreamWriter("file1.txt"))
{
strWriter.WriteLine(sb);
}
using (StreamReader strWriter = new StreamReader("file1.txt"))
{
sb1.Append(strWriter.ReadLine());
sb2.Insert(strWriter.ReadLine());
}
sb1.Append(" What a beautiful day.");
sb2.Insert(6, "beautiful");
using (StreamWriter strWriter = new StreamWriter("file2.txt"))
{
strWriter.WriteLine(sb1);
strWriter.WriteLine(sb2);
}

}
}
}
Alinka_ вне форума Ответить с цитированием
Старый 24.10.2012, 16:43   #4
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,327
По умолчанию

У меня вопрос возник связанный с этой темой, в своей перспективе. Я, в качестве упражнения, изменил задание. При нажатии на кнопку Open открывается файл и строки загружаются в ListBox. А при нажатии на кнопку Sort строки сортируются и должны выводиться в ListBox, но не выводятся. Почему? Может ещё, что не так



Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace ListOfStrings
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        List<string> items = new List<string>();

        // Open
        private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                StreamReader sr = new StreamReader(File.OpenRead(ofd.FileName));

                while (!sr.EndOfStream)
                {
                    items.Add(sr.ReadLine());
                }

                listBox1.DataSource = items;

                sr.Dispose();
            }
        }

        // Sort
        private void button3_Click(object sender, EventArgs e)
        {
            items.Sort();
            listBox1.DataSource = items;
        }
    }
}

Последний раз редактировалось 8Observer8; 24.10.2012 в 16:46.
8Observer8 на форуме Ответить с цитированием
Старый 25.10.2012, 10:58   #5
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

To Alinka_
Цитата:
почему не работает?
Потому что ерунда какая то написана. Обратите внимание на код 8Observer8 и как у него подключено System.IO.

To 8Observer8
Попробуйте заполнить listbox следующим образом
Код:
foreach (string s in items)
   listBox1.Items.Add(s);
Это нужно добавить вместо
Код:
listBox1.DataSource = items;
И тогда для сортировки в listbox строк можно сделать так
Код:
  private void button3_Click(object sender, EventArgs e)
        {
            items.Sort();
          
            listBox1.Sorted = true; 
           
        }
В результате получим
Цитата:
a
are
beautiful
girl
hello Alinka
you
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681

Последний раз редактировалось GetMax; 25.10.2012 в 11:03.
GetMax вне форума Ответить с цитированием
Старый 25.10.2012, 11:26   #6
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

8Observer8

А при нажатии на кнопку Sort строки сортируются и должны выводиться в ListBox, но не выводятся. Почему?

надо обновить листбокс

Код:
void OnClick(...)
{
    items.Sort();
    ((CurrencyManager) listBox1.BindingContext[items]).Refresh();
}
Rififi вне форума Ответить с цитированием
Старый 25.10.2012, 13:04   #7
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,327
По умолчанию

Спасибо, друг!

GetMax, и вам спасибо большое!
8Observer8 на форуме Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создать список строк в файле Alinka_ C# (си шарп) 2 24.10.2012 10:59
Создать односвязный список и вывести его на экран. Из этого списка создать новый список по указанному ниже правилу и новый список San111 Паскаль, Turbo Pascal, PascalABC.NET 1 15.05.2012 22:08
список процедур в DCU файле iliili Паскаль, Turbo Pascal, PascalABC.NET 1 29.06.2011 20:38
связать список строк и список целых чисел lirikoff Помощь студентам 5 31.08.2010 13:23
C: односвязный список в файле getfear Помощь студентам 7 04.01.2008 19:26