Как сохранить пробелы с escape-последовательностями stringbuilder c#

#c# #asp.net #whitespace #ansi-escape

#c# #asp.net #пробелы #ansi-escape

Вопрос:

У меня есть stringbuilder настройка с escape-последовательностями для отображения ASCII-изображения в тексте. Я использую ASP.NET Веб-формы. Вот мой код:

 sb.AppendLine(@"   _____ ______   ___  ___  ________                                        ");
sb.AppendLine(@"  |   _   _   |  |  |   ___                                        ");
sb.AppendLine(@"     \__      \     _|                                       ");
sb.AppendLine(@"      \|__|      \      \                                      ");
sb.AppendLine(@"                 \     _\                                     ");
sb.AppendLine(@"      __     __ _______ _______                                   ");
sb.AppendLine(@"      |__|     |__||_______||_______|                                   ");
sb.AppendLine(@"                                                                            ");
  

И вот результат:

  _____ ______ ___ ___ ________ 
 | _  _ | | | ___  
   \__    \   _|  
   \|__|    \    \  
        \   _\  
  __  __ _______ _______ 
 |__| |__||_______||_______|   
  

Я использую текстовое поле для отображения моего stringbuilder textbox1.Text = sb.ToString(); и распечатываю его на ASP.NET страница.

Как я могу сохранить свои строки так же, как я их ввел?

Комментарии:

1. Покажите, как вы также генерируете выходные данные, это может иметь отношение к проблеме.

2. Я не вижу проблем, то, что вы ввели, — это то, что вы получили. Да, выходные данные в SO в вопросе выглядят по-разному, но если вы скопируете / вставите текст своего вопроса (см. в редактировании) в блокнот, 2 выглядят совершенно одинаково. Так что, вероятно, это просто зависит от того, что вы используете для просмотра этого вывода.

3. @MarkSchultheiss, извините, только что добавил, что

4. @igor Его «вывод» отличается от кода. Его вывод содержит не более 1 пробела в строке, но его код содержит до ~ 5 пробелов в строке. нейт должен показать нам, как он генерирует выходные данные или как он их просматривает. Комментарии StackOverflow, например, удаляют лишние пробелы (кроме 1 символа), поэтому, возможно, все, с чем он «просматривает» текст, удаляет все, кроме 1 пробела.

5. ПРИМЕЧАНИЕ: пробелы сохраняются в a string в C #, а также в a StringBuilder (он принимает strings ) — так что это не StringBuilder вещь, и я удалю тег

Ответ №1:

Результатом является веб-страница html, а в html несколько пробелов отображаются как один пробел.

Вы могли бы решить это с помощью css:

 .myTextBox{
  white-space: pre;
}
  

Или с помощью <pre> тега, если это не так, и элемента формы ( <input> и т. <textarea> Д.):

 <div>multiple    spaces     will     be    displayed    as    one space</div>
<pre>multiple    spaces     will     be    displayed    as     typed! </pre>
  

Комментарии:

1. Я пытаюсь это сейчас

2. Я не мог заставить css работать в asp.net страница по какой-то причине, но я заставил работать тег <pre>. Жаль, что я не мог заставить css работать, тег создает рамку вокруг текстового поля

3. Если вы опубликуете HTML-код, вам будет легче помочь 🙂

4. на странице, на которой находится текстовое поле:

5. <style type=»text/css»> .txtMain{ white-space: pre; } </style>