122 / 122 / 12
Регистрация: 12.06.2010
Сообщений: 499
Записей в блоге: 2
1

Удалить пустую строку при считывании текстового файла

14.08.2010, 17:05. Показов 4139. Ответов 14
Метки нет (Все метки)

Дана форма на ней имеется два текст бокса (на обоих multiline=true и wordwrap=false)
Требуется удалить пустую строку при открывании текстового файла.
Чтобы было понятнее поясню: при сохранении в файл записывается информация из первых 4 строчек одного текстбокса + всех строчек другого. При первом сохранении все отлично файл будет выглядеть следующим образом:

Первая строка из превью текст бокса
Вторая строка из превью текст бокса
Третья строка из превью текст бокса
Четвертая строка из превью текст бокса
Первая строка из главного текстбокса
Вторая строка из главного текстбокса
Третья строка из главного текстбокса
Четвертая строка из главного текстбокса
Пятая строка из главного текстбокса
Шестая строка из главного текстбокса
Но затем если этот же файл открыть и снова сохранить то получается следующее:

Первая строка из превью текст бокса
Вторая строка из превью текст бокса
Третья строка из превью текст бокса
Четвертая строка из превью текст бокса
-------------пустая строка-------------
Первая строка из главного текстбокса
Вторая строка из главного текстбокса
Третья строка из главного текстбокса
Четвертая строка из главного текстбокса
Пятая строка из главного текстбокса
Шестая строка из главного текстбокса
-------------пустая строка-------------
Так вот как удалить эти пустые строки?
Вложения
Тип файла: rar BOT.rar (59.2 Кб, 40 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.08.2010, 17:05
Ответы с готовыми решениями:

Удалить пустую строку из файла txt
День добрый :) Есть файл .txt, в котором последняя строка пустая (из базы так выгружается, ничего...

Неправильная кодировка при считывании кирилицы из текстового файла
У меня есть код для считывания текста из файла... если в файле русский язык то он выдает непонятные...

Появляются лишние символы при считывании текстового файла
Добрый день. Необходима помощь, имеется текстовый файл, в котором содержится информация о том или...

Удалить пустую строку при записи в файл
Здравствуйте форумчане! Помогите организовать удаление последней пустой строки при сохранении в...

14
122 / 122 / 12
Регистрация: 12.06.2010
Сообщений: 499
Записей в блоге: 2
14.08.2010, 19:13  [ТС] 2
Так же как сделать чтобы при сохранении уже существующего файла программа не выдавала запрос о сохранении, а просто перезаписывала текстовик.
0
407 / 359 / 82
Регистрация: 07.10.2009
Сообщений: 558
16.08.2010, 10:12 3
Вот исправленный вариант и по первому и по второму вопросу, изменения комментированы.
По-моему, так!
Вложения
Тип файла: zip ВОТ.zip (63.3 Кб, 67 просмотров)
1
122 / 122 / 12
Регистрация: 12.06.2010
Сообщений: 499
Записей в блоге: 2
16.08.2010, 17:27  [ТС] 4
Спасибо
Тот вопрос я решил по-другому, но более неудобным способом)
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
 If .ShowDialog() = Windows.Forms.DialogResult.OK Then
Dim NewTBtext As String = ""
Dim myLine As Integer
 For myLine = 0 To TB.Lines.Length - 2
   If myLine = TB.Lines.Length - 2 Then
     NewTBtext = NewTBtext & TB.Lines(myLine)
   Else
     NewTBtext = NewTBtext & TB.Lines(myLine) & vbCrLf
  End If 
 Next
My.Computer.FileSystem.WriteAllText(.FileName, TB_Preview.Text & vbCrLf & NewTBtext, False, System.Text.Encoding.GetEncoding(1251))
end if
Новый вопрос который можно сделать на этом же проекте как заменить конкретную строку в текст боксе?
Допустим на форме размещено еще одно текстовое поле (ScrollBars=none, multiline=false) и еще одна кнопка "Добавить"
При нажатии на которую строка номер 2 в главном текстбоксе заменяется на заданную в текстовом поле.
Что то подобное отказывается работать:
VB.NET
1
2
3
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        TB_Preview.Lines(2).Insert(0,TextBox1.Text)
    End Sub
причем нужно учесть что строка будет либо пустая, либо уже с текстом в ней (тогда текст нужно будет заменить)

Добавлено через 35 минут
Еще один вопрос как удалить конкретную строку(строки) в текст боксе
0
407 / 359 / 82
Регистрация: 07.10.2009
Сообщений: 558
16.08.2010, 20:32 5
По-моему, так:
VB.NET
1
2
3
4
5
6
7
Dim str() As String = TB_Preview.Lines
str(2) = textBox1.Text
str(3) = Nothing'как удалить конкретную строку(строки) в текст боксе 
TB_Preview.Text = Nothing
For Each s As String In str
    TB_Preview.Text += (s & vbCrLf)
Next
0
122 / 122 / 12
Регистрация: 12.06.2010
Сообщений: 499
Записей в блоге: 2
16.08.2010, 20:42  [ТС] 6
нет не получается сейчас выложу пример
0
122 / 122 / 12
Регистрация: 12.06.2010
Сообщений: 499
Записей в блоге: 2
16.08.2010, 21:02  [ТС] 7
Вот пример
Вложения
Тип файла: rar example.rar (57.7 Кб, 48 просмотров)
0
Почетный модератор
Эксперт .NET
8710 / 3662 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
16.08.2010, 21:17 8
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Замена строки:
VB.NET
1
2
3
4
5
6
Dim str() As String = TB_Preview.Lines
        str(2) = TextBox1.Text
        TB_Preview.Text = ""
        For Each s As String In str
            TB_Preview.Text += s & vbCrLf
        Next
Удаление:
VB.NET
1
2
3
4
5
6
7
8
Dim str() As String = TB_Preview.Lines
        TB_Preview.Text = ""
        Dim delIndex As String = 1 'Индекс строки, начиная с нуля.
        For i As Integer = 0 To str.Length - 1
            If (i <> delIndex) Then
                TB_Preview.Text += str(i) & vbCrLf
            End If
        Next
И на счет сохранения, не видел то что уже сделано, но может этот вариант покатит, главное чтобы в текстовом поле было всегда больше 2х символов (т.е. вмещал знак vbCrLf).
VB.NET
1
2
3
My.Computer.FileSystem.WriteAllText(.FileName, TB_Preview.Text & _
                                                    TB.Text.Substring(0, TB.TextLength - 2), _
                                                    False, System.Text.Encoding.GetEncoding(1251))
0
122 / 122 / 12
Регистрация: 12.06.2010
Сообщений: 499
Записей в блоге: 2
16.08.2010, 21:22  [ТС] 9
Сейчас попробую
Сорри за нубский вопрос но что значит знак '+='
0
Почетный модератор
Эксперт .NET
8710 / 3662 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
16.08.2010, 21:27 10
TB_Preview.Text += str(i) + vbCrLf эквивалентно TB_Preview.Text = TB_Preview.Text + (str(i) + vbCrLf)
1
122 / 122 / 12
Регистрация: 12.06.2010
Сообщений: 499
Записей в блоге: 2
16.08.2010, 21:27  [ТС] 11
Цитата Сообщение от SSTREGG Посмотреть сообщение
VB.NET
1
2
3
4
5
6
Dim str() As String = TB_Preview.Lines
 str(2) = TextBox1.Text
 TB_Preview.Text = ""
 For Each s As String In str
 TB_Preview.Text += s & vbCrLf
 Next
он заменяет 3 строку, но есть одно но: создает пустые строки после 4 строки
0
Почетный модератор
Эксперт .NET
8710 / 3662 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
16.08.2010, 21:32 12
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

VB.NET
1
2
3
4
5
6
7
8
9
Dim str() As String = TB_Preview.Lines
        str(2) = TextBox1.Text
        TB_Preview.Text = ""
        For i As Integer = 0 To str.Length - 1
            TB_Preview.Text += str(i)
            If i <> str.Length - 1 Then
                TB_Preview.Text += vbCrLf
            End If
        Next
1
122 / 122 / 12
Регистрация: 12.06.2010
Сообщений: 499
Записей в блоге: 2
16.08.2010, 21:38  [ТС] 13
Вот то что нужно осталось разобраться с вопросом об удалении пустой строчки, SSTREGG если не сложно скачай пример
0
Почетный модератор
Эксперт .NET
8710 / 3662 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
16.08.2010, 21:58 14
Цитата Сообщение от Pe4eNEG Посмотреть сообщение
удалении пустой строчки
Где?О_о
0
0 / 0 / 0
Регистрация: 19.01.2011
Сообщений: 7
21.04.2011, 10:09 15
Цитата Сообщение от SSTREGG Посмотреть сообщение
For i As Integer = 0 To str.Length - 1
что делает строка?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.04.2011, 10:09
Помогаю со студенческими работами здесь

Переход на новую строку при считывании из файла
Мне нужно прочитать из файла структуру Student, в которой указываются такие данные студента:...

Как пропустить строку при считывании из файла?
Подскажите, плз, как пропустить строку при считывании данных из текстового файла. Имеется файл,...

При считывании файла появляются лишние переходы на следующую строку
void __fastcall TForm2::Button3Click(TObject *Sender) //Кнопка &quot;Назад&quot; { FILE *Slovar; ...

Удалить строку из текстового файла
Необходимо удалить самую короткую строку из текстового файла. Данные из файла я считал. Переписал в...


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

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

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