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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как через окно ,,Open,, получить полное файла 
:(
    Опции темы
glotik
Дата 31.8.2006, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Народ!!! Мне надо через окно ,,Опен,, в Ворде получить полное имя выбранного файла....то есть имя вместе с каталогом расположения. Пожскажите плизз!!!
PM MAIL   Вверх
Akina
Дата 31.8.2006, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



А какое именно "окно Опен" имеется в виду? пожалуйста опишите поточнее - есть минимум 3 принципиально разных способа получить это окно на экране.


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

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


Новичок



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

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



ею ввиду вот такой:
Sub OpenWordFile()
Const iTitle = "Открытие файла"
Dim fName As String
Dim lRetVal As Long
Dim fPath As String
Dim a
 With Application.Dialogs(wdDialogFileOpen)
lRetVal = .Display
fName = .Name
End With
MsgBox fName
End Sub

он мне выдает имя выбранного файла..а мне надо полное имя, то есть с каталогом расположения...что-то с функцией FullName

Это сообщение отредактировал(а) glotik - 31.8.2006, 14:58
PM MAIL   Вверх
mihanik
Дата 31.8.2006, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



А если этот документ реально открыть, а потом у него "спросить" .Path?


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Akina
Дата 31.8.2006, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Код

Sub OpenWordFile()
Const iTitle = "Открытие файла"
Dim fName As String
Dim lRetVal As Long
Dim fPath As String
Dim a
 With Application.Dialogs(wdDialogFileOpen)
lRetVal = .Display
fName = .Name
End With
MsgBox "Path = " & Options.DefaultFilePath(wdCurrentFolderPath) & vbNewLine & "Name = " & fName
End Sub



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

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


Новичок



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

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




Akina:
спасибо большое...все работает....но мне надо дальше работать с переменной, которая содержит каталог расположения файла..то есть далее в этом каталоге мне надо создть  1 подкаталог...
В какой переменной хранится информация о каталоге расположения???

Добавлено @ 06:23 
Цитата(mihanik @  31.8.2006,  15:25 Найти цитируемый пост)
А если этот документ реально открыть, а потом у него "спросить" .Path? 

Пониимаешь что чем дело...мне его открывать не надо, а нужен только каталог расположения файла...то есть моей программой не предусмотрено открытие файла...вот я и парсь smile ...
Тем более у меня выбранным файлм может бытьт не обязательно документ а в принципе любой файл...и его не нужно открывать...



Это сообщение отредактировал(а) glotik - 1.9.2006, 06:40
PM MAIL   Вверх
mihanik
Дата 1.9.2006, 06:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



Цитата(glotik @  1.9.2006,  06:21 Найти цитируемый пост)
каталоге мне надо создть  1 подкаталог


Что-то я в этой жизни не понимаю... smile 
У тебя уже есть полный путь к файлу.
Так? smile 
В этом пути можно найти и диск и все родительские каталоги.
Так? smile 
Обработай ручками эту переменную и получи каталог расположения файла.
Правила построения path знаешь? smile 
Кода получится, ну... Пара строк!




--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
glotik
Дата 1.9.2006, 06:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



дак я не знаю в какой переменной хранится информация о пути к файлу..вот в чем дело...
Так бы конечно все уже сделал...в этой прорамме просто в диалоговом окне выдается информация о пути...а вот в какой переменной хранится эта информация..???
PM MAIL   Вверх
mihanik
Дата 1.9.2006, 06:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



Код

Sub OpenWordFile()
Const iTitle = "Открытие файла"
Dim fName As String
Dim lRetVal As Long
Dim fPath As String
Dim strMyFullPath As String
Dim a
 With Application.Dialogs(wdDialogFileOpen)
lRetVal = .Display
fName = .Name
End With
strMyFullPath = Options.DefaultFilePath(wdCurrentFolderPath) + "\" + fName
MsgBox "Path = " & strMyFullPath
End Sub


Теперь полное имя файла вместе с путём храниться  в strMyFullPath...



--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
glotik
Дата 1.9.2006, 07:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



спасибо тебе огромное...век воли не видать!!!!)))))) smile 
PM MAIL   Вверх
glotik
Дата 1.9.2006, 08:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



у меня тут еще вопрос возник...
вот в полученном каталоге мне надо создать подкаталог ,,Copy,, и скопировать туда выбранный файл но уже с другим именем...ты не знаешь как сослаться на этот выбранный файл чтобы его скопировать???
PM MAIL   Вверх
Akina
Дата 1.9.2006, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



glotik, ты когда-нибудь справку пробовал читать? Что? да? сомнительно...

Ну-ка посмотри, что у нас там про команду 
Код

Name Src, Dst



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

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


Новичок



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

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



понимаешь там все на английском..а я как-то не силен пока в нем...
У меня есть толстенная книга..я восновном оттуда все черпаю..
PM MAIL   Вверх
mihanik
Дата 1.9.2006, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



О том, как работать с папками, файлами и т.п. подробно описано ЗДЕСЬ

Смотри Copy Method, CopyFile Method, CopyFolder Method ...


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
glotik
Дата 1.9.2006, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



это конечно все хорошо..но там все на английском..это немного усложняет задачу..
PM MAIL   Вверх
mihanik
Дата 1.9.2006, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



Создаём новую папку...


 
Код

Function CreateFolderDemo

  Dim fso, f
   Dim strFolderName as String

   Set fso = CreateObject("Scripting.FileSystemObject")

   strFolderName = Options.DefaultFilePath(wdCurrentFolderPath) + "\" + "Copy"

   Set f = fso.CreateFolder(strFolderName )

   CreateFolderDemo = f.Path

End Function



Файл сам скопируешь?

Это сообщение отредактировал(а) mihanik - 1.9.2006, 09:45


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
glotik
Дата 1.9.2006, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ну вообще-то я уже создал новую папку...вот так
:
Код

strMyFullPath = Options.DefaultFilePath(wdCurrentFolderPath) + "\Copy"
MsgBox strMyFullPath
MsgBox fName
MkDir strMyFullPath


 вот самая загвоздка в том что мне надо сослаться на этот файл...и далее его еще переименовать..ну думаю переименовать я смогу...мне бы хотя бы скопировать..
PM MAIL   Вверх
mihanik
Дата 1.9.2006, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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




Код

FileSystemObject.CopyFile "Полное имя откуда", "Полное имя куда"


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



--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
glotik
Дата 1.9.2006, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



вобщем по этим советам я сделал вот так:
Код

Sub OpenWordFile321()
Const iTitle = "Îòêðûòèå ôàéëà"
Dim fName As String
Dim lRetVal As Long
Dim fPath As String
Dim strMyFullPath As String
Dim strMyFullPath1 As String
Dim qwerty
 With Application.Dialogs(wdDialogFileOpen)
lRetVal = .Display
fName = .Name
End With
strMyFullPath = Options.DefaultFilePath(wdCurrentFolderPath) + "\" + fName
strMyFullPath1 = Options.DefaultFilePath(wdCurrentFolderPath) + "\Copy"
MsgBox strMyFullPath
MsgBox strMyFullPath1
MsgBox fName
MkDir strMyFullPath1
FileSystemObject.CopyFile "strMyFullPath", "strMyFullPath1"
End Sub
но у меня он выдает ошибку...скорее всего я неправильно указываю полное имя файла...может дело в кавычках???






PM MAIL   Вверх
mihanik
Дата 1.9.2006, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



Вопрос.

Зачем ты имя переменной берёшь в кавычки? 
 smile 
Цитата(glotik @  1.9.2006,  10:21 Найти цитируемый пост)
"strMyFullPath" 


Добавлено @ 10:40 
Кроме того...
Ты уверен, что полное имя файла "куда" будет таким?

Цитата(glotik @  1.9.2006,  10:21 Найти цитируемый пост)
strMyFullPath1 = Options.DefaultFilePath(wdCurrentFolderPath) + "\Copy"




--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
glotik
Дата 1.9.2006, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



имя ,,куда,, у меня есть как папка ,,Copy,, которая находится в папке выбираемого файла
а если не таким, то каким??? (извини за настырность, просто очень надо)))))))
PM MAIL   Вверх
mihanik
Дата 1.9.2006, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



Уф...
Приду с обеда покопаюсь...
Это будет часа через 1,5 - 2...


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
glotik
Дата 1.9.2006, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



спасибо...буду ждать)))
PM MAIL   Вверх
mihanik
Дата 1.9.2006, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



Проверил.
У меня работает...

Код

Private Sub CommandButton1_Click()
Dim strFolder1, strFolder2 As String
Dim strFileName1, strFileName2 As String
Dim MyFSO As Object

    ' Открываем диалог открытия файла
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "Выберите файл!"
            .Show
        ' Если что-то выбрали, то strFileName1 будет хранить
        ' ПОЛНОЕ ИМЯ ФАЙЛА (включая диск и каталоги)
        If .SelectedItems.Count > 0 Then strFileName1 = .SelectedItems(1)
    End With
    
    If Len(strFileName1) = 0 Then
        MsgBox "Не указано имя файла!", vbCritical, "Ошибка"
        Exit Sub
    End If
    
    ' Получаем только путь, по которому хранится файл
    strFolder1 = Options.DefaultFilePath(wdCurrentFolderPath)
    
    ' Собираем из имеющихся данных имя второго каталога,
    ' где будут храниться копии файлов.
    strFolder2 = strFolder1 + "\Copy"
    
    ' Если каталога с именем strFolder2 нет, то создаём его...
    ' В противном случае машина отругает нас и скажет, что произошла ошибка доступа к каталогу...
    If Len(Dir(strFolder2)) <> 0 Then MkDir strFolder2
    
    ' Вычисляем имя архивного файла...
    strFileName2 = strFolder2 + "\Копия " + Mid(strFileName1, InStrRev(strFileName1, "\") + 1, Len(strFileName1) - InStrRev(strFileName1, "\") + 1)
    
    'Копируем файл strFileName1 в strFileName2
    Set MyFSO = CreateObject("Scripting.FileSystemObject")
    MyFSO.CopyFile strFileName1, strFileName2

End Sub



--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
glotik
Дата 1.9.2006, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



спасибо тебе огромное..и последний вопрос: где хранится имя скопированного файла...
мне просто надо его переименовать по типу: <имя файла> - <текущая дата> . <расширение>

Добавлено @ 13:01 
странно...первый раз копировал к себе - все работало..но у меня комп перезангрузился...теперь копирую еще раз - пишет ошибку - Path not fund......что это может быть?????
проверь у себя еще раз, пожалуйста???

Это сообщение отредактировал(а) glotik - 1.9.2006, 13:04
PM MAIL   Вверх
mihanik
Дата 1.9.2006, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

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



strFileName1 - полное имя исходного файла
strFileName2 - полное имя файла из папки ".\Copy"

У меня всё работает... smile 

Проверяй у себя!!! smile

Добавлено @ 13:12 
У меня оно переименовывается по типу

"Копия" <пробел> <имя файла>  . <расширение>

Цитата(glotik @  1.9.2006,  12:53 Найти цитируемый пост)
<имя файла> - <текущая дата> . <расширение>



Это сообщение отредактировал(а) mihanik - 1.9.2006, 13:09

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  Doc1.doc 34,00 Kb


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

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

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

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

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


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

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


 




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


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

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