Форум
Написать нам
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: as-master  
Копирование файлов
Sam726Дата: Среда, 21 Октября 2009, 12:56 | Сообщение # 1
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
Можно ли сделать процентное соотношение при работе с файлами?
Пример:
Необходимо скопировать группу файлов. И необходимо что бы при копировании было видно сколько процентов уже скопировано.


 
YURIYДата: Среда, 21 Октября 2009, 14:14 | Сообщение # 2
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Я наверное скоро дам тебе бан. Ты задаешь очередной вопрос, на который есть ответ на сайте. Ты можешь поиском воспользоваться наконец?

Зайди в раздел плагинов - есть специальный для отображения прогресса копирования.



Вечная память Андрею Сергееву!
 
SowerДата: Среда, 21 Октября 2009, 15:39 | Сообщение # 3
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
Quote (Mad-Dog)
Необходимо скопировать группу файлов

Quote (YURIY)
в раздел плагинов

может он имел ввиду процент уже скопированных файлов из их общего числа? тогда это можно сделать и достаточно просто ;)
 
Sam726Дата: Среда, 21 Октября 2009, 16:02 | Сообщение # 4
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
Grand, вот-вот. Это именно то что я имел в виду. thumbs_up

 
YURIYДата: Среда, 21 Октября 2009, 18:26 | Сообщение # 5
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (Mad-Dog)
Это именно то что я имел в виду.

И? Я не вижу, чтобы ты пытался решить эту проблему. В следующий раз будь добр предоставить получившийся код при попытке решения задачи. Чтобы тебе ПОМОГАЛИ, а не ДЕЛАЛИ ЗА ТЕБЯ.

общее_количество_файлов - 100%
скопировано_файлов - x%

x = (скопировано_файлов*100)/общее_количество_файлов = процент выполнения операции

Элементарная пропорция.



Вечная память Андрею Сергееву!
 
Sam726Дата: Среда, 21 Октября 2009, 19:06 | Сообщение # 6
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
YURIY, спс mda

Добавлено (21 Октябрь 2009, 19:06)
---------------------------------------------
"Предоставляй полученій код"
Да смех и тупость в том коде что я знаю.

Code
SysCommand("CopyFile","file1.1,file2.1")
LoadText("Text","10%")
SysCommand("CopyFile","file1.2,file2.2")
LoadText("Text","20%")
SysComma nd("CopyFile","file1.3,file2.3")
LoadText("Text","30%")
и т.д.


 
YURIYДата: Среда, 21 Октября 2009, 19:33 | Сообщение # 7
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Ну и ничего. Зато я знаю, что ты пытался что-то сделать.


Вечная память Андрею Сергееву!
 
Sam726Дата: Среда, 21 Октября 2009, 19:46 | Сообщение # 8
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
YURIY, :'( ну спасибо, утешил. Такой код можно использовать только если у тебя мало файлов для копирования. А когда речь идет о нескольких десятках, то увы. Сидеть часами и писать для каждого файла строку, э туповато...

 
YURIYДата: Среда, 21 Октября 2009, 19:47 | Сообщение # 9
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Что опять случилось?

Я же выше решение написал тебе.



Вечная память Андрею Сергееву!
 
Sam726Дата: Среда, 21 Октября 2009, 19:50 | Сообщение # 10
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
Я никогда еще с таким не сталкивался. Я с тобой согласен что надо немного самому все делать, учится. Но в данном случае я "пуст". В прочем если нет, то нет. Сами научимся.

 
YURIYДата: Среда, 21 Октября 2009, 19:52 | Сообщение # 11
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (Mad-Dog)
Сами научимся.

Я ничего не понимаю.

Вопрос:

Quote (Mad-Dog)
И необходимо что бы при копировании было видно сколько процентов уже скопировано.

Ответ:

Quote (YURIY)
общее_количество_файлов - 100%
скопировано_файлов - x%
x = (скопировано_файлов*100)/общее_количество_файлов = процент выполнения операции

Что ещё нужно? За тебя проект сделать?



Вечная память Андрею Сергееву!
 
Sam726Дата: Среда, 21 Октября 2009, 19:54 | Сообщение # 12
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
YURIY, СПАСИБО. Можно удалять тему...

 
YURIYДата: Среда, 21 Октября 2009, 22:25 | Сообщение # 13
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Детский сад.

Если тебе что-то непонятно - нужно задавать дальнейшие вопросы, а не писать, что тебе не помогают ничерта

Quote (Mad-Dog)
В прочем если нет, то нет. Сами научимся.

Ты задал вопрос - я ответил на него? Вот скажи, пожалуйста.



Вечная память Андрею Сергееву!
 
YURIYДата: Среда, 21 Октября 2009, 23:27 | Сообщение # 14
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Держи проект. Все комментарии даны в скрипте кнопки.
Прикрепления: copy_files.zip (0.9 Kb)



Вечная память Андрею Сергееву!
 
Sam726Дата: Четверг, 22 Октября 2009, 10:09 | Сообщение # 15
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
YURIY, нет, ну я ж ничего такого не имел в виду. Типа что не помагают. Помагают конечно. Просто я долго доганяю. Мене надо либо самому часами сидеть изучать, эксперементировать(и не факт что еще что-то получится), либо что бы кто-то доступно объяснил(не формулой, а примером).
Спасибо за проэкт. Но я так понимаю что MMB не потдерживает нормального отображения при копировании. Я скомпилировал твой проєкт, изменив только файлы копирования (с 6 на 2). Первый файл занимал 592 МБ, а второй 884 КБ. И получилось в принцепе то же что и у меня с моим примером.
Code
SysCommand("CopyFile","file1.1,file2.1")  
LoadText("Text","10%")  
SysCommand("CopyFile","file1.2,file2.2")  
LoadText("Text","20%")  
SysComma nd("CopyFile","file1.3,file2.3")  
LoadText("Text","30%")  
и т.д.

Я имею в виду что при копировании больших файлов прога потзависает, а как скопировала выдает сообщение "скопировано"(если это прописано). Я думал что можно сделать что бы отображалось все по ходу дела. Как в Windows. Копируеш фильм, а оно показывает сколько скопировано. Понимаеш.
Возможно я тут лишнего сказал(или что-то не так), извените.


 
RushДата: Четверг, 22 Октября 2009, 17:40 | Сообщение # 16
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Quote (Mad-Dog)
Я думал что можно сделать что бы отображалось все по ходу дела. Как в Windows. Копируеш фильм, а оно показывает сколько скопировано.

Стандартными средствами ММВ не сделать. Но можно и средствами Винды.
Например, так:
Прикрепления: 7336685.zip (1.1 Kb)
 
Sam726Дата: Четверг, 22 Октября 2009, 18:38 | Сообщение # 17
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
Rush, а что за файл в проєкте? scratch

 
RushДата: Четверг, 22 Октября 2009, 18:54 | Сообщение # 18
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Quote (Mad-Dog)
а что за файл в проєкте?

Пустой. Он заполняется в скрипте.
 
DEMBELДата: Четверг, 22 Октября 2009, 19:40 | Сообщение # 19
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (Rush)
Пустой. Он заполняется в скрипте.

это ты клево извратился, я б никогда не подумал заполнять vbs командами из проекта, прилепил бы готовый




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
RushДата: Четверг, 22 Октября 2009, 19:44 | Сообщение # 20
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Quote (DEMBEL)
я б никогда не подумал заполнять vbs командами из проекта, прилепил бы готовый

Готовый здесь, как говорят некоторые "не катит". :)
Нужно ведь передать ему нужные параметры. А передавать через комстроку - лишние несколько строк кода. :)
 
Sam726Дата: Пятница, 22 Января 2010, 15:38 | Сообщение # 21
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
Ну вот почему сново что-то не так как надо работает? Вот код:
Code
file1$=EditBox$+'\game\*.tmp'
file2$=EditBox$+'\game\new.exe'
SysCommand("CopyFile","file1$,file2$")

И он выкидывает ошибку. А если вместо * вписать имя файла, то все нормально. А если я не знаю имени файла! Как быть???


 
DEMBELДата: Пятница, 22 Января 2010, 17:13 | Сообщение # 22
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
во-первых, тут общая логическая ошибка - хочешь кучу файлов *.tmp скопировать в один конкретный new.txt? Это новое слово в копировании?
во-вторых, я точно не помню, но syscommand поддерживает ли работу с именем файла по маске? вроде обычно конкретные имена должны быть...
Quote (Mad-Dog)
А если я не знаю имени файла! Как быть???

опиши общую ситуацию что надо сделать, че нибудь придумаем




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
SowerДата: Пятница, 22 Января 2010, 17:14 | Сообщение # 23
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
Как можно скопировать *.tmp? Он вообще существует??? %) Такого файла не может сущесвовать.
Quote (Mad-Dog)

А если я не знаю имени файла! Как быть???

В см? Ты не знаешь что копировать?? Если нужно скопировать файл(ы) из папки, то пользуйся SearchForFiles("<SrcDir>\game\","tmp") - в справке подробно написано.
 
Sam726Дата: Пятница, 22 Января 2010, 20:32 | Сообщение # 24
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
Я так надумал. Может кто знает что-то проще. Ну вообщем вот мой способ:
Code
SearchForFiles("EditBox$","*.tmp")
LoadText("EditBox1","<List>1")
SysCommand("CopyFile","EditBox1$,file$")

У меня в каталоге будет только один *.tmp файл, который мне нужно скопировать и оставить в этой же директории, только с другим именем и расширением.


 
DEMBELДата: Пятница, 22 Января 2010, 20:44 | Сообщение # 25
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
ну единственно верный вариант. если не знаешь имени файла, придется его искать по любому, иначе копирование невозможно в принципе



Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Sam726Дата: Пятница, 22 Января 2010, 21:45 | Сообщение # 26
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
Можно было через BAT файл. Но если файл скрытый то он его не видит. Вот и приходится: через ММВ копировать, а через ВАТ все остальное (так удобней).

 
DEMBELДата: Пятница, 22 Января 2010, 22:02 | Сообщение # 27
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (Mad-Dog)
Но если файл скрытый то он его не видит.

так сделай его нескрытым:
attrib -h "c:\papka\*.tmp"




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Sam726Дата: Воскресенье, 31 Января 2010, 14:08 | Сообщение # 28
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
Так вот еще такая проблемка что файл используется, и изменение атрибутов невозможно :D

Добавлено (31 Январь 2010, 14:08)
---------------------------------------------
DEMBEL, а по поводу командной сроки. Я тут удаление практиковал. И у меня при запуске кода, прога виснет.

Code
  del$='WAIT,HIDE DEL "<SrcDir>\Holidays'+S$+date2$+'.'+date1$+'.txt'+'" /Q"'
    Run("<System>\cmd.exe","del$")
или так
   del$='WAIT,HIDE DEL ".\Holidays'+S$+date2$+'.'+date1$+'.txt'+'" /Q"'  
    Run("<System>\cmd.exe","del$")

Не пойму что не так???




Сообщение отредактировал Mad-Dog - Воскресенье, 31 Января 2010, 14:10
 
DEMBELДата: Воскресенье, 31 Января 2010, 14:33 | Сообщение # 29
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Quote (Mad-Dog)
Не пойму что не так???

после выполнения команды cmd.exe не происходит автоматического завершения ее работы, а параметр WAIT ждет ее завершения, в комбинации с HIDE это дает видимость зависания программы. Используй для команды cmd.exe ключ /C или убери WAIT.




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
YURIYДата: Воскресенье, 31 Января 2010, 14:56 | Сообщение # 30
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (Mad-Dog)
Не пойму что не так???

Тебе ведь только что Алекс рассказывал, как удобно делать отладку! Команда Message для этих целей удачно подходит!

Неужели так сложно сделать

Code
del$='WAIT,HIDE DEL "<SrcDir>\Holidays'+S$+date2$+'.'+date1$+'.txt'+'" /Q"'
Message("del$","")

чтобы тут же увидеть, в чём фигня?

Добавлено (31 Январь 2010, 14:56)
---------------------------------------------

Quote (DEMBEL)
Используй для команды cmd.exe ключ /C или убери WAIT.

Вот так это делается:

Code
del$='WAIT,HIDE /c del "ПУТЬ_К_ФАЙЛУ" /Q'

Я скоро, наверное, стану наказывать за лень воспользоваться поиском по сайту.



Вечная память Андрею Сергееву!
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: