Ramin Hashimzade

Фильтр по тегу: delphi


Парсинг строки с разделителями - Delphi

функция который возвращает кол. массива.

function DCOUNT(str, Delimeter: string) : integer;
var
 StrL : TStringList;
 ParseStr : string;
begin
  try
    StrL := TStringList.Create;
    ParseStr:= StringReplace(str, Delimeter, #13, [rfReplaceAll]);
    StrL.Text := ParseStr;
    Result := StrL.Count;
  finally
    StrL.Free;
  end;
end;

Пример :
DCOUNT('test1|test2|test3|test4', '|') = 4


function StrBreak(str, Delimeter: string; fromParts, Cnt : integer) : string;
{
 str : your string
 Delimeter : Delimeter symbol
 fromParts : Initial position
 Cnt : Number of items
}
var
 StrL : TStringList;
 ParseStr : string;
 i : integer;
begin
  Result := '';
  try
    StrL := TStringList.Create;
    ParseStr:= StringReplace(str, Delimeter, #13, [rfReplaceAll]);
    StrL.Text := ParseStr;
    if StrL.Count > 0 then
    begin
      for i := 0 to Cnt-1 do
        if (StrL.Count > i) and (StrL.Count > fromParts) then
            if i>0 then Result := Result + Delimeter + StrL.Strings[fromParts+i]
                    else Result := Result + StrL.Strings[fromParts+i];
    end;
  finally
    StrL.Free;
  end;
end;

Пример :
StrBreak('test1|test2|test3|test4', '|', 0,1) = test1
StrBreak('test1|test2|test3|test4', '|', 0,2) = test1|test2
StrBreak('test1|test2|test3|test4', '|', 1,2) = test2|test3
StrBreak('test1|test2|test3|test4', '|', 3,1) = test4


Создание пользовательского меню - Delphi

Очень часто возникает вопрос, как создать меню пользователя, если для разных пользователей нужны разные меню и разные права. В связи с этим, я решил писать эту статью в свой блог, чтобы хоть чем-то помочь людям, которые задают этот вопрос себе или на форумах.
Как мы знаем, этот вопрос возникает в основном в бизнес проектах и как всем известно, почти 99,99% бизнес проектов используют разные СУБД в качестве хранения информации. Для демонстрации решения, я взял СУБД ORACLE и платформу разработки CodeGear™ Delph 2009 Version 12.0.3420.21218 Copyright 2009 Embarcadero Technologies.
Итак, мы считаем, что базу мы создали, все финансовые таблицы есть и сейчас нужно создать системные таблицы нашего проекта для хранения разграничения меню и прав доступов пользователей. Префикс нашего проекта BusinessProject-BP.
Для пользовательского меню нужны следующие таблицы:

1) BP_USER_MENU
ИМЯ ПОЛЕ ТИП ПОЛЕКомментарий
BP_ID NUMBER уникальный идентификатор таблицы
BP_PARENT_ID NUMBER ссылка на родительский пункт меню в древовидной структуре
BP_LEVEL_ID NUMBER позиция меню в в древовидной структуре
BP_MENU_CAPTION NVARCHAR2(50) Текст меню
BP_REPORT_ID NVARCHAR2(50) уникальный идентификатор библиотеки или формы которую нужно вызывать из пункта в меню. Или строка ссылки если используется веб приложение.

читать дальше...
добавлено: 24 ноя 11 просмотры: 6393, комментарии: 1