Путь к файлу

Программирование на Visual Basic for Applications
veroman
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 26.06.2004 (Сб) 10:57

Путь к файлу

Сообщение veroman » 28.07.2004 (Ср) 16:34

Пользователь в диалоговом окне открывает текстовый файл, нужно перехватить путь этого файла для последующей работы с ним.
Код: Выделить всё
    Dim fd As FileDialog

    Set fd = Application.FileDialog(msoFileDialogFilePicker)
   
    With fd
              If .Show = -1 Then

            For Each vrtSelectedItem In .SelectedItems
            MsgBox "The path is: " & vrtSelectedItem
            Next vrtSelectedItem
        Else
        End If
    End With

Вот так я могу печатать путь к файлу, но если я пишу например
Set f = fso.GetFile("& vrtSelectedItem") он не может найти файл, как мне быть?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 28.07.2004 (Ср) 16:44

Set f = fso.GetFile(vrtSelectedItem)
I don't understand. Sorry.

veroman
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 26.06.2004 (Сб) 10:57

Сообщение veroman » 28.07.2004 (Ср) 17:05

Код: Выделить всё
Dim fso As Scripting.FileSystemObject
Set fso = New Scripting.FileSystemObject
Dim ts As Scripting.TextStream
Dim f As Scripting.File
Set f = fso.OpenTextFile(vrtSelectedItem, 8, TristateFalse)

Ругается на последнюю строку Type mismatch

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 28.07.2004 (Ср) 17:33

Хм. Пропреть по умолчанию значит цеплять не хочет... Ну напиши тогда ему vrtSelectedItem.name что ли :)
I don't understand. Sorry.

veroman
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 26.06.2004 (Сб) 10:57

Сообщение veroman » 28.07.2004 (Ср) 17:37

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

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 28.07.2004 (Ср) 18:01

Если только перекодировать в памяти, а потом обратно записать в ANSI уже. Перекодировка делается через

Код: Выделить всё
Private Declare Function OemToCharBuff Lib "user32" Alias "OemToCharBuffA" (ByVal lpszSrc As String, ByVal lpszDst As String, ByVal cchDstLength As Long) As Long
I don't understand. Sorry.

veroman
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 26.06.2004 (Сб) 10:57

Сообщение veroman » 28.07.2004 (Ср) 18:58

что-то я ничего не понял.....можно поподробнее обьяснить? Как конкретно мне пересобачить файл из досовкой кодировки

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 29.07.2004 (Чт) 8:51

1. Читаешь файл построчно

2. Каждую строку после чтения перекодируешь и добавляешь в коллекцию

3. Записываешь содержимое клоллекции обратно в файл.
I don't understand. Sorry.


Вернуться в VBA

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

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

    TopList