Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выравнивание текста в txt файле - VB 
:(
    Опции темы
ASSEI
Дата 22.3.2018, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 22.3.2018

Репутация: нет
Всего: нет



Ребята Здравствуйте! подскажи как выравнивается текст который записан в текстовом файле например по правому краю листа А4., у меня получилось так 
Код

.....
Dim TxtLen As Integer
Dim Spase As Integer
Open "Согласие.txt" For Output As #1
TxtLen = Len("Ф.И.О.: " & Text1)
Spase = 150 - TxtLen
 Print #1, Spc(Spase); "Ф.И.О.:"  & Text1
Close #1
.....

у меня на листе строки начинаются с новой строки с левой стороны листа, я честно говоря не пойму как произвести расчет? что бы строка начиналась с правой стороны, дело в том, что не возможно знать сколько символов будет в той или иной строке
PM MAIL   Вверх
Akina
Дата 22.3.2018, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 453



Не надо производить расчёт. Храните строки текста в строковых переменных фиксированной длины, а вставку выполняйте оператором RSET():

Код

Dim Buffer(1 to 60) As String * 80 ' или сколько надо в символах
' ...
Rset Buffer(i) = strData(i) ' strData помещается в Buffer с выравниванием по правому краю



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ASSEI
Дата 22.3.2018, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 22.3.2018

Репутация: нет
Всего: нет



Код

Dim Buffer(1 To 60) As String * 80 

Open "01.txt" For Output As #1
Dim i As Object
i = ("фио.: " & Text1.Text)
RSet Buffer(i) = strData(i)

правильно ли я записал? но при запуске ошибку выдает

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  01.jpg 9,53 Kb
PM MAIL   Вверх
Akina
Дата 22.3.2018, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 453



Цитата(ASSEI @  22.3.2018,  13:03 Найти цитируемый пост)
правильно ли я записал?

Конечно, нет, иначе и ошибки бы не было... За каким хреном нужны обрамляющие скобки в строке 5??? Нафига нужна переменная i, да ещё объектного типа? Откуда возьмётся массив strData?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ASSEI
Дата 22.3.2018, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 22.3.2018

Репутация: нет
Всего: нет



А можно как то по подробнее с массивами я вообще первый раз встречаюсь 
PM MAIL   Вверх
Akina
Дата 22.3.2018, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 453



Код
Const StringLength As Integer = 80 ' стандартный DOS-текст содержит 80 символов на строку

Sub WriteToFile(ArrayToWrite() As String, Filename As String)
Dim Buffer As String * StringLength
Dim From As Integer, Till As Integer, i As Integer, f As Integer

From = LBound(ArrayToWrite)
Till = UBound(ArrayToWrite)
f = FreeFile
Open Filename For Output As #f
For i = From To Till
    Buffer = Space(StringLength)
    RSet Buffer = ArrayToWrite(i)
    Print #f, Buffer;
    If i < Till Then Print #f,
Next i
Close #f
End Sub

Sub test()
Dim ar(2 To 5) As String
ar(2) = "str1"
ar(3) = "string2"
ar(4) = "string no 3"
ar(5) = "last string"
Call WriteToFile(ar(), "c:\tmp\test.txt")
End Sub



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.1188 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.