powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Переименование файла перетаскиванием в определенну область листа
40 сообщений из 40, показаны все 2 страниц
Переименование файла перетаскиванием в определенну область листа
    #37220308
СергейР1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
здравствуйте!
по работе приходится сканировать документы (.tiff, .pdf), сканер их сохраняет в своем формате (дата+время) и эти документы приходиться каждый раз переименовывать. настройки сканера менять нельзя, какие - нибудь программные ср-ва кроме экселя испльзовать тоже нельз. хотелось сделать так: открываешь папку где лежат файлы, делаешь вид "эскиз страниц" и ориентируясь по содержимому (копия заявления или паспорта) перетаскиваешь этот файл в определенное место (например ячейка а1 - паспорт, а2 - заявление) рабочего листа или формы и файл меняет имя.
вопрос такой: можно ли это сделать? и если да, то как?
спасибо!
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220374
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересная тема. Поэкпериментировал с Drag&Drop но в итоге уперся в:
A DataObject currently supports only text formats.
То есть хоть и поймал событие Drop, но получить имя файла из него не могу.

Либо надо сменить идею, либо может через API создать объект, который будет ловить Drop и извлекать из него имя файла (тут не силен - предлагаю поразвлекаться более продвинутым )
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220383
СергейР1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
спасибо!
буду думать и искать...
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220448
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СергейР1981,
событие Drop на листе отловить не получилось, - использовал диалог выбора файла.
Процедуру - в модуль листа.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
' добавление к именам выбранных файлов префикса
' префикс зависит от столбца, в котором расположена активная ячейка
Sub renamescanned()
Dim fso As Object, f As Object, FilesToRename
Dim sNamePrefix$
Dim k%

' выбор файлов для переименования
FilesToRename = Application.GetOpenFilename(, , "Выбери себе " & sNamePrefix, , True)

If IsArray(FilesToRename) Then ' выбран хотя бы один файл

    ' префикс имени файла в зависимости от активной ячейки 
    If ActiveCell.Column =  1  Then
    ' активная ячейка в первом столбце
        sNamePrefix = "ПАСПОРТ"
    Else
    ' активная ячейка НЕ в первом столбце
        sNamePrefix = "ЗАЯВЛЕНИЕ"
    End If

    Set fso = CreateObject("Scripting.FileSystemObject")
    
    ' для каждого выбранного файла
    For k =  1  To UBound(FilesToRename)
        Set f = fso.GetFile(FilesToRename(k))
        ' переименование файла (добавление к имени префикса)
        f.Name = sNamePrefix & "_" & f.Name
        Set f = Nothing
    Next k
    
    Set fso = Nothing
    Erase FilesToRename
End If
End Sub
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220551
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
давайте по очереди
>хотелось сделать так: открываешь папку где лежат файлы, делаешь вид "эскиз страниц" и ориентируясь по содержимому (копия заявления или паспорта) перетаскиваешь этот файл
1. открываешь папку где лежат файлы - можете сделать? я да
2. делаешь вид "эскиз страниц" - можете сделать? я нет, но мне код давали на винограде Антонарий или ... Prist, не помню, как точно пишется, увижу ник поправлюсь
3. ориентируясь по содержимому (копия заявления или паспорта) это то есть графически нужно определить?? Круто!!!!
4. перетаскиваешь этот файл, так файл или изображение в виде который виден при просмотре как"эскиз страниц"???
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220555
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о ком речь шла это - The_Prist - Member, если не ошибаюсь
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220577
СергейР1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,
о, спасибо большое!
немного не так хотелось. но благодаря вам появилис другие мысли
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220589
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СергейР1981но благодаря вам появилис другие мысли
Так может просто виндовым эксплорером распихивать файлы по папкам, а потом экселем переименовывать?
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220593
СернейР1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович Эндрю,
с первыми двумя пунктами разобрался благодаря Скукотище, сейчас ищу ответы втора которого вы указали.
а 3. сам глазами смотришь на эскиз и видишь какой там документ т.е. не программно
4. хватаешь сам эскиз и тянешь к определенной области.


уже отказался от многих затей.
самый пртой пока вариант (или не самый простой) открыты два эксплорер, эксель.в эксплорере вид настроен чтобы было видно эскизы. т.е файлы отражены ввиде картинок по которым можно определить содержимое.
хватаешь файл из эксплорера и переносишь его в опред к чейке а1
файл в этой папке переименовывется, допустим в "паспорт"
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220625
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СернейР1981, этот автор о втором пункте писал, а Вы же разобрались
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220629
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так что Вы разобрались?
Ведь самоделка Выбери себе не открывается как вид "эскиз страниц"
Вот это, то меня и интерисует
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220632
СергейР1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович Эндрю,
так интересует решение задачи целиком, а именно, 4 пункт. Правда на сколько я понимаю перетаскиванием дело не решить.
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220634
СергейР1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
придется каким-то таким способом. просто думал воспльзоваться драг-н-дропом. было бы изящно.
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220640
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СергейР1981, у ж коли биться так всё програмно, ОК?
Хотел спросить файл переименовываем, ОК, а путь его менять можно? как?
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220646
СергейР1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович ЭндрюСергейР1981, у ж коли биться так всё програмно, ОК?
Хотел спросить файл переименовываем, ОК, а путь его менять можно? как?

если все программно, это будет СУПЕР!
хотелось что бы файлы оставались в той же папке.
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220654
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прошу помощи ошибка 450
Код: plaintext
1.
 'меняем путь файла, то есть перемещаем его
        f.Path = "L:\Изменённые" & "\" & f.Name
Или бесполезно, низя это сделать??
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220661
СергейР1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович Эндрю,
там можно вид переключить и будет превью. все-таки то вариант не подошел. пока проще вручную переименовывать
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220663
СергейР1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СергейР1981Ципихович Эндрю,
там можно вид переключить и будет превью. все-таки то вариант не подошел. пока проще вручную переименовывать
это сообщение ответ к этому
" так что Вы разобрались?
Ведь самоделка Выбери себе не открывается как вид "эскиз страниц"
Вот это, то меня и интерисует"
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220670
СергейР1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович Эндрюпрошу помощи ошибка 450
Код: plaintext
1.
 'меняем путь файла, то есть перемещаем его
        f.Path = "L:\Изменённые" & "\" & f.Name
Или бесполезно, низя это сделать??
гуглю
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220687
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович Эндрюпрошу помощи ошибка 450
Код: plaintext
1.
 'меняем путь файла, то есть перемещаем его
        f.Path = "L:\Изменённые" & "\" & f.Name
Или бесполезно, низя это сделать??
Код: plaintext
1.
2.
3.
4.
f.Move "L:\Изменённые\" & f.Name

' если имя файла менять не надо, то можно указать только папку
' f.Move "L:\Изменённые\"
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220856
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СергейР1981,

Пример приложенном файле. На форме есть список, в который можно перенести файл/папку/группу файлов и папок, и в списке отобразться их имена.


Shocker.Pro,
уже развлекались в Акцессовской ветке.
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220857
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отобразться отобразятся
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220864
СергеР1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
БенедиктСергейР1981,

Пример приложенном файле. На форме есть список, в который можно перенести файл/папку/группу файлов и папок, и в списке отобразться их имена.


Shocker.Pro,
уже развлекались в Акцессовской ветке.

Спасибо!!! завтра после работы буду разбираться и переделывать под себя. Надеюсь получиться)
думаю нужно сделать несколько таких полей и в зависимости от того в какое поле перенесешь будет соответствующее имя файла.
должна хорошая для лентяев штука получиться.
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37220883
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СергеР1981, ой извините, как вид папки менять я же разобрался, я не разобрался как менять Упорядочить значки:
Имя
Тип
Изменён
Размер



скукотища - Guest Спасибо за код, вечером проверю, не подскажите как менять в опции Упорядочить значки?
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37221314
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бенедикт,

круто, спасибо.
Положу в копилку
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37221527
СергейР1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как то я рано обрадовался... посмотрел код, изучая можно второе высшее получить... со своми знаниями мне там ничего не поправить. пока поразбираюсь
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37221640
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СергейР1981как то я рано обрадовался... посмотрел код, изучая можно второе высшее получить... со своми знаниями мне там ничего не поправить. пока поразбираюсь

Копай в юзерформу в процедуре dt_Drop строка LB_Files.AddItem sFileName
Она добавляет очередной файл в список перетащенных файлов.
Вместо этой строки добавляй свой алгоритм переименования.
А в остальное можешь пока не вникать.
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37221646
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СергейР1981,

сэкономьте своё время и последуйте совету Shocker.Pro, прикладной уровень в модуле формы, с ним разбирайтесь.
А системный... как пишут в таких случаях на технике, "no serviceable parts inside".
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37221668
СергейР1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так и сделаю. чувствую (точнее это очевидно) с наскока с этим не разобраться.
спасибо за ваш труд!!! полезня программа, которая будет использоваться
составление договоров своими силами автоматизировать удалось, переименовывание файлов с вашей помощью со дня на день тоже. прощай мартышкин труд!!!
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37223288
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
'что-то в коде от 17.4.2011, 16:35 в строке ниже
Код: plaintext
FilesToRename = Application.GetOpenFilename(, , "Выбери себе", , True)
'выделяет .GetOpenFilename??? Библиотека??, какая??
Два дня назад проверял было всё ОК, что за ересь??
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37223316
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот. ЦЭ уже Application испортил, ничего нельзя доверить
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37223340
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro, намёка не понял
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37223470
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вспомнил, это ж я его в Экселе проверял, а как в ворде будет?
В коде ветку где есть упоминание об Экселе: ActiveCell я выбросил

как в ворде будет?
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37223640
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович Эндрю,
Код: plaintext
Dialogs(wdDialogFileOpen).Show
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37223655
СергейР1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
с переименованием разобрался. в переменной sFileName содержиться весь путь к файлу вместе его именем. я так понимаю нужно с конца отрезать все символы до /, а потом прибавить нужное имя. или есть более простой вариант?
появились вопросы:
как на одной форме сделать несколько листбоксов (в зависимости в какой листбокс файл бросаешь, такое и будет имя файла) и чтобы на всех них можно было перетаскивать файл.стал делать, вроде получилось, но во-первых когда файл подносишь к одному листбокусу курсор имеет одно изображение (как при обычном перетаскивании), а когда подтаскиваешь к другому, курсор меняется. картинки меня не пугают, но вдруг что -то еще не так происходит. мне кажеться, что я второй листбокс не правильно прикручиваю.
для того чтобы разместить второй листбокс я дублировал некоторе переменные и видимо из-за этого произошла такая штука с курсором.
уже есть другая задумка - сменить листбокс на фрэйм на него разместить надписи, к какой надписи подтянешь картинку, так файл и назовется (т.е в зависимости от координат курсора давать имя файлу.).

пока сделаю второй вариант. он проще.. кажеться. уже сделал чтоб на фрэм можно было перетаскивать и он это понимал, с координатами курсора разобрался, сейчас попробую надписи добавить и проверю будет ли работать.


подскажите пож-та как разместить несколько объектов на которые можно перетаскивать файлы. несколько фрэймов или листбоксов нагляднее.
писал в несколько приемов, разбираясь с кодом, поэтому немного сбивчиво...
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37223662
СергейР1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rivate Sub UserForm_Initialize()
Dim Ctl As MSForms.Control
Dim Ctl1 As MSForms.Control
Set Ctl = LB_Files
Set Ctl1 = ListBox1
' Set Ctl = Frame1
'Set Ctl = TextBox1
Set dt = New DropTarget
Set dt1 = New DropTarget
dt.hWnd = Ctl.[_GethWnd]
dt1.hWnd = Ctl1.[_GethWnd]
End Sub


точнее не дублировал, а создавал еще одни, такого же типа
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37223680
СергейР1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
с координатами курсора тоже фигня. либо окно этой программы нужно делать неперемещаемое, либо нужно как то выщитывать координаты фрейма, учитывая, что разрешение может меняться....
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37224655
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СергейР1981,

Чтобы сделать несколько принимающих Drag and Drop операции областей, можно, как вы уже заметили, либо создать несколько объектов (и привязать их к оконным элементам управления), либо вычислять (не)попадание в каждую область по координатам. Я изменил систему координат, теперь они относительно клиентской области окна, а не экрана. Это облегчит реализацию нескольких областей в одном окне вторым способом. Что касается первого (см. приложение), то повторяющиеся действия и структуры данных лучше вынести в класс(-ы). В приложенном примере это сделано в классе CFileListDropTarget. В модуле формы происходит привязка экземпляров этого класса к элементам управления и обработка событий, генерируемых экземплярами класса.
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37225173
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаЦипихович Эндрю,
Код: plaintext
Dialogs(wdDialogFileOpen).Show


Строка:
Код: plaintext
Dialogs(wdDialogFileOpen).Show
не подходит, так как открывается диалог, выбрав файл нажимаем Открыть и он открывается, а в варианте для Экселя нет кнопки Открыть вообще.
...
Рейтинг: 0 / 0
Переименование файла перетаскиванием в определенну область листа
    #37225279
СергейР1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бенедикт,
Спасибо!
теперь получился очень понятный код (даже для меня) и более функциональный. Пока нет возможности проверить, но я так понимаю он уже позволяет переименовывать файлы. Мой алгоритм этого действия был несколько длиннее )). По поводу проверки расширения, тоже очень полезно (я даже не думал об этом), ведь если программой будут пользоваться другие могут много всего попереименовывать, да и сам бы по невнимательности...
Теперь поставленная задача решена!!!
Надписи понавставлю и, пожалуй, пора уже ее использовать.
Еще раз спасибо!!!
...
Рейтинг: 0 / 0
40 сообщений из 40, показаны все 2 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Переименование файла перетаскиванием в определенну область листа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]