Запуск файлов хрянящихся в БД
Автор: Дмитрий
WEB-сайт: http://delphibase.endimus.com
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Запуск файлов хрянящихся в БД
Данный код реализует чтение из Бд строки где спрятан путь к файлу,
далее для удачного запуска "курсор" переместим в папку, от куда надо
запустить разбиваем строку на файл(для запуска) и на директорию
(для перемещения "курсора").
Переброска "курсора" необходима для правильного запуска приложения.
Приложение может быть как под Windows, так и под Dos.
Зависимости: Windows, SysUtils
Автор: Дмитрий, ahmaev@mail.ru, ICQ:100716670, Пенза
Copyright: Дмитрий
Дата: 9 июля 2002 г.
***************************************************** }
procedure TForm1.dxfColorButton1Click(Sender: TObject);
var
s, files1, files: string;
dir, dir1: string;
apchar: array[0..500] of char;
i_s1: integer;
begin
{Находим нужную строку в Бд}
table1.locate('kod_s', treeview1.selected.parent.index + 1,
[loCaseInsensitive]);
table2.locate('game', treeview1.selected.Text, [loCaseInsensitive]);
{Перепишем из БД строки содержащие ссылки в переменные}
s := table2.fields[4].asstring;
k_s := length(table2.fields[4].asstring) + 1;
files := '';
dir := '';
repeat
i_s := i_s + 1;
k_s := k_s - 1;
{Поставим семафор, чтоб разделить путь и имя файла}
if s[k_s] = '\' then
en := 1;
if s[k_s] <> '\' then
if en = 0 then
files := files + s[k_s];
if en = 1 then
dir := dir + s[k_s];
until i_s = length(table2.fields[4].asstring);
{Переворачиваем считанное "путь до файла" и "имя файла"}
for i_s1 := length(files) downto 1 do
files1 := files1 + files[i_s1];
for i_s1 := length(dir) downto 1 do
dir1 := dir1 + dir[i_s1];
{Переводим курсор в папку откуда должна запустится программа}
chdir(dir1);
strpcopy(apchar, files1);
{Запускаем программу}
shellexecute(handle, 'open', apchar, 0, 0, SW_maximize);
end;
|