|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.11.2018, 12:50 | #1 |
Пользователь
Регистрация: 26.05.2017
Сообщений: 19
|
Открыть файл из программы
Необходимо реализовать открытие фала по ссылке, которая записывается в поле memo посредством диалога opendialog. Нижеприведенный код позволяет открыть каталог, но не файл
{ String FilePath; if (OpenDialog1->Execute()) { FilePath= OpenDialog1->FileName; Memo2->Lines->Add(FilePath); } ShellExecute( Handle, L"open", (ExtractFileDir(Memo2->Text)).w_str(), 0, 0, SW_SHOWNORMAL); } Как реализовать открытие файла по ссылке из поля memo |
03.11.2018, 12:53 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,695
|
Т.е. логики на то, чтобы понять, что ExtractFileDir = "извлечь директорию файла" мешает, вам не хватает?
|
05.11.2018, 08:07 | #3 |
Пользователь
Регистрация: 26.05.2017
Сообщений: 19
|
Это понятно, что данная функция извлекает директорию файла, но может есть дополнительный параметр, позволяющий открыть файл из директории или функция, позволяющая это сделать
|
05.11.2018, 08:35 | #4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,695
|
Есть. ShellExecute с параметром open.
|
05.11.2018, 10:44 | #5 |
Пользователь
Регистрация: 26.05.2017
Сообщений: 19
|
|
05.11.2018, 10:45 | #6 |
Пользователь
Регистрация: 26.05.2017
Сообщений: 19
|
ShellExecute( Handle, L"open", (Memo2->Text).w_str(), 0, 0, SW_SHOWNORMAL);
При использовании функции в данном виде, файл не запускается код при нажатии на кнопку String FilePath; if (OpenDialog1->Execute()) { FilePath= OpenDialog1->FileName; Memo2->Lines->Add(FilePath); } ShellExecute( Handle, L"open", (Memo2->Text).w_str(), 0, 0, SW_SHOWNORMAL); |
05.11.2018, 15:06 | #7 |
Участник клуба
Регистрация: 10.08.2010
Сообщений: 1,389
|
Если так ?
Код:
E_MAIL: rijgvina7@yahoo.com
Последний раз редактировалось xxbesoxx; 05.11.2018 в 16:10. |
05.11.2018, 19:26 | #8 | |
Пользователь
Регистрация: 26.05.2017
Сообщений: 19
|
Цитата:
Переделал код, получил желаемый результат if (OpenDialog1->Execute()) { FilePath= OpenDialog1->FileName; Memo2->Lines->Add(FilePath); } ShellExecuteW( Handle, L"open", WideString(FilePath).c_bstr(), 0, 0, SW_SHOWDEFAULT); Возник еще вопрос, открытие происходит из переменной FilePath, в последующем прописанный путь в FilePath будет заноситься в таблицу ADOTable, как осуществить в последующем процедуру открытия из базы, скажем посредством компонента DBMemo. |
|
06.11.2018, 15:30 | #9 |
Участник клуба
Регистрация: 10.08.2010
Сообщений: 1,389
|
Ошибка нету на C++ XE3
вот так Код:
E_MAIL: rijgvina7@yahoo.com
Последний раз редактировалось xxbesoxx; 06.11.2018 в 15:40. |
08.11.2018, 17:30 | #10 |
Пользователь
Регистрация: 26.05.2017
Сообщений: 19
|
void __fastcall TForm1::Button3Click(TObject *Sender)
{ String OpenMyFile = ADOTable1->FieldByName("Put_file")->AsString; ShellExecute( Handle, L"open", (OpenMyFile).w_str(), 0, 0, SW_SHOWNORMAL); } //--------------------------------------------------------------------------- Не работает при нажатии на кнопку |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
хочу зашифровать файл. можно ли зашифровать так, чтобы только Я смог открыть? (файл CPK) | AlexPanda | Безопасность, Шифрование | 3 | 17.07.2017 17:52 |
Чем открыть файл messages.qdb. Это файл истории icq. | Seniora | Софт | 19 | 23.04.2016 09:15 |
Открыть файл из директории программы | samouelson | C# (си шарп) | 4 | 20.06.2012 19:28 |
Открыть файл, разделить ячейку на 1000, сохранить файл, закрыть файл. Как? | Ник Харди | Microsoft Office Excel | 7 | 30.01.2012 18:47 |