Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2014, 10:36   #1
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
Вопрос Перенос данных на флешку

В общем, проблема такая.
Я написал небольшую программку, которая переносит файлы с одного места в другое.
Всё работало нормально, до тех пор, пока я не попробовал перекинуть файлы на флешку.
К примеру файл:
*.avi (весом:2,01 Гб) я решил перекинуть на флешку. В итоге программа зависла. Но, какая то, часть файла всё же успела передаться, и естественно ничего я посмотреть не смог...
Потом я подумал, что (2,01 Гб) слишком большой вес. Взял файл *.exe(396 Кб) и так же перекинул, программа так же зависла, но потом всё же завершила передачу.
----------------------------------------
Вопрос, что сделать, что бы у программы не было вот таких зависаний?
для переноса файлов, я использовал следующий код:
Код:
 RenameFile(Edit1.Text+'\'+ListBox1.Items.Strings[i],Edit2.Text+'\'+ListBox1.Items.Strings[i]);
А потом, использовал вот этот:
Код:
       MOVEFILE(PChar(Edit1.Text+'\'+ListBox1.Items.Strings[i]),PChar(Edit2.Text+'\'+ListBox1.Items.Strings[i]));
Никакой разницы, я вообще не увидел.
В общем, кто в курсе, подскажите. Что мне с этим делать?
Janger вне форума Ответить с цитированием
Старый 19.05.2014, 10:39   #2
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Цитата:
Вопрос, что сделать, что бы у программы не было вот таких зависаний?
Использовать потоки.
doktor255 вне форума Ответить с цитированием
Старый 19.05.2014, 10:46   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Использовать потоки.
С OVERLAPPED вряд ли разбрется

Цитата:
Использовать потоки.
3 потока на 1 функцию?
К слову перемещение файлов и так делает винда во внешнем потоке, по крайней мере это касается MoveFileEx, CopyFileEx
Человек_Борща вне форума Ответить с цитированием
Старый 19.05.2014, 10:54   #4
Janger
Форумчанин
 
Регистрация: 28.09.2011
Сообщений: 250
По умолчанию

Я немного не понял. Что мне делать?(
Janger вне форума Ответить с цитированием
Старый 19.05.2014, 11:02   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Использовать расширенные функции MoveFileEx, CopyFileEx, или writeFile многопоточно ипользуя Overlapped.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос данных Ericnex БД в Delphi 1 06.01.2013 11:25
база данных работала, но как только скинули на флешку-не запускается наташка-ромашка БД в Delphi 4 26.11.2011 15:15
MySQL перенос данных между базами данных с MyDAC Nikolay88 БД в Delphi 3 14.05.2011 00:17
Изменение данных и перенос данных из одной таб в другую Kot9ra Microsoft Office Access 13 02.07.2010 12:22
сортировка данных (пересчет возможных вариантов комбинаций, перенос данных в таблицу) Vitalik85 Microsoft Office Excel 4 12.08.2009 00:30