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

Программа осуществляющуя перенос слишком длинных строк

11.11.2016, 17:06. Показов 1554. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, помогите пожайлуйста. Напишите программу осуществляющую перенос слишком длинных строк.Слова разбивать нельзя (слово, которое нельзя разместить стоит перенести целиком на новую строку). Ширина строки равна 80, Входные данные прочитать из файла ЛАБ5_8.тхт результат записать в файл ЛАБ6_8.out
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2016, 17:06
Ответы с готовыми решениями:

Перенос длинных строк в таблице
Таблица заполняется из базы и там в одном из столбцов встречаются очень длинные строки, не имеющие...

Перенос длинных строк текста
Здравствуйте. Есть строка для ввода текста. После нажатия кнопки этот текст записывается в...

Перенос длинных строк кода
Как можно перенести одну строку кода на следующую? Что бы было удобнее писать и читать... ...

Перенос длинных строк в редакторе кода
подскажите пожалуйста, что нужно дописывать в конце строки, если текс длинный и не помещается в...

2
6 / 6 / 3
Регистрация: 31.08.2015
Сообщений: 56
11.11.2016, 17:39 2
Лучший ответ Сообщение было отмечено Кениро как решение

Решение

Писал метод, который пишет в заданную область текст. Лови, если разберешь что там к чему)
Кликните здесь для просмотра всего текста
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
        private void PrintTextOnCanvas (string Text, Size canvasSize, char[,] canvas)
        {
            string[] textWords = Text.Split (' ');
            int X = 0, Y = 0;
 
            if (canvasSize.Height != 0 && canvasSize.Width != 0)
                for (int i = 0; i < textWords.Length; i++)
                {
                    char[] wordArr = textWords[i].ToCharArray ();
 
                    if (canvasSize.Width - X < wordArr.Length)
                    {
                        if (wordArr.Length <= Size.Width)
                            if (Y < Size.Height)
                                MoveToNewLine (ref X, ref Y);
                            else
                                break;
                    }
 
                    for (int j = 0; j < wordArr.Length; j++)
                    {
                        if (Y == canvasSize.Height)
                            break;
 
                        canvas[X,Y] = wordArr[j];
 
                        if (X == canvasSize.Width - 1)
                        {
                            if (Y < canvasSize.Height)
                                MoveToNewLine (ref X, ref Y);
                            else
                                break;
                        }
                        else
                            X++;
                    }
 
                    if (X < canvasSize.Width - 1)
                        if (X != 0)
                        {
                            X++;
                            canvas[X,Y] = ' ';
                        }
                }
        }
        private void MoveToNewLine (ref int X, ref int Y)
        {
            X = 0;
            Y++;
        }
1
11 / 11 / 4
Регистрация: 03.07.2014
Сообщений: 28
11.11.2016, 17:46 3
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
static List<string> WrapText(string text, double pixels, string fontFamily, 
    float emSize)
{
    string[] originalLines = text.Split(new string[] { " " }, 
        StringSplitOptions.None);
 
    List<string> wrappedLines = new List<string>();
 
    StringBuilder actualLine = new StringBuilder();
    double actualWidth = 0;
 
    foreach (var item in originalLines)
    {
        FormattedText formatted = new FormattedText(item, 
            CultureInfo.CurrentCulture, 
            System.Windows.FlowDirection.LeftToRight,
            new Typeface(fontFamily), emSize, Brushes.Black);
 
        actualLine.Append(item + " ");
        actualWidth += formatted.Width;
 
        if (actualWidth > pixels)
        {
            wrappedLines.Add(actualLine.ToString());
            actualLine.Clear();
            actualWidth = 0;
        }
    }
 
    if(actualLine.Length > 0)
        wrappedLines.Add(actualLine.ToString());
 
    return wrappedLines;
}
1
11.11.2016, 17:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2016, 17:46
Помогаю со студенческими работами здесь

Редактор исходного кода / Перенос длинных строк
Подскажите, как ограничить длину строки в редакторе исходного кода ? Чтобы текст не уползал вправо...

Перенос длинных слов в таблице
Как сделать перенос слова если оно станет слишком длинное? Вот часть кода: &lt;tbody&gt; &lt;tr...

Перенос длинных слов в блоке <div> средствами css
Проблема такая, мне нужно чтобы переносились длинные слова. Иногда пользователи балуются и...

Перенос слишком большой строки
Есть код: print(&quot; &quot;.join(( != '9' and int(i) ** 2 % 2 != 0]))) Сколько бы \ я не ставил в...


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

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

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