Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 61
1

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

20.03.2014, 21:56. Просмотров 2502. Ответов 19
Метки нет (Все метки)

Дан текстовой файл, строки которого состоят из заглавных и строчных букв. Записать текст в новый файл таким образом, чтобы заглавные буквы стали строчными и наоборот.
Помогите пожалуйста...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.03.2014, 21:56
Ответы с готовыми решениями:

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

В новый файл записать информацию таким образом, чтобы каждое слово хранилось в отдельной строке
В файле хранится информация, записанная азбукой Морзе («буквы» разделены одним пробелом, ...

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

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

19
Модератор
Эксперт .NET
5299 / 4094 / 1182
Регистрация: 12.10.2013
Сообщений: 11,907
Записей в блоге: 2
20.03.2014, 22:04 2
Используйте ToUpper()<->ToLower().
0
40 / 40 / 15
Регистрация: 28.05.2011
Сообщений: 257
Записей в блоге: 1
20.03.2014, 22:32 3
как-то так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
            StreamReader sr = new StreamReader("in.txt", Encoding.Default);
 
            StreamWriter sw = new StreamWriter("out.txt", false, Encoding.Default);
 
            String file = sr.ReadToEnd();
            sr.Close();
 
            StringBuilder sb = new StringBuilder(file.Length);
 
            foreach (char ch in file)
            {
                if (Char.IsUpper(ch))
                    sb.Append(ch.ToString().ToLower());
                else
                    sb.Append(ch.ToString().ToUpper());
            }
 
            sw.Write(sb.ToString());
            sw.Close();
1
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 61
04.05.2014, 10:45  [ТС] 4
Что у меня не правильно?
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
50
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 WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        string fName;
 
        private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
                fName = openFileDialog1.FileName;
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            FileStream fs = new FileStream(fName, FileMode.Open);
            StreamReader sr = new StreamReader(fs);
            StreamWriter sw = new StreamWriter(fs);
            char ch;
            fs.Seek(0, SeekOrigin.Begin);
            int x;
            do
            {
                x = fs.ReadByte();
                ch = (char)x;
                if (Char.IsUpper(ch))
                    ch.ToString().ToLower();
                else
                    ch.ToString().ToUpper();
            }
            while (x != -1);
            sw.Close();
            fs.Close();
        }
    }
}
0
Модератор
Эксперт .NET
5299 / 4094 / 1182
Регистрация: 12.10.2013
Сообщений: 11,907
Записей в блоге: 2
04.05.2014, 10:48 5
Александр123рус, на мой взгляд все не правильно. Слишком сложно и много лишнего...
0
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 61
04.05.2014, 10:52  [ТС] 6
Я в теме текстовых файлов плохо шарю
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
30626 / 19986 / 7814
Регистрация: 22.10.2011
Сообщений: 34,805
Записей в блоге: 6
04.05.2014, 11:08 7
Все гораздо проще:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
using System.Linq;
using System.IO;
 
// ...
 
        void Button2_Click(object sender, EventArgs e)
        {
            string input = File.ReadAllText(@"D:\test\first.txt");
            string reversedCase = new string(
                input.Select(c => char.IsLetter(c) ? (char.IsUpper(c) ?
                                                      char.ToLower(c) : char.ToUpper(c)) : c).ToArray());
            File.WriteAllText(@"D:\test\second.txt", reversedCase);
        }
0
Модератор
Эксперт .NET
5299 / 4094 / 1182
Регистрация: 12.10.2013
Сообщений: 11,907
Записей в блоге: 2
04.05.2014, 11:21 8
UI, у меня чуть побольше вышло.
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
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 WindowsFormsApplication6
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            button1.Click += delegate
            {
                OpenFileDialog dialog = new OpenFileDialog() { Filter = "*txt files(*.txt)|*.txt", 
                                                               FileName = "" };
                if (dialog.ShowDialog() == DialogResult.OK)
                {                    
                    char[] charArray = File.ReadAllText(dialog.FileName).ToCharArray();
                    char[] resArray = charArray.Select((Func<char, char>)delegate(char ch) 
                    {
                        if (char.IsLower(ch))
                            return char.ToUpper(ch);
                        else
                            return char.ToLower(ch);
                    }).ToArray();
                    File.WriteAllText(@"C:\new.txt", new string(resArray));
                }
                MessageBox.Show("Operation completed!");
            };
        }
    }
}
0
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 61
04.05.2014, 12:05  [ТС] 9
Можно еще код Program.cs
0
Модератор
Эксперт .NET
5299 / 4094 / 1182
Регистрация: 12.10.2013
Сообщений: 11,907
Записей в блоге: 2
04.05.2014, 12:06 10
Александр123рус, а зачем? Берите любой пример и используйте. В моем варианте форма и кнопка, больше ничего. Создали проект, кинули на форму кнопку и заменили весь код.
0
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 61
04.05.2014, 12:08  [ТС] 11
или можно без delegate, потому что я не знаю что это
0
Модератор
Эксперт .NET
5299 / 4094 / 1182
Регистрация: 12.10.2013
Сообщений: 11,907
Записей в блоге: 2
04.05.2014, 12:12 12
Цитата Сообщение от Александр123рус Посмотреть сообщение
или можно без delegate, потому что я не знаю что это
В принципе, то же самое что и у UI, только без лямбда. Анонимные методы, расписанные подробно.
Если без всего этого, тогда только через цикл делать. Но зачем, так же удобнее...
0
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 61
04.05.2014, 12:15  [ТС] 13
А можно через цикл сделать? А то не понятно...
0
Модератор
Эксперт .NET
5299 / 4094 / 1182
Регистрация: 12.10.2013
Сообщений: 11,907
Записей в блоге: 2
04.05.2014, 12:22 14
Цитата Сообщение от Александр123рус Посмотреть сообщение
А можно через цикл сделать?
Можно.
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
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 WindowsFormsApplication6
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            button1.Click += delegate
            {
                OpenFileDialog dialog = new OpenFileDialog() { Filter = "*txt files(*.txt)|*.txt", 
                                                               FileName = "" };
                if (dialog.ShowDialog() == DialogResult.OK)
                {                    
                    char[] charArray = File.ReadAllText(dialog.FileName).ToCharArray();
                    for (int i = 0; i < charArray.Length; i++)
                    {
                        if (char.IsUpper(charArray[i]))
                            charArray[i]=char.ToLower(charArray[i]);
                        else
                            charArray[i]=char.ToUpper(charArray[i]);
                    }
                    File.WriteAllText(@"C:\new.txt", new string(charArray));
                }
                MessageBox.Show("Operation completed!");
            };
        }
    }
}
0
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 61
07.05.2014, 18:09  [ТС] 15
Можете поправить этот код??
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
50
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 WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        string fName;
 
        private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
                fName = openFileDialog1.FileName;
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            FileStream fs = new FileStream(fName, FileMode.Open);
            StreamReader sr = new StreamReader(fs);
            StreamWriter sw = new StreamWriter(fs);
            char ch;
            fs.Seek(0, SeekOrigin.Begin);
            int x;
            do
            {
                x = fs.ReadByte();
                ch = (char)x;
                if (Char.IsUpper(ch))
                    ch.ToString().ToLower();
                else
                    ch.ToString().ToUpper();
            }
            while (x != -1);
            sw.Close();
            fs.Close();
        }
    }
}
0
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 61
15.05.2014, 14:57  [ТС] 16
Ваш код, выдает ошибки
0
Миниатюры
Записать текст в новый файл таким образом, чтобы заглавные буквы стали строчными и наоборот  
Модератор
Эксперт .NET
5299 / 4094 / 1182
Регистрация: 12.10.2013
Сообщений: 11,907
Записей в блоге: 2
15.05.2014, 15:27 17
Александр123рус,вот вам весь проект. У меня работает.
0
Вложения
Тип файла: rar Архив WinRAR.rar (37.9 Кб, 11 просмотров)
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 61
15.05.2014, 16:15  [ТС] 18
Вот после выполнения программы
0
Миниатюры
Записать текст в новый файл таким образом, чтобы заглавные буквы стали строчными и наоборот  
Life Builder
524 / 491 / 373
Регистрация: 12.01.2011
Сообщений: 1,719
15.05.2014, 19:19 19
Запишите и откройте файл в одной кодировке

C#
1
2
StreamReader sr = new StreamReader(fs, Encoding.Default);
            StreamWriter sw = new StreamWriter(fs, false, Encoding.Default);
0
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 61
29.05.2014, 14:27  [ТС] 20
Не могу понять почему ромбики вместо текста
0
Миниатюры
Записать текст в новый файл таким образом, чтобы заглавные буквы стали строчными и наоборот  
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.05.2014, 14:27

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

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

Переписать файл таким образом, чтобы сначала шли специальные знаки, а затем буквы
Cоздать текстовый файл. Переписать файл таким образом , чтобы сначала шли специальные знаки , а...

Изменить текстовый файл, заменив в нем все заглавные буквы строчными
3. Разработать программу перекодировки текстового файла, заменив в нем все заглавные буквы...

Дан текст из строчных и заглавных букв латинского алфавита. Заменить все строчные буквы заглавными, а заглавные - строчными
Дан текст из строчных и заглавных букв латинского алфавита. Заменить все строчные буквы заглавными,...


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

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

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