0 / 0 / 0
Регистрация: 17.11.2010
Сообщений: 17
1

Найти самую длинную и самую короткую строки в файле

03.06.2011, 12:00. Показов 4849. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
51
52
53
54
55
56
57
58
59
60
61
62
63
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.IO;
using System.Windows.Forms;
 
namespace WindowsApplication13
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            string FileName;
            StreamWriter sw;
            StreamReader sr;
            string strL;
            FileName = textBox1.Text;
            if (checkBox1.Checked == true)
            {
                if (File.Exists(FileName))
                    MessageBox.Show("File exists " + FileName);
                else
                {
                    sw = new StreamWriter(FileName, false);
                    sw.Close();
                }
                if (checkBox2.Checked == true)
                {
                    sw = new StreamWriter(FileName, false);
                    for (int i = 0; i < textBox2.Lines.Length; i++)
                        sw.WriteLine(textBox2.Lines[i]);
                    sw.Close();
                }
                if (checkBox3.Checked == true)
                {
                    sw = new StreamWriter(FileName, true);
                    for (int i = 0; i < textBox2.Lines.Length; i++)
                        sw.WriteLine(textBox2.Lines[i]);
                    sw.Close();
                }
                    if (checkBox4.Checked == true)
                {
                    listBox2.Items.Clear();
                    sr = new StreamReader(FileName);
                    strL = sr.ReadLine();
                    while (strL != null)
                    {
                        listBox2.Items.Add(strL);
                        strL = sr.ReadLine();
                    }
                    sr.Close();
                }
            }
        
        }
Мой код,нужно добавить в обработку второй кнопки нахождение самой длинной и самой короткой строк. В коде создается файл,текст в файл,добавиться + текст И вывод из файла. Прошу помочь,так как вообще нету ни малейшего предстваления как в работе с фалами найти макс и мин строчки.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.06.2011, 12:00
Ответы с готовыми решениями:

Найти самую короткую строку и ее длину в файле
Работа с текстовым (символьным) файлом. Дан текстовый файл. Найти самую короткую строку и ее...

В текстовом файле найти самую длинную строку и ее длину
Добрый вечер. Не могу доделать задачу &quot;Дан текстовый файл. Найти самую длинную строку и ее длину&quot;....

В произвольном текстовом файле найти самую длинную строку
Всем доброго времени суток! Наконец-то дошли руки до изучения C#) Изучаю самостоятельно. Дошел до...

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

14
Заблокирован
03.06.2011, 13:35 2
C#
1
2
3
            string[] readText = System.IO.File.ReadAllLines(@"D:\test.txt");
            Console.WriteLine(readText.Max());
            Console.WriteLine(readText.Min());
0
208 / 138 / 15
Регистрация: 28.04.2011
Сообщений: 389
03.06.2011, 13:39 3
так скорее всего будет выдавать первую и последнюю в алфавитном порядке
0
0 / 0 / 0
Регистрация: 17.11.2010
Сообщений: 17
03.06.2011, 13:43  [ТС] 4
да,я так представляю,что долна быть привязанность к свойству length
0
Заблокирован
03.06.2011, 13:43 5
Цитата Сообщение от WonderFlik Посмотреть сообщение
так скорее всего будет выдавать первую и последнюю в алфавитном порядке
А ты возьми и проверь прежде чем быть таким голословным.
Когда кажется - надо креститься.
0
208 / 138 / 15
Регистрация: 28.04.2011
Сообщений: 389
03.06.2011, 13:58 6
Лол видимо ты сам не проверил прежде чем писать


C#
1
2
string[] str = new string[] { "dw","wdwadfdsf","aaa","padw","b","awdadwwwddwwwww" };
Console.WriteLine("min - {0} max - {1}",str.Min(),str.Max());
не поленись

Добавлено через 9 минут
не илегантно совсем но..) в str2 все строки максимальной и минимальной длины
C#
1
2
3
4
5
6
7
8
9
            string[] str = new string[] { "dw", "wdwadfdsf", "aaa", "padw", "b", "z","awdadwwwddwwwww" };
            int i = 0;
            int[] arr = new int[str.Length];
            foreach(string s in str)
            { arr[i] = s.Length; i++; }
            var q = from p in str
                    where (p.Length == arr.Max() || p.Length == arr.Min())
                    select p;
            string[] str2 = q.ToArray();
0
Заблокирован
03.06.2011, 14:03 7
Ну тогда так, если предыдущий пример не подходит
C#
1
2
3
4
5
6
7
8
9
10
11
string[] readText = System.IO.File.ReadAllLines(@"D:\test.txt");
            string max = string.Empty;
            string min =string.Join("", readText);
            foreach (string s in readText)
            {
                if (s.Length > max.Length) max = s;
                if (s.Length < min.Length) min = s;
 
            }
            Console.WriteLine(max);
            Console.WriteLine(min);
WonderFlik, вопрос был про работу с файлами. Читать умеешь?
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
03.06.2011, 15:14 8
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using System.Linq;
using System.Text;
 
class Program
{
    static void Main(string[] args)
    {
        string[] s = System.IO.File.ReadAllLines("C:\\1.txt", Encoding.Default);
        string maxLengthString = s.OrderByDescending(x => x.Length).ToArray()[0];
        string minLengthString = s.OrderBy(x => x.Length).ToArray()[0];
        Console.WriteLine(maxLengthString);
        Console.WriteLine(minLengthString);
        Console.ReadKey(true);
    }
}
0
0 / 0 / 0
Регистрация: 17.11.2010
Сообщений: 17
04.06.2011, 11:14  [ТС] 9
Цитата Сообщение от SYD Посмотреть сообщение
Ну тогда так, если предыдущий пример не подходит
C#
1
2
3
4
5
6
7
8
9
10
11
string[] readText = System.IO.File.ReadAllLines(@"D:\test.txt");
            string max = string.Empty;
            string min =string.Join("", readText);
            foreach (string s in readText)
            {
                if (s.Length > max.Length) max = s;
                if (s.Length < min.Length) min = s;
 
            }
            Console.WriteLine(max);
            Console.WriteLine(min);
спасибо большое,всё работает. А вы не могли бы обьяснить что делают эти строчки
C#
1
2
string max = string.Empty;
            string min =string.Join("", readText);
0
6280 / 3565 / 898
Регистрация: 28.10.2010
Сообщений: 5,926
04.06.2011, 11:34 10
C#
1
2
string max = string.Empty;//пустая строка
string min =string.Join("", readText);//объединение строк
0
Заблокирован
04.06.2011, 11:43 11
Одной переменной присваиваем пустую строку, другой - все строки нашего файла соединив их через разделитель. В нашем случае разделитель это пустая строка и следовательно просто соединяем их вместе. В дальнейшем при итерации по циклу, размер переменной max будет всё больше, пока не достигнет максимального значения, а размер переменной min - всё меньше.

Добавлено через 50 секунд
Опоздал
0
185 / 188 / 17
Регистрация: 26.11.2010
Сообщений: 511
04.06.2011, 18:22 12
Извернулся таки и сделал двустрочник.
C#
1
2
3
string[] str = new [] { "dadadadaddadaddaddada","dw", "wdwadfdsf", "aaa", "padw", "b", "awdadwwwddwwwww" };
            var k = str.Select(s => s.Length).ToArray(  ) ;
            Console.WriteLine("min - {0} max - {1}", str[Array.IndexOf(k, k.Min( ))],str[Array.IndexOf(k, k.Max( ))]);
0
Заблокирован
04.06.2011, 18:32 13
Цитата Сообщение от Killster Посмотреть сообщение
Извернулся таки и сделал двустрочник.
Однострочник
C#
1
 string[] readText = System.IO.File.ReadAllLines(@"D:\test.txt"); string max = string.Empty; string min = string.Join("", readText); foreach (string s in readText) { if (s.Length > max.Length) max = s; if (s.Length < min.Length) min = s; } Console.WriteLine(max); Console.WriteLine(min); Console.ReadKey();
0
185 / 188 / 17
Регистрация: 26.11.2010
Сообщений: 511
04.06.2011, 18:36 14
Цитата Сообщение от SYD Посмотреть сообщение
Однострочник

Не по теме:

Не, не очень классно как-то :)

0
0 / 0 / 0
Регистрация: 31.12.2019
Сообщений: 30
21.05.2020, 17:30 15
Петррр, что за аватарка ???
0
21.05.2020, 17:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2020, 17:30
Помогаю со студенческими работами здесь

Найти самую короткую строку текста и заменить её
Найти самую короткую строку текста и заменить её фразой &quot;С Новым годом!&quot;

Найти самую длинную строку в файле и ее длину
Дан текстовый файл. Найти самую длинную строку и ее длину.

В текстовом файле найти самую длинную и самую короткую строки
Тема: Создание и обработка текстовых файлов. Цель: Написание и отладка программ обработки...

В тексте найти самую длинную и самую короткую строки и поменять их местами
в тексте найти самую длинную и самую короткую строки и поменять их местами

Ввести n строк, найти самую короткую и самую длинную строки
Ввести n строк , найти самую короткую и самую длинную строки. Вывести найденные строки и их длину....

Поменять местами самую короткую и самую длинную строки текста (при условии, что они единственны)
Дан текстовый файл f. Поменять местами самую короткую и самую длинную строки текста (при условии,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru