Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как вытащить адреса из текстового файла?

248
06 декабря 2017 года
Dmitry2064
590 / / 06.12.2006
Не могу быстро разобраться с двумерным массивом (как его наполнить [с одномерным могу] и как с ним поработать).
Есть текстовый файл (mData.txt) с начинкой:
Иванов¦Iv@mail.ru;
Петров¦Pe@mail.ru;
Сидоров¦Si@mail.ru;

Надо из него сделать выпадающий(появляющийся) список с возможностью отметить галочкой получателей. И после выбора получить в переменную адреса (которые сидят после разделителя ¦).
Делаю макрос для отправки письма через Аутлюк с аттачем, путь к которому сидит в буфере обмена.
248
07 декабря 2017 года
Dmitry2064
590 / / 06.12.2006
Пришлось через текст выделять
Код:
Dim mAddress As New Collection
Dim mFIO As New Collection
Dim mMail As New Collection
Open "d:mData.txt" For Input As #1
Do While Not EOF(1)
        Line Input #1, TextLine
        mAddress.Add Item:=TextLine
        TextLine1 = TextLine1 + TextLine
Loop
    Close #1

For a = 1 To mAddress.Count
    mFIO_tmp = Split(mAddress(a), "¦")(0)
    mFIO.Add Item:=mFIO_tmp
Next a

For b = 1 To mAddress.Count
    mMail_tmp = Split(mAddress(b), "¦")(1)
    mMail.Add Item:=mMail_tmp
Next b
275
08 декабря 2017 года
pashulka
985 / / 19.09.2004
Если в используемом ListBox есть свойство Column, то как вариант :
Код:
Private Sub UserForm_Initialize()
    Dim t$, i&, a1(), a2: ReDim a1(1, 0)

    Open "D:mData.txt" For Input As #1
        Do While Not EOF(1)
           Line Input #1, t
           a2 = Split(t, "¦")
           a1(0, i) = a2(0)
           a1(1, i) = Replace(a2(1), ";", "")
           i = i + 1: ReDim Preserve a1(1, i)
        Loop
    Close #1
   
    ListBox1.Column = a1
End Sub

Private Sub CommandButton1_Click()
    Dim t$, i&
    With ListBox1
         For i = 0 To .ListCount - 1
             If .Selected(i) = True Then
                t = t & "," & .List(i, 1)
             End If
         Next
    End With
    MsgBox Mid(t, 2)
End Sub
248
25 декабря 2017 года
Dmitry2064
590 / / 06.12.2006
Цитата: pashulka
Если в используемом ListBox есть свойство Column, то как вариант :
Код:
Private Sub UserForm_Initialize()
    Dim t$, i&, a1(), a2: ReDim a1(1, 0)

    Open "D:mData.txt" For Input As #1
        Do While Not EOF(1)
           Line Input #1, t
           a2 = Split(t, "¦")
           a1(0, i) = a2(0)
           a1(1, i) = Replace(a2(1), ";", "")
           i = i + 1: ReDim Preserve a1(1, i)
        Loop
    Close #1
   
    ListBox1.Column = a1
End Sub
....

Спасибо. Именно такой вариант и хотелось увидеть - коротко и красиво.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог