Отключение комбинации Chr(13)+Chr(10) в Print#

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

Отключение комбинации Chr(13)+Chr(10) в Print#

Сообщение Ronin_1978 » 03.10.2003 (Пт) 17:37

Суть проблемы:
Нужно создать txt-шник такого типа:

Строка1
Строка2
Строка3
...
СтрокаN

Я пишу строки в файл при помощи Print#, однако он добавляет к каждой строке Chr(13)+Chr(10). В итоге в конце получается пустая строка. Как этого избежать?

З.Ы. Write# ведёт себя так же.
... На небесах святые - ты слышишь стоны?
По тебе плачет колокол, а где-то во мраке
На ветру качаются вопросительные знаки... (С) Каста.

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 03.10.2003 (Пт) 17:59

По мойму, если я не шибаюсь, не надо объявлять файл как текстовый.

И еще смутно вспоминаю, может быть надо заканчивать список print ;

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 03.10.2003 (Пт) 20:33

А мне кажется, что при выводе последней строки просто не надо указывать переход на следующую строку, т.е. поставь проверку, если строка не последняя, то переходи на новую строку, а если нет, то не переходи, и еще после Print можно использовать ";" - это уже переход на следующую строку, но по-моему, у тебя все-равно будет пустая строка в конце, так, что юзай условия.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.10.2003 (Сб) 7:41

Код: Выделить всё
Option Explicit

Private Sub Form_Load()
  Dim i As Long
 
  Open "c:\1.txt" For Output Access Write As #1
 
  For i = 1 To 10
    If i = 10 Then Print #1, "Ага!"; Else Print #1, "Ага!"
  Next
 
  Close #1
End Sub
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 04.10.2003 (Сб) 8:13

GSerg Абсолютно прав, если список Print заканчавется точкой с запятой ";", то Print не переводит строки в текстовом файле, если конечно строка не заканчивается комбинацией двух символов с десятичными кодами 13 и 10. Мало того, если в Print имена строковых переменных разделены точкой с запятой";", то они в текстовый файл выводятся плотно к друг-другу.
Еще, кое что, если в текстовом файле есть символ с десятичным кодом 26, то функция Eof считает что файл заканчивается именно на этом символе.

Ronin_1978
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 05.04.2003 (Сб) 14:42
Откуда: Москва

Сообщение Ronin_1978 » 04.10.2003 (Сб) 12:45

Всем спасибо, всё заработало!!!
... На небесах святые - ты слышишь стоны?
По тебе плачет колокол, а где-то во мраке
На ветру качаются вопросительные знаки... (С) Каста.


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

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

Сейчас этот форум просматривают: Yandex-бот и гости: 5

    TopList