Запуск файлов хрянящихся в БД

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

Автор: Дмитрий

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;

{/codecitation}

Добавить комментарий