Проблема с последним переводом строки в текстовом файле

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Проблема с последним переводом строки в текстовом файле

Сообщение Pantalone » 17.07.2018 (Вт) 14:52

Давно не работал с файлами. Наверное детский вопрос.

Есть два текстовых файла, первый такой:
Код: Выделить всё
1
2


Второй такой:
Код: Выделить всё
1
2

Т.е. у второго нет перевода строки в конце последней строки.
Читаю файлы построчно через Line Input, запихивая строки в массив. Меняю текст в строках, после чего вывожу данные обратно в том же виде в новый файл. С первым файлом все проходит нормально, а у второго появляется ненужный перевод строки. Как я понял, это делает Print. Раскопал в инете, что если в конце Print поставить точку с запятой, то перевода строки не будет. Но как узнать был ли вообще перевод строки у файла в самом конце или нет?

Teranas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 224
Зарегистрирован: 13.12.2008 (Сб) 4:26
Откуда: Новосибирск

Re: Проблема с последним переводом строки в текстовом файле

Сообщение Teranas » 17.07.2018 (Вт) 15:11

Возьми два байта в конце сформированного файла, да проверь на &H0D &H0A.

Код: Выделить всё
Function Get0D0A(file_ext As String) As Boolean
  Dim f As Integer, n As Long, b As Byte
  f = FreeFile
  Open file_ext For Binary As #f
    n = LOF(f)
    Get #f, n, b
  Close #f
  If b = &HA Or b = &HD Then Get0D0A = True
End Function
С уважением, Андрей.

Pantalone
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 687
Зарегистрирован: 12.11.2005 (Сб) 16:46
Откуда: Сапог

Re: Проблема с последним переводом строки в текстовом файле

Сообщение Pantalone » 17.07.2018 (Вт) 15:27

Спасибо.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 54

    TopList