That depends on where the file comes from and how it was created.
If it was created on the same system, it will most likely use the native newline combination for that specific system, and you can use the Environment.NewLine
constant:
string[] split1 = radek1.Split(new string[] { " ", Environment.NewLine }, StringSplitOptions.None);
Note that Environment.NewLine
is a string and can contain more than one character, so you need to split on strings, and the call needs a StringSplitOptions
parameter as there is no overload without it.
If the file comes from a different system (or was created with newlines typical for a different system), you would need to specify that specific string. For example the two character string used in a Windows system:
string[] split1 = radek1.Split(new string[] { " ", "rn" }, StringSplitOptions.None);
You can also include the most common newline combinations, if you need to handle files coming from different systems:
string[] split1 = radek1.Split(new string[] { " ", "rn", "n" }, StringSplitOptions.None);
2 / 2 / 0 Регистрация: 07.04.2016 Сообщений: 199 |
|
1 |
|
12.10.2018, 11:06. Показов 32363. Ответов 6
Здравствуйте. Имеем: Цель: Вопрос:
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
12.10.2018, 11:06 |
Ответы с готовыми решениями: Символ переноса в Excel (Как заменить символ на перенос строки) Заменить каждый четный символ или на ‘a’, если символ не равен ‘a’ или ‘b’, или на ‘c’ в противном случае Ввести с клавиатуры символ (в переменную char) и определить, соответствует ли введенный символ ‘Q’ или ‘q’ Определить введенный символ: число, прописная буква, строчная, знак сравнения или математический символ 6 |
6642 / 4742 / 1979 Регистрация: 02.02.2014 Сообщений: 12,703 |
|
13.10.2018, 15:39 |
2 |
Сообщение было отмечено Palich как решение Решение 0. ctrl+h
0 |
2 / 2 / 0 Регистрация: 07.04.2016 Сообщений: 199 |
|
15.10.2018, 13:15 [ТС] |
3 |
1. в строке «найти» ставим символ $ нет, не определяет и не находит такой символ, т.е. не работает. В Майкрософте переход на другую строчку(«enter») имеет символ «^p».
0 |
6642 / 4742 / 1979 Регистрация: 02.02.2014 Сообщений: 12,703 |
|
15.10.2018, 13:19 |
4 |
Palich, работает, проверено. Сделайте все пункты.
0 |
2 / 2 / 0 Регистрация: 07.04.2016 Сообщений: 199 |
|
15.10.2018, 18:13 [ТС] |
5 |
работает, проверено. Сделайте все пункты. Сделал, см. рисунок Миниатюры
1 |
6642 / 4742 / 1979 Регистрация: 02.02.2014 Сообщений: 12,703 |
|
15.10.2018, 18:18 |
6 |
3. развернуть «другие параметры» и поставить галочку на «регулярные выражения» нету галки на вашем скрине
1 |
2 / 2 / 0 Регистрация: 07.04.2016 Сообщений: 199 |
|
15.10.2018, 22:49 [ТС] |
7 |
спасибо!
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
15.10.2018, 22:49 |
Помогаю со студенческими работами здесь Из строк, которые содержат символ ‘1’ или ‘2’, удалить первый встречающийся в строке символ, равный латинской букве ‘a’ Функция принимает блоки данных (символ1, символ 2, строка), в каждой строке заменять символ 1 на символ 2 Если символ Д встречается в массиве чаще чем символ к то заменить его на символ + Если символ Д встречается в массиве чаще чем символ к то… Вывести строки, в которых символ «*» встречается не менее 2 раз и заменить символ «*» на символ «_» Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 7 |
Форум программистов Vingrad
Модераторы: Partizan, gambit |
Поиск: |
|
Как сделать знак «Enter», программно? |
Опции темы |
AlexJohnson |
|
||
Шустрый Профиль Репутация: нет
|
Например в VB6 и .NEt есть статическая функция CHR() преобразующая из кода в символ. |
||
|
|||
ivashkanet |
|
||
Кодю потиху Профиль
Репутация: 47
|
AlexJohnson, Chr(13) это не «Enter», а знак перевода строки (имеет 16-ричный код 0D — 13). Пример:
——————— design, simplicity, and experience with a technology focus |
||
|
|||
Gelis |
|
||
Шустрый Профиль
Репутация: 2
|
Можно еще и так.
Типа будет правильнее, если ты веришь в то, что твою програмку когда-нить запустят в другой операционной системе (имеется в виду ОС из не семейства Win) |
||
|
|||
RWander |
|
||
Опытный Профиль
Репутация: 1
|
——————— Microsoft Certified Technology Specialist — ASP.NET Applications |
||
|
|||
AlexJohnson |
|
||
Шустрый Профиль Репутация: нет
|
Во блин попал, я ж знал, что код 13 — перевод на новую строку, но не знал как воспользоваться. |
||
|
|||
RWander |
|
||
Опытный Профиль
Репутация: 1
|
бывает ——————— Microsoft Certified Technology Specialist — ASP.NET Applications |
||
|
|||
|
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс «транслит» если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) |
0 Пользователей: |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
Как известно, по умолчанию в одной ячейке листа Excel располагается одна строка с числами, текстом или другими данными. Но, что делать, если нужно перенести текст в пределах одной ячейки на другую строку? Данную задачу можно выполнить, воспользовавшись некоторыми возможностями программы. Давайте разберемся, как сделать перевод строки в ячейке в Excel.
Способы переноса текста
Некоторые пользователи пытаются перенести текст внутри ячейки нажатием на клавиатуре кнопки Enter. Но этим они добиваются только того, что курсор перемещается на следующую строку листа. Мы же рассмотрим варианты переноса именно внутри ячейки, как очень простые, так и более сложные.
Способ 1: использование клавиатуры
Самый простой вариант переноса на другую строку, это установить курсор перед тем отрезком, который нужно перенести, а затем набрать на клавиатуре сочетание клавиш Alt+Enter.
В отличие от использования только одной кнопки Enter, с помощью этого способа будет достигнут именно такой результат, который ставится.
Способ 2: форматирование
Если перед пользователем не ставится задачи перенести на новую строку строго определенные слова, а нужно только уместить их в пределах одной ячейки, не выходя за её границы, то можно воспользоваться инструментом форматирования.
-
Выделяем ячейку, в которой текст выходит за пределы границ. Кликаем по ней правой кнопкой мыши. В открывшемся списке выбираем пункт «Формат ячеек…».
После этого, если данные будут выступать за границы ячейки, то она автоматически расширится в высоту, а слова станут переноситься. Иногда приходится расширять границы вручную.
Чтобы подобным образом не форматировать каждый отдельный элемент, можно сразу выделить целую область. Недостаток данного варианта заключается в том, что перенос выполняется только в том случае, если слова не будут вмещаться в границы, к тому же разбитие осуществляется автоматически без учета желания пользователя.
Способ 3: использование формулы
Также можно осуществить перенос внутри ячейки при помощи формул. Этот вариант особенно актуален в том случае, если содержимое выводится с помощью функций, но его можно применять и в обычных случаях.
- Отформатируйте ячейку, как указано в предыдущем варианте.
- Выделите ячейку и введите в неё или в строку формул следующее выражение:
Вместо элементов «ТЕКСТ1» и «ТЕКСТ2» нужно подставить слова или наборы слов, которые хотите перенести. Остальные символы формулы изменять не нужно.
Главным недостатком данного способа является тот факт, что он сложнее в выполнении, чем предыдущие варианты.
В целом пользователь должен сам решить, каким из предложенных способов оптимальнее воспользоваться в конкретном случае. Если вы хотите только, чтобы все символы вмещались в границы ячейки, то просто отформатируйте её нужным образом, а лучше всего отформатировать весь диапазон. Если вы хотите устроить перенос конкретных слов, то наберите соответствующее сочетание клавиш, как рассказано в описании первого способа. Третий вариант рекомендуется использовать только тогда, когда данные подтягиваются из других диапазонов с помощью формулы. В остальных случаях использование данного способа является нерациональным, так как имеются гораздо более простые варианты решения поставленной задачи.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Довольно часто возникает вопрос, как сделать перенос на другую строку внутри ячейки в Экселе? Этот вопрос возникает когда текст в ячейке слишком длинный, либо перенос необходим для структуризации данных. В таком случае бывает не удобно работать с таблицами. Обычно перенос текста осуществляется с помощью клавиши Enter. Например, в программе Microsoft Office Word. Но в Microsoft Office Excel при нажатии на Enter мы попадаем на соседнюю нижнюю ячейку.
Итак нам требуется осуществить перенос текста на другую строку. Для переноса нужно нажать сочетание клавиш Alt+Enter. После чего слово, находящееся с правой стороны от курсора перенесется на следующую строку.
Автоматический перенос текста в Excel
В Экселе на вкладке Главная в группе Выравнивание есть кнопка «Перенос текста». Если выделить ячейку и нажать эту кнопку, то текст в ячейке будет переноситься на новую строку автоматически в зависимости от ширины ячейки. Для автоматического переноса требуется выполнить простое нажатие кнопки.
Убрать перенос с помощью функции и символа переноса
Для того, что бы убрать перенос мы можем использовать функцию ПОДСТАВИТЬ.
Функция заменяет один текст на другой в указанной ячейке. В нашем случае мы будем заменять символ пробел на символ переноса.
=ПОДСТАВИТЬ (текст;стар_текст;нов_текст;[номер вхождения])
Итоговый вид формулы:
- А1 – ячейка содержащая текст с переносами,
- СИМВОЛ(10) – символ переноса строки,
- » » – пробел.
Если же нам наоборот требуется вставить символ переноса на другую строку, вместо пробела проделаем данную операцию наоборот.
Что бы функция работало корректно во вкладке Выравнивание (Формат ячеек) должен быть установлен флажок «Переносить по словам».
Перенос с использование формулы СЦЕПИТЬ
Для решения нашей проблемы можно использовать формулу СЦЕПИТЬ.
У нас имеется текст в ячейках A1 и B1. Введем в B3 следующую формулу:
Как в примере, который я приводил выше, для корректной работы функции в свойствах требуется установить флажок «переносить по словам».
Часто требуется внутри одной ячейки Excel сделать перенос текста на новую строку. То есть переместить текст по строкам внутри одной ячейки как указано на картинке. Если после ввода первой части текста просто нажать на клавишу ENTER, то курсор будет перенесен на следующую строку, но другую ячейку, а нам требуется перенос в этой же ячейке.
Это очень частая задача и решается она очень просто — для переноса текста на новую строку внутри одной ячейки Excel необходимо нажать ALT+ENTER (зажимаете клавишу ALT, затем не отпуская ее, нажимаете клавишу ENTER)
Как перенести текст на новую строку в Excel с помощью формулы
Иногда требуется сделать перенос строки не разово, а с помощью функций в Excel. Вот как в этом примере на рисунке. Мы вводим имя, фамилию и отчество и оно автоматически собирается в ячейке A6
Для начала нам необходимо сцепить текст в ячейках A1 и B1 ( A1&B1 ), A2 и B2 ( A2&B2 ), A3 и B3 ( A3&B3 )
После этого объединим все эти пары, но так же нам необходимо между этими парами поставить символ (код) переноса строки. Есть специальная таблица знаков (таблица есть в конце данной статьи), которые можно вывести в Excel с помощью специальной функции СИМВОЛ(число), где число это число от 1 до 255, определяющее определенный знак.
Например, если прописать =СИМВОЛ(169), то мы получим знак копирайта ©
Нам же требуется знак переноса строки, он соответствует порядковому номеру 10 — это надо запомнить.
Код (символ) переноса строки — 10
Следовательно перенос строки в Excel в виде функции будет выглядеть вот так СИМВОЛ(10)
Примечание: В VBA Excel перенос строки вводится с помощью функции Chr и выглядит как Chr (10)
Итак, в ячейке A6 пропишем формулу
= A1&B1 &СИМВОЛ(10)& A2&B2 &СИМВОЛ(10)& A3&B3
В итоге мы должны получить нужный нам результат.
Обратите внимание! Чтобы перенос строки корректно отображался необходимо включить «перенос по строкам» в свойствах ячейки.
Для этого выделите нужную нам ячейку (ячейки), нажмите на правую кнопку мыши и выберите «Формат ячеек. »
В открывшемся окне во вкладке «Выравнивание» необходимо поставить галочку напротив «Переносить по словам» как указано на картинке, иначе перенос строк в Excel не будет корректно отображаться с помощью формул.
Как в Excel заменить знак переноса на другой символ и обратно с помощью формулы
Можно поменять символ перенос на любой другой знак, например на пробел, с помощью текстовой функции ПОДСТАВИТЬ в Excel
Рассмотрим на примере, что на картинке выше. Итак, в ячейке B1 прописываем функцию ПОДСТАВИТЬ:
A1 — это наш текст с переносом строки;
СИМВОЛ(10) — это перенос строки (мы рассматривали это чуть выше в данной статье);
» » — это пробел, так как мы меняем перенос строки на пробел
Если нужно проделать обратную операцию — поменять пробел на знак (символ) переноса, то функция будет выглядеть соответственно:
Напоминаю, чтобы перенос строк правильно отражался, необходимо в свойствах ячеек, в разделе «Выравнивание» указать «Переносить по строкам».
Как поменять знак переноса на пробел и обратно в Excel с помощью ПОИСК — ЗАМЕНА
Бывают случаи, когда формулы использовать неудобно и требуется сделать замену быстро. Для этого воспользуемся Поиском и Заменой. Выделяем наш текст и нажимаем CTRL+H, появится следующее окно.
Если нам необходимо поменять перенос строки на пробел, то в строке «Найти» необходимо ввести перенос строки, для этого встаньте в поле «Найти», затем нажмите на клавишу ALT , не отпуская ее наберите на клавиатуре 010 — это код переноса строки, он не будет виден в данном поле.
После этого в поле «Заменить на» введите пробел или любой другой символ на который вам необходимо поменять и нажмите «Заменить» или «Заменить все».
Кстати, в Word это реализовано более наглядно.
Если вам необходимо поменять символ переноса строки на пробел, то в поле «Найти» вам необходимо указать специальный код «Разрыва строки», который обозначается как ^l
В поле «Заменить на: » необходимо сделать просто пробел и нажать на «Заменить» или «Заменить все».
Вы можете менять не только перенос строки, но и другие специальные символы, чтобы получить их соответствующий код, необходимо нажать на кнопку «Больше >> «, «Специальные» и выбрать необходимый вам код. Напоминаю, что данная функция есть только в Word, в Excel эти символы не будут работать.
Как поменять перенос строки на пробел или наоборот в Excel с помощью VBA
Рассмотрим пример для выделенных ячеек. То есть мы выделяем требуемые ячейки и запускаем макрос
1. Меняем пробелы на переносы в выделенных ячейках с помощью VBA
Sub ПробелыНаПереносы()
For Each cell In Selection
cell.Value = Replace (cell.Value, Chr (32) , Chr (10) )
Next
End Sub
2. Меняем переносы на пробелы в выделенных ячейках с помощью VBA
Sub ПереносыНаПробелы()
For Each cell In Selection
cell.Value = Replace (cell.Value, Chr (10) , Chr (32) )
Next
End Sub
Код очень простой Chr (10) — это перенос строки, Chr (32) — это пробел. Если требуется поменять на любой другой символ, то заменяете просто номер кода, соответствующий требуемому символу.
Коды символов для Excel
Ниже на картинке обозначены различные символы и соответствующие им коды, несколько столбцов — это различный шрифт. Для увеличения изображения, кликните по картинке.
Вопрос:
Возможный дубликат:
Как бы вы подсчитали вхождения строки в строке (С#)?
У меня есть строка, которая имеет несколько подстрок и Enter (специальный символ, нажав клавишу Enter) между ними.
Не могли бы вы посоветовать мне написать регулярное выражение, которое учитывает ввод ключей между словами?
Спасибо
Лучший ответ:
В зависимости от используемого символа прерывания строки вам может потребоваться изменить только r
или просто n
.
var numberLineBreaks = Regex.Matches(input, @"rn").Count;
Ответ №1
Вам не нужно регулярное выражение, вы просто считаете строки. В частности, вы просто считаете Environment.Newline
s. Там много способов сделать это; несколько из них описаны в этом SO-ответе. Здесь тот, который выглядит неэффективным, но работает на удивление хорошо:
int count1 = source.Length - source.Replace(Environment.Newline, "").Length;
Ответ №2
Должно ли быть регулярное выражение? Есть, вероятно, более простые способы… например, вы можете использовать string[] array = String.Split('n');
для создания массива подстрок, затем получить счетчик с array.Length;
Ответ №3
Вы можете сделать, просто подсчитав строки новой строки:
int start = -1;
int count = 0;
while ((start = text.IndexOf(Environment.NewLine, start + 1)) != -1)
count++;
return count;
Ответ №4
Вы можете использовать этот код,
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
long a = CountLinesInString("This is anrnawesome website.");
Console.WriteLine(a);
long b = CountLinesInStringSlow("This is an awesomernwebsite.rnYeah.");
Console.WriteLine(b);
}
static long CountLinesInString(string s)
{
long count = 1;
int start = 0;
while ((start = s.IndexOf('n', start)) != -1)
{
count++;
start++;
}
return count;
}
static long CountLinesInStringSlow(string s)
{
Regex r = new Regex("n", RegexOptions.Multiline);
MatchCollection mc = r.Matches(s);
return mc.Count + 1;
}
}