Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Запись в TextBox


Автор: alir 17.2.2006, 17:22
Имеется string строка типа "словосочетание1 словосочетание2 . . . словосочетаниеN". Как записать ее в текстбокс, чтобы каждое словосочетание было в отдельной строке, т.е.

Цитата

словосочетание1
словосочетание2
. . .
словосочетаниеN

Автор: mr.DUDA 17.2.2006, 18:14
Вставить в строку в нужных местах разделитель (Environment.NewLine) и присвоить строку в свойство Text текстбокса. В чём проблема ? Или сложно строку разбить ?

Автор: alir 17.2.2006, 18:55
Цитата

Вставить в строку в нужных местах разделитель

И каким образом вставить?

Автор: Ch0bits 17.2.2006, 21:08
Вот тебе пример:
Код

using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            string Str="Выражение1   выражение2  123123 ыоарывпвоп      выражениеN";
            string[] sss=new Regex(" +| ").Split(Str);
            foreach (String s in sss)
                Console.WriteLine(s);
            Console.ReadKey();
        }
    }
}

Автор: mr.DUDA 17.2.2006, 21:51
Цитата(alir @ 17.2.2006, 17:55 Найти цитируемый пост)
И каким образом вставить?

А что такое "словосочентаниеN" ? Есть ли какая-то закономерность, по которой можно разделить словосочетания между собой? Ответив на этот вопрос, ты ответишь на свой.

Автор: alir 17.2.2006, 23:03
mr.DUDA
Цитата

А что такое "словосочентаниеN" ? Есть ли какая-то закономерность, по которой можно разделить словосочетания между собой?

Я могу сделать символ/символы, по которым буду делить, так как это строка записей из БД.
Т.е., например, между словосочетаниями можно вставить символ "/" .

Цитата

А что такое "словосочентаниеN" ?

Просто N-ое словосочетание. Их может быть любое количество - 5, 10, 35, . . .

Ch0bits
Консоль тут вообще не причем. Получить стринговский массив я могу. Вопрос как его записать построчно в текстбокс.

Читайте самый первый вопрос. ИМХО сформулирован понятно - просто нужно получить такой результат.

Автор: mr.DUDA 17.2.2006, 23:08
Цитата(alir @ 17.2.2006, 22:03 Найти цитируемый пост)
Консоль тут вообще не причем. Получить стринговский массив я могу. Вопрос как его записать построчно в текстбокс.

Текстбоксу всё равно, что мы в него записываем, много строк или одну - в любом случае присваивается string-значение свойству Text. Различие между многострочным и однострочным стрингом состоит в том, что многострочный стринг содержит как минимум одну подстроку Environment.NewLine (в виндовозе это "\r\n").

Автор: alir 17.2.2006, 23:59
Цитата

Различие между многострочным и однострочным стрингом состоит в том, что многострочный стринг содержит как минимум одну подстроку Environment.NewLine (в виндовозе это "\r\n").

Ну я записываю, например, разделяя "\r\n" слова, дык он все-равно в строку пишет!
Причем в самой БД все стоит правильно: на разных строках, а в текстбоксе нет.

Автор: Ch0bits 18.2.2006, 00:40
Цитата(alir @ 17.2.2006, 23:59 Найти цитируемый пост)
дык он все-равно в строку пишет!

Делай так:
1. В Properties своего TextBox'а установи Multiline = true
2. Растяни в дизайнере TextBox по вертикали, чтобы строки влезли
3. Выполни где-нибудь:
Код

textBox1.Text = "Строка1"+Environment.NewLine+
                "Строка2"+Environment.NewLine+
                "Строка3";


100% должно работать! smile

Автор: alir 18.2.2006, 01:32
Ch0bits
smile Это-то понятно, но представь: ты получаешь целую строку. Как ты вставишь между элементами строки Environment.NewLine ?

Автор: Ch0bits 18.2.2006, 01:49
smile
Код

private void button1_Click(object sender, EventArgs e)
{
    // Твоя исходная строка !!!
    string StrIn = "Выражение1   выражение2  123123 ыоарывпвоп      выражениеN";

    string[] sss = new Regex(" +| ").Split(StrIn);
    string StrOut = "";
    for (int i = 0; i < sss.Length - 1; i++)
        StrOut += sss[i] + Environment.NewLine;
    StrOut += sss[sss.Length - 1]; 

    // Теперь строка готова к употреблению :)
    textBox1.Text = StrOut;
}


Может я чего-то не понимаю?
Цитата(alir @ 18.2.2006, 01:32 Найти цитируемый пост)
Как ты вставишь между элементами строки Environment.NewLine ?

Что ты подразумеваешь под "'элементами строки" и чем они разделены?
Хоть бы пример показал?
smile

Автор: alir 18.2.2006, 12:43
Код правильный. Того же результата я добивался и при вставки символа Environment.NewLine при записи в БД. В win-приложении все нормально, он я работают в asp.net. Суть в том, что в переменной textBox1.Text стоит строка с разделителями, а отображается не правильно (еще раз повторю, что в win код работает, а в web - нет).

Автор: Ch0bits 18.2.2006, 13:22
Ну тогда ничем не могу помочь. С ASP.NET я не знаком.

Автор: mr.DUDA 19.2.2006, 16:36
Цитата(alir @ 18.2.2006, 11:43 Найти цитируемый пост)
Код правильный. Того же результата я добивался и при вставки символа Environment.NewLine при записи в БД. В win-приложении все нормально, он я работают в asp.net. Суть в том, что в переменной textBox1.Text стоит строка с разделителями, а отображается не правильно (еще раз повторю, что в win код работает, а в web - нет).


M
mr.DUDA
Пожалуйста, ПРАВИЛЬНО выбирайте форум, и вам помогут! Раз вопрос об ASP-шном приложении, то задан он должен быть в форуме "Разработка под ASP.NET"!


P.S.
Разделителем строк в HTML-коде является последовательность символов <br>


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)