Запись в необходимом формате

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Druid-2004
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 08.08.2004 (Вс) 16:20
Откуда: Трехгорный

Запись в необходимом формате

Сообщение Druid-2004 » 04.10.2004 (Пн) 9:04

Очень нужно записать в определенном формате:
*форма
*две строки ввода
*кнопка запуска

Private Sub Command1_click()
a$=form1.TextBox1.text
b$=form1.TextBox2.text
open "file.dat" for append as #1
\\здесь нужно записать строку в файл таким образом:
485677 |какая-то неважная строка |
^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
не важно | здесь не важно, сколько символов в массиве b$, важно
какое количество\ чтобы разделитель стоял 20-м по счету
символов в массиве a$,\
важно, чтобы разделитель\
стоял в восьмым по счету\
извесно точно - символов будет не больше семи\
close #1
End Sub
С уважением, Druid

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 04.10.2004 (Пн) 9:12

Druid-2004 писал(а):здесь не важно, сколько символов в массиве b$, важно
какое количество

Толи я торможу с утра, толи ты не совсем коректно обьяснил, что именно тебе надо!
Уточни, и тебе помогут!
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

Druid-2004
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 08.08.2004 (Вс) 16:20
Откуда: Трехгорный

Отвечаю

Сообщение Druid-2004 » 04.10.2004 (Пн) 9:49

Не важно сколько символов будет записано в массив a$, важно чтобы символ, разделяющий записанные в файл данные, был на 8-ой позиции... что-то типа
XXXXXXXYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
где:
X - символы из массива a$
Y - символ, разделяющий записанные в файл данные
Z - символы из массива b$

То есть, в записанном в файл варианте,
при условии, что a$="bla1",b$="bla-bla-bla",
должно быть следующее:

bla1___|bla-bla-bla_______________________________________

Ну не знаю, куда более точнее сказать...
С уважением, Druid

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 04.10.2004 (Пн) 10:08

SHURUP согласен с табой! :D

А если не секрет зачем? может есть другое решение этой задачи? :)
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

Druid-2004
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 08.08.2004 (Вс) 16:20
Откуда: Трехгорный

Сообщение Druid-2004 » 04.10.2004 (Пн) 10:20

_Мика_ писал(а):SHURUP согласен с табой! :D

А если не секрет зачем? может есть другое решение этой задачи? :)


Не секрет, но другого решения нет.... очень не хочу с базами возица... ))
С уважением, Druid

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 04.10.2004 (Пн) 10:23

На вторую формулировку вопроса:
Код: Выделить всё
Private Sub Command1_Click()
Const SeparatorPos = 8  'позиция разделителя
    Separator$ = "|"    'символ-разделитель
    spaceChar$ = "_"    'символ для заполнения если длина а$ меньше чем нужно.
    a$ = Text1.Text
    b$ = Text2.Text
    If Len(a$) > SeparatorPos - 1 Then
        'если есть лишние символы - удаляем
        a$ = Left$(a$, SeparatorPos - 1)
    ElseIf Len(a$) < SeparatorPos - 1 Then
        'если длина a$ меньше чем надо заполняем символом spaceChar$
        a$ = a$ & String$(SeparatorPos - Len(a$) - 1, spaceChar$)
    End If
Open "file.dat" For Append As #1
    Print #1, a$ & Separator$ & b$
Close
End Sub
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.10.2004 (Пн) 14:32

SHURUP писал(а):На вторую формулировку вопроса:
Код: Выделить всё
Private Sub Command1_Click()
Const SeparatorPos = 8  'позиция разделителя
    Separator$ = "|"    'символ-разделитель
    spaceChar$ = "_"    'символ для заполнения если длина а$ меньше чем нужно.
    a$ = Text1.Text
    b$ = Text2.Text
    If Len(a$) > SeparatorPos - 1 Then
        'если есть лишние символы - удаляем
        a$ = Left$(a$, SeparatorPos - 1)
    ElseIf Len(a$) < SeparatorPos - 1 Then
        'если длина a$ меньше чем надо заполняем символом spaceChar$
        a$ = a$ & String$(SeparatorPos - Len(a$) - 1, spaceChar$)
    End If
Open "file.dat" For Append As #1
    Print #1, a$ & Separator$ & b$
Close
End Sub

Опять же, а вот как сделал бы я:
Код: Выделить всё
Private Sub Command1_Click()
Const SeparatorPos = 8  'позиция разделителя
    Separator$ = "|"    'символ-разделитель
    spaceChar$ = "_"    'символ для заполнения если длина а$ меньше чем нужно.
    a$ = Left$(Text1.Text & String$(SeparatorPos - 1, spaceChar$), SeparatorPos - 1)
    b$ = Text2.Text
Open "file.dat" For Append As #1
    Print #1, a$ & Separator$ & b$
Close
End Sub
Изображение

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 04.10.2004 (Пн) 14:41

2 tyomitch: Я в шоке :shock: :shock: :shock: (и уже не в первый раз)!
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 04.10.2004 (Пн) 17:00

А вообще, надо создавать класс для файла этого формата и работать с ним через объекты. Конечно, в VB6 ООП не на высшем уровне, но надо себя готовить к .NET.

Код Тёмыча можно запихать в метод Write :)
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList