Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
8 / 8 / 0
Регистрация: 09.02.2012
Сообщений: 48

При очищении StringBuilder в нем остается пустая строка

29.02.2012, 13:09. Показов 1437. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток!

При применении метода Clear:
(Removes all characters from the current StringBuilder instance.)

Все очищается, но остается символ 0A - новая строка. Каким образом удалить это? Или решить проблему другим способом?

PS/ Для добавления строк используется метод AppendLine

Спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.02.2012, 13:09
Ответы с готовыми решениями:

При копировании получается пустая строка
Option Explicit Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpBuffer As Long, _ ByVal lpStringToCopyTo...

Print и пустая строка при записи.
Если мы запишем в файл что то с помощю Print, то получим в конце пустую строку. Как сделать, чтоби ее не было?

При записи в таблицу первая строка пустая
Есть программа на подобии адресной книжки без привязки к внешним БД и есть проблема. При нажатии на кнопку "сохранить" значения...

6
 Аватар для gitarillo
755 / 554 / 48
Регистрация: 17.06.2010
Сообщений: 1,041
Записей в блоге: 1
29.02.2012, 13:37
Stas43, а если так
VB.NET
1
2
3
4
5
6
7
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim s As New System.Text.StringBuilder
        s.Append("Привет").AppendLine()
        MsgBox(s.ToString)
        s.Remove(0, s.Length)
        MsgBox(s.ToString)
    End Sub
0
8 / 8 / 0
Регистрация: 09.02.2012
Сообщений: 48
29.02.2012, 14:32  [ТС]
Не катит

VB.NET
1
2
3
4
5
6
7
8
9
10
11
Module Module1
    Sub Main()
        Dim s As New System.Text.StringBuilder
        s.Append("Привет").AppendLine()
        Console.WriteLine(s)
        s.Remove(0, s.Length)
        Console.WriteLine(s)
        s.Append("Привет").AppendLine()
        Console.WriteLine(s)
    End Sub
End Module
В косоли:
Привет

Привет

Т.о. символ новой строки остается.
0
 Аватар для gitarillo
755 / 554 / 48
Регистрация: 17.06.2010
Сообщений: 1,041
Записей в блоге: 1
29.02.2012, 14:43
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Stas43, так а ты думал. ты же выводишь пустоту.
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
 Sub Main()
        Dim S As New System.Text.StringBuilder
 
        S.Append("Привет").AppendLine()
        Console.WriteLine(S.ToString)
        S.Remove(0, S.Length)
        If S.ToString.Length Then
            Console.WriteLine(S.ToString)
        End If
 
        Console.Read()
    End Sub
0
8 / 8 / 0
Регистрация: 09.02.2012
Сообщений: 48
29.02.2012, 15:18  [ТС]
Не катит

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
Module Module1
    Sub Main()
        Dim S As New System.Text.StringBuilder
        S.Append("Привет1").AppendLine()
        Console.WriteLine(S.ToString)
        S.Remove(0, S.Length)
        If S.ToString.Length Then
            Console.WriteLine(S.ToString)
        End If
        S.Append("Привет2").AppendLine()
        Console.WriteLine(S.ToString)
    End Sub
End Module
Что в консоли?
Привет1

Привет2

S содержит 0A (после применения S.Remove(0, S.Length)) и строку с завершающими символами 0D0A

Добавлено через 4 минуты
Видимо там не исправить

Тогда такой вопрос: как строку превратить с набор символов, чтобы добавить в стрингбуилдер посимвольно? Я потом сам туда добавлю 0D0A

Добавлено через 15 минут
А вот так - срабатывает!

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    Sub Main()
        Dim str As String = "Привет1"
        Dim sb As New StringBuilder()
        For Each ch In str
            sb.Append(ch)
        Next
        Console.WriteLine(sb.ToString)
        sb.Length = 0
 
        str = "Привет2"
        For Each ch In str
            sb.Append(ch)
        Next
        Console.WriteLine(sb.ToString)
        Console.Read()
    End Sub
В консоли:
Привет1
ПРивет2
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
29.02.2012, 15:26
Stas43, а в начале вы зачем прибавляли к билдеру перевод строки - AppendLine() и при этом выводили бы с помощью Console.WriteLine - который также добавляет перевод строки при выводе.
Если вы используете AppendLine(), то лучше выводить строку с помощью Console.Write, а не Console.WriteLine
0
8 / 8 / 0
Регистрация: 09.02.2012
Сообщений: 48
29.02.2012, 15:39  [ТС]
Цитата Сообщение от Eugene22 Посмотреть сообщение
Stas43, а в начале вы зачем прибавляли к билдеру перевод строки - AppendLine() и при этом выводили бы с помощью Console.WriteLine - который также добавляет перевод строки при выводе.
Если вы используете AppendLine(), то лучше выводить строку с помощью Console.Write, а не Console.WriteLine
Ну, скажем, я использовал Ваш пример. Там AppendLine() присутствует. Сейчас проверил без него и (как я и знал) ничего не изменилось.

В окончательном варианте вопрос решен так:


VB.NET
1
2
3
4
5
6
7
8
9
Dim str As String = "Привет1"
        Dim sb As New StringBuilder()
        For Each ch In str
            sb.Append(ch)
        Next
        sb.Append(vbCrLf) ' Для Windows
        sb.Append(vbCr) ' Для MonoDeveloper и Linux
        Console.WriteLine(sb.ToString)
        sb.Length = 0
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.02.2012, 15:39
Помогаю со студенческими работами здесь

Эксепшн при попытке определить, пустая ли строка
char c1 = '0'; string cout = "0"; int count = 0; int Bdigl = Bdig.Length; if ( Bdigl > 0) ...

При записи в файл добавляется пустая строка
Доброго времени суток. В программе я записываю в файл введенные данные таким образом: for(int i=0; i<compList->count(); i++) ...

При обновлении страницы, добавляется пустая строка в БД
При обновлении страницы,добавляется пустая строка в БД. Как это исправить? Где может быть ошибка? <? include...

При вводе числа Пи появляется длинная пустая строка
При вводе числа Пи появляется длинная пустая строка , что сделать , чтобы маткад выдавал только символ Пи

При вводе через getline получается пустая строка
Не могу понять, почему программа пропускает сроку ввода названия(22). Хочу, чтобы я мог вводить название с пробелом. ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru