Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Блок-схема

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных
Предыдущая тема :: Следующая тема  
Автор Сообщение
HIMN



Зарегистрирован: 17.04.2006
Сообщения: 17

СообщениеДобавлено: Сб Май 20 2006 15:27    Заголовок сообщения: Блок-схема Ответить с цитатой

У меня есть огромная процедура и мне нужно к ней составить блок-схему. Подскажите программу, которая может это сделать автоматически?

begin
//задание условий поиска конфигураций
FindRes:=FindFirst('date\*.*',faArchive,SR);
Form1.Caption:='загрузка конфигураций';
while FindRes=0 do // пока мы находим файлы, то выполнять цикл
begin
//подключаемся к БД
ADOConnection1.Connected:=false;
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DIAL.mdb;Persist Security Info=False';
qr1.Connection:=adoconnection1;
qr2.Connection:=adoconnection1;
//проверяем существование конфигурации
qr1.SQL.Clear;
qr1.SQL.Append('Select ID_cfg, Name_cfg From Config where Name_cfg="'+SR.Name+'"');
qr1.Active:=true;
//Если выборка пуста, то добавляем конфигурацию
if qr1.Eof then
begin
ADOConnection1.Execute('Insert Into Config(Name_cfg,Date_create) values ("'+SR.Name+'",Date())');
//находим и записываем конфигурацию
qr1.SQL.Clear;
qr1.SQL.Append('Select ID_cfg From Config where Name_cfg="'+SR.Name+'"');
qr1.Active:=true;
end;
cfg:=inttostr(qr1.FieldValues['ID_cfg']);
//делаем выборку из таблиц конфигурации и компьютеров
qr1.SQL.Clear;
qr1.SQL.Append('Select ID_comp From Computers Where ID_cfg='+cfg+'');
qr1.Active:=true;
//если нет компьютера с такой конфигурацией добавляем его
if qr1.Eof then
begin
ADOConnection1.Execute('Insert Into Computers(ID_cfg) values ('+cfg+')');
qr1.SQL.Clear;
qr1.SQL.Append('Select Computers.ID_comp, Config.ID_cfg, Config.Name_cfg From Computers INNER JOIN Config ON Computers.ID_cfg=Config.ID_cfg Where Computers.ID_cfg='+cfg+'');
qr1.Active:=true;
//записываем идентификатор нового компа
comp:=inttostr(qr1.FieldValues['ID_comp']);
//записываем название компа
name:=qr1.FieldValues['Name_cfg'];
cfg:=inttostr(qr1.FieldValues['ID_cfg']);
while not qr1.Eof do
begin
//связываем файловую переменную с именем файла
AssignFile(F,'date\'+name);
//открываем файл
reset(F);
while not eof(f) do //проход по файлу конфигурации
begin
readln(F,S); //считываем строку
//дополнительная информация для компьютера
if pos('MAC_Addr=',s)<>0 then
begin
name:=copy(s,(pos('=',s)+1),length(s));
adoconnection1.Execute('UPDATE Computers SET Mac_address="'+name+'" where ([id_comp]='+comp+')');
end;
if pos('IP_Addr=',s)<>0 then
begin
name:=copy(s,(pos('=',s)+1),14);
adoconnection1.Execute('UPDATE Computers SET IP_address="'+name+'" where ([id_comp]='+comp+')');
end;
if pos('Computer_Name=',s)<>0 then
begin
name:=copy(s,(pos('=',s)+1),length(s));
adoconnection1.Execute('UPDATE Computers SET Name_comp="'+name+'" where ([id_comp]='+comp+')');
end;
//запись устройств
if (pos('Device_',s)=1) or (pos('CPU=',s)=1) or (pos('Win_Device',s)=1) then
begin
if pos('Hdd',s)<>0 then
begin
model:= copy(s,(pos('Hdd',s)+4),length(s));
move:='Жёсткий диск';
end;
.............................
if pos('Printer',s)<>0 then
begin
model:= copy(s,(pos('Printer',s)+8),length(s));
move:='Принтер';
end;
if (model<>'') and (move<>'') then
begin
qr2.sql.Clear;
qr2.SQL.Append('SELECT ID_type FROM Type_device WHERE Name_type="'+move+'";');
qr2.Active:=true;
if qr2.Eof then
begin
adoconnection1.Execute('Insert Into Type_device(Name_type) values ("'+move+'")');
qr2.sql.Clear;
qr2.SQL.Append('SELECT ID_type FROM Type_device WHERE Name_type="'+move+'";');
qr2.Active:=true;
end;
Typ:=inttostr(qr2.FieldValues['ID_type']);
qr2.sql.Clear;
qr2.SQL.Append('SELECT Name_model, ID_model FROM Model WHERE Name_model="'+model+'";');
qr2.Active:=true;
if qr2.Eof then
begin
adoconnection1.Execute('insert into Model(Name_model,ID_type) values ("'+model+'",'+Typ+')');
qr2.sql.Clear;
qr2.SQL.Append('SELECT Name_model, ID_model FROM Model WHERE Name_model="'+model+'"');
qr2.Active:=true;
end;
i:= qr2.FieldValues['ID_model'];
qr2.sql.Clear;
qr2.SQL.Append('SELECT ID_model,ID_comp FROM Device WHERE (ID_model='+inttostr(i)+') AND (ID_comp='+comp+')');
qr2.Active:=true;
//Добавление в девайс ид компа и ид модели устройства нужно добавить тип устройства к запросу
if qr2.Eof then
adoconnection1.Execute('Insert into Device(ID_model,ID_comp) values ('+inttostr(i)+','+comp+')');
end;
end;
end;
closefile(F);
qr1.Next;
end;

end;
// продолжение поиска по заданным условиям
FindRes:=FindNext(SR);
end;
FindClose(SR); // закрываем поиск

//заносим производителей
qr2.SQL.Clear;
//all proizv
qr2.SQL.Append('Select * from Proizvoditel');
qr2.Active:=true;
while not qr2.Eof do
begin
id_proizv:=inttostr(qr2.FieldValues['ID_proizv']);
proizv:='%'+qr2.FieldValues['Name_proizv']+'%';
qr1.SQL.Clear;
qr1.SQL.Append('Select ID_model From Model Where Name_model Like "'+proizv+'"');
qr1.Active:=true;
while not qr1.Eof do
begin
id_model:=inttostr(qr1.FieldValues['ID_model']);
adoconnection1.Execute('Update Model Set Id_proizv ='+id_proizv+' Where ID_model='+id_model+'');
qr1.Next;
end;
qr2.Next;
end;
Form1.Caption:='Учёт компьютерного оборудования';
FormCreate(sender);
end;
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
HIMN



Зарегистрирован: 17.04.2006
Сообщения: 17

СообщениеДобавлено: Вс Май 21 2006 10:53    Заголовок сообщения: Ответить с цитатой

Или предложите блок схему, хотя бы приблизительную???
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...