powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / проблема с функцией print #1 tab(n)
9 сообщений из 9, страница 1 из 1
проблема с функцией print #1 tab(n)
    #37869395
ant_sol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мне необходимо создать текстовый файл, который будет содержать определенный текст, который должен начинаться с определенной строки.

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

для решения этой задачи использую функцию print #1 tab(n), но некоторый текст печатается на 1 символ дальше.

как исправить этот баг ??

вот листинг :


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Sub bb()
Dim y&, x&

Sheets("Книга4").Range("d1").Value = Format(Time, ShortTime)

Open "C:\текст1.txt" For Output As #1

For y = 2 To Cells(Rows.Count, 2).End(xlUp).Row Step 3
For x = 1 To Cells(y, Columns.Count).End(xlToLeft).Column

Print #1, Tab(Cells(y, x)); Cells(y + 2, x);

Next
Print #1,
Next

Reset
End Sub


Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
проблема с функцией print #1 tab(n)
    #37869413
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
Next
Print #1,
Next



помедитируйте над этим
...
Рейтинг: 0 / 0
проблема с функцией print #1 tab(n)
    #37869488
ant_sol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,
убрал
Код: vbnet
1.
Print #1


ничего не изменилось
...
Рейтинг: 0 / 0
проблема с функцией print #1 tab(n)
    #37869548
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда ищите концы в своей функции Tab()
и, кстати, разделитель ";" внутри Print является кодом табуляции

и , кстати 2, вы где проверяете , что у вас что-то там лишнее? если в блокноте, то поставьте моноширинный шрифт
...
Рейтинг: 0 / 0
проблема с функцией print #1 tab(n)
    #37869553
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneтогда ищите концы в своей функции Tab()это не пользовательская функция, это функция принта
Konst_Oneи, кстати, разделитель ";" внутри Print является кодом табуляциинет
...
Рейтинг: 0 / 0
проблема с функцией print #1 tab(n)
    #37869555
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProKonst_Oneтогда ищите концы в своей функции Tab()это не пользовательская функция, это функция принта
Konst_Oneи, кстати, разделитель ";" внутри Print является кодом табуляциинет

да, давно не смотрел.
надо бы проверить.
...
Рейтинг: 0 / 0
проблема с функцией print #1 tab(n)
    #37869562
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Note: The formatting option for Print discussed in this topic is only meaningful if the object you are printing to is set to a monospaced font (like Courier or Fixedsys ). The output will not look right if the object is set to a proportional font (like the default MS Sans Serif, Times New Roman, etc.).



The Tab function can be used only in the expression list of a Print statement and is written Tab(n). Tab is the name of the function; the expression in parentheses is called the argument. The argument n refers to a position on a line. The value n indicates an absolute position, not a relative one, on the output line. The first position on a line is Tab(1), the thirtieth position is Tab(30), and the fiftieth position is Tab(50), and so on. For example, the statement



Print Tab(10); "ORD NBR"; Tab(25); "PRODUCT"
...
Рейтинг: 0 / 0
проблема с функцией print #1 tab(n)
    #37869573
ant_sol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,
смотрю в блокноте, все включено
...
Рейтинг: 0 / 0
проблема с функцией print #1 tab(n)
    #37869834
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На одну позицию дальше выводится положительное число. Пробел зарезервирован для знака минус, чтобы у положительных и отрицательных чисел, выводимых в столбец в одинаковом формате, совпадало положение десятичной точки.

Для решения проблемы можно конвертированть все выводимые значения в строки:
Код: vbnet
1.
Print #1, Tab(Cells(y, x)); Cstr(Cells(y + 2, x));

Строки выводятся без доп. пробела.
Например
Код: vbnet
1.
2.
Print #1, Tab(3); 1.23; Tab(10); CStr(1.23)
Print #1, Tab(3); -1.23; Tab(10); CStr(-1.23)

Результат
Код: plaintext
1.
   1,23  1,23
  -1,23  -1,23
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / проблема с функцией print #1 tab(n)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]