Автор: delover
Дата сообщения: 05.05.2012 10:45
да и понятно почему таблица прав пользователей никак не джойнится с таблицей прав отделов. Веть если я меняю значение на разрешонное то данные удаляются из таблици и просто узнать были ли права удалены или их изначально не было - узнать это я не могу, по этому не могу заранее выставить правильные значения всем пользователям. Я думаю такая система должна быть безжалостно уничтожена просто чтоб люди не мучались больше.
Добавлено:
Среди индусских прогриммистов умеющих писать программы на суахили есть редчайшие супер колдуны... Надеюсь конвульсии к вечеру у меня пройдут и можно будет сходить за пивом... Сейчас найду kolvoDon, жаль что в списке хинтов к программе нет функции поиска (Variable 'KolvoDon' might not initialized)...
[more]
Код: [no] procedure _AnalyseData(Str: String);
var
OnlyNum: Boolean;
PointNum: Byte;
SlashNum: Byte;
ColonNum: Byte;
KYNum: Byte;
KolvoDon: Boolean;
ps, ii, jj: Integer;
dmg, d, m, g: String;
begin
SetLength(Data, 0);
While True do
Begin
ps:=Pos(',', Str);
if ps>0 then
begin
SetLength(Data, Length(Data)+1);
Data[Length(Data)-1].Dan:=Copy(Str, 1, ps-1);
Delete(Str, 1, ps);
end
else
begin
SetLength(Data, Length(Data)+1);
Data[Length(Data)-1].Dan:=Str;
Break;
end;
End;//While True do
KYNum:=0;
For ii:=0 to Length(Data)-1 do
Begin
OnlyNum:=True;
PointNum:=0;
SlashNum:=0;
ColonNum:=0;
KolvoDon:=False;
for jj:=1 to Length(Data[ii].Dan) do
if Data[ii].Dan[jj] in ['À'..'ß', 'à'..'ÿ', '¨', '¸', '+', ' '] then
begin
OnlyNum:=False;
Break;
end
else if Data[ii].Dan[jj]='/' then
Inc(SlashNum)
else if Data[ii].Dan[jj]='.' then
Inc(PointNum)
else if Data[ii].Dan[jj]=':' then
Inc(ColonNum)
else if not (Data[ii].Dan[jj] in ['0'..'9']) then
OnlyNum:=False;
if not OnlyNum then
Data[ii].Tip:=dtXXX
else if OnlyNum then
begin
if (PointNum=1) and (SlashNum=0) and (ColonNum=0) then
Data[ii].Tip:=dtCena
else if (PointNum=0) and (SlashNum=2) and (ColonNum=0) then
begin
Data[ii].Tip:=dtData;
dmg:=Data[ii].Dan;
g:=Copy(dmg, 1, Pos('/', dmg)-1);
Delete(dmg, 1, Length(g)+1);
m:=Copy(dmg, 1, Pos('/', dmg)-1);
Delete(dmg, 1, Length(m)+1);
d:=dmg;
Data[ii].Dan:=d+'.'+m+'.'+g;
end
else if (PointNum=0) and (SlashNum=0) and (ColonNum=2) then
Data[ii].Tip:=dtVrem
else if (PointNum=0) and (SlashNum=0) and (ColonNum=0) and (Length(Data[ii].Dan)=13) then
Data[ii].Tip:=dtEAN13
else
begin
Data[ii].Tip:=dtKtoYa;
Inc(KYNum);
end;
end;
End;//For ii:=0 to Length(Data)-1 do
If KYNum>0 then
for ii:=0 to Length(Data)-1 do
if Data[ii].Tip=dtKtoYa then
begin
if KolvoDon then
Data[ii].Tip:=dtCena
else
begin
Data[ii].Tip:=dtKolvo;
KolvoDon:=True;
end;
end;
end;
[/no]