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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2010, 08:38   #1
sashahttp
Пользователь
 
Регистрация: 24.06.2008
Сообщений: 17
Восклицание Копирование файла при помощи OpenDialog (ошибка)

вот так работает:
dir := cur_dir + '\resurs\' + DBEdit3.Text;
u := OpenDialog1.Files.GetText;

FillChar(Buffer, sizeof(Buffer), #0);
p := @buffer;
p := StrECopy(p,'H:\Video\na.kriu4ke2008 .avi') + 1;
FillChar(Fo, sizeof(Fo), #0);
Fo.Wnd := Handle;
Fo.wFunc := FO_COPY;
Fo.pFrom := @Buffer;
Fo.pTo := PChar(dir);
Fo.fFlags := 0;
if ((SHFileOperation(Fo) <> 0) or (Fo.fAnyOperationsAborted <> false)) then
ShowMessage('Cancelled');

тоже самое имя фйла, но только через OpenDialog.


u := OpenDialog1.Files.GetText;
FillChar(Buffer, sizeof(Buffer), #0);
p := @buffer;
p := StrECopy(p,PChar(u)) + 1;
FillChar(Fo, sizeof(Fo), #0);
Fo.Wnd := Handle;
Fo.wFunc := FO_COPY;
Fo.pFrom := @Buffer;
Fo.pTo := PChar(dir);
Fo.fFlags := 0;
if ((SHFileOperation(Fo) <> 0) or (Fo.fAnyOperationsAborted <> false)) then
ShowMessage('Cancelled');

ошибка: неудалось произвести чтение из файла.
в чем причина? помогите!
sashahttp вне форума Ответить с цитированием
Старый 10.01.2010, 11:11   #2
maxionans
Форумчанин
 
Аватар для maxionans
 
Регистрация: 02.01.2010
Сообщений: 254
По умолчанию

Проверь чему равна Buffer после выполнения p := StrECopy(p,PChar(u)) + 1. Если имя файла нормальное, то вероятно, что файл просто заблокирован.
maxionans вне форума Ответить с цитированием
Старый 10.01.2010, 12:10   #3
sashahttp
Пользователь
 
Регистрация: 24.06.2008
Сообщений: 17
По умолчанию

проверил. Путь к файлу в переменной @buffer отображается нормально т.е. полный путь к файлу. все равно выдает ошибку...
и файл точно не заблокирован(пробовал много разных файлов).

Последний раз редактировалось sashahttp; 10.01.2010 в 12:17.
sashahttp вне форума Ответить с цитированием
Старый 02.02.2010, 20:06   #4
Assemblerru
Форумчанин
 
Регистрация: 28.01.2010
Сообщений: 224
По умолчанию

Я не знаю но я открываю файл вот как:
if (OpenDialog1 -> Execute())
{
Edit1 ->Text = OpenDialog1 ->FileName;
Sfail = OpenDialog1 ->FileName;
}
единственная продлема это написано под C++ Builder
и здесь переменная Sfail должна быть объявлена как AnsiString Sfail = "";
всему свое время как зиме и весне
и каждому солнцу свой неба кусок
Assemblerru вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при OpenDialog.Execute ymka2 Общие вопросы Delphi 10 27.11.2009 14:15
Автоматизированное копирование данных выборки автофильтра на другой лист при помощи кнопки outstrip Microsoft Office Excel 0 12.08.2009 11:28
Копирование файлов при помощи потоков Aleshin Помощь студентам 0 25.04.2009 14:00
копирование данных в новую таблицу при интерактивном выборе файла gege Microsoft Office Excel 7 22.10.2008 17:16
Копирование при помощи лист бокс Beam Общие вопросы Delphi 6 13.02.2008 16:44