Конференция "Журнал" » Великий и могучий Делфи2007 )
 
  • Palladin © (25.12.09 11:53) [0]
    {$APPTYPE CONSOLE}

    uses
     Classes,
     SysUtils;

    {$REGION ' Фигня всякая нужная ;) '}
    Procedure vtGetFoldersList(Const p_strRootPath:String;p_cstrList:TStringList);
    Var
    rSearch:TSearchRec;
    Begin
    If FindFirst(p_strRootPath+'*.*',faAnyFile,rSearch)=0 Then
     Repeat
      If ((rSearch.Attr and faDirectory)=faDirectory) and
         (rSearch.Name<>'.') and (rSearch.Name<>'..') Then p_cstrList.Add(p_strRootPath+rSearch.Name)
     Until FindNext(rSearch)<>0;
    FindClose(rSearch);
    End;

    Procedure vtGetFilesList(Const p_strMask,p_strRootPath:String;p_cstrList:TStringList;p_isRecurse:Boolean=False) ;
    Var
    rSearch:TSearchRec;
    cstrDirList:TStringList;
    I:Integer;
    Begin
    If FindFirst(p_strRootPath+p_strMask,faAnyFile,rSearch)=0 Then
     Repeat
       If ((rSearch.Attr and faDirectory)<>faDirectory) Then
        p_cstrList.Add(p_strRootPath+rSearch.Name)
     Until FindNext(rSearch)<>0;
    FindClose(rSearch);
    If p_isRecurse Then
     Begin
      cstrDirList:=TStringList.Create;
      Try
       vtGetFoldersList(p_strRootPath,cstrDirList);
       For I:=0 To cstrDirList.Count-1 Do
        vtGetFilesList(p_strMask,cstrDirList[i]+'\',p_cstrList,True);
      Finally
       cstrDirList.Free;
      End;
     End;
    End;

    {$ENDREGION}

    Type
    Строка = String;
    Целое = Integer;
    ТПачкаСтрингов = TStringList;
    ТПачкаСтрингов_RU = class helper for ТПачкаСтрингов
    public
      constructor Родить;
      procedure УбитьНах;
      function СкокаВасТам: Целое;
      procedure Впихнуть(Const Строка: Строка);
    end;

    procedure ТПачкаСтрингов_RU.Впихнуть(const Строка: Строка);begin inherited Add(Строка);end;
    function ТПачкаСтрингов_RU.СкокаВасТам: Целое;begin Result := Count;end;
    procedure ТПачкаСтрингов_RU.УбитьНах;begin inherited Free;end;
    constructor ТПачкаСтрингов_RU.Родить;begin inherited Create;end;
    procedure СлухСюды(Const Стр: Строка);begin WriteLn(Стр);end;
    function ЧеКаг: Целое;begin  result := ParamCount;end;
    function ЧетоТам(Const Индекс: Целое): Строка;begin result := ParamStr(Индекс);end;
    procedure ЖдатьЙопть;begin Readln;end;

    Var
    стадоФиле: ТПачкаСтрингов;
    ы: Целое;
    begin
     СлухСюды('SU: Logging commenter 1.00.0004');
     СлухСюды('(C) 2009, Timur R. Vildanov / modifyed Rouse_');
     стадоФиле := ТПачкаСтрингов.Родить;
     try
       if ЧеКаг = 1 then
         стадоФиле.Впихнуть(ЧетоТам(1))
       else
         vtGetFilesList('*.pas', GetCurrentDir+'\', стадоФиле);
       for ы := 0 to стадоФиле.СкокаВасТам - 1 do
         СлухСюды(стадоФиле[ы]);
     finally
       стадоФиле.УбитьНах;
     end;
     ЖдатьЙопть;
    end.

  • Andy BitOff © (25.12.09 13:44) [1]
    function ЧеКаг: Целое;

    =))))
  • Palladin © (25.12.09 14:15) [2]
    Удалено модератором
    Примечание: версия устарела )
  • Palladin © (25.12.09 14:36) [3]
    Удалено модератором
    Примечание: версия устарела )
  • Palladin © (25.12.09 14:37) [4]

    {$APPTYPE CONSOLE}

    uses
     Classes,
     SysUtils;

    {$REGION ' Всякие нужности ;) '}
    Const
    аяПапко = faDirectory;
    ФсеФайло = faAnyFile;
    Канэшна = true;
    Оке = true;
    Да = true;
    Не = false;
    Неа = false;

    Type
    ДаНе = Boolean;
    Стринги = String;
    Целое = Integer;
    ТПачкаСтрингов = TStringList;
    ТПачкаСтрингов_RU = class helper for ТПачкаСтрингов
    public
      constructor Родить;
      procedure УбитьНах;
      function СкокаВасТам: Целое;
      procedure Впихнуть(Const Стринги: Стринги);
    end;

    procedure ТПачкаСтрингов_RU.Впихнуть(const Стринги: Стринги);begin inherited Add(Стринги);end;
    function ТПачкаСтрингов_RU.СкокаВасТам: Целое;begin Result := Count;end;
    procedure ТПачкаСтрингов_RU.УбитьНах;begin inherited Free;end;
    constructor ТПачкаСтрингов_RU.Родить;begin inherited Create;end;
    procedure СлухСюды(Const Стр: Стринги);begin WriteLn(Стр);end;
    function ЧеКаг: Целое;begin  result := ParamCount;end;
    function ЧетоТам(Const Индекс: Целое): Стринги;begin result := ParamStr(Индекс);end;
    procedure ЖдатьЙопть;begin Readln;end;
    {$ENDREGION}

    {$REGION ' Фигня всякая нужная ;) '}
    Procedure ИщиПапкиСцк(Const Откель:Стринги;КудаПихать:ТПачкаСтрингов);
    Var
    СюдаИщи:TSearchRec;
    Begin
    If FindFirst(Откель+'*.*',ФсеФайло,СюдаИщи)=0 Then
     Repeat
      If ((СюдаИщи.Attr and аяПапко)=аяПапко) and
         (СюдаИщи.Name<>'.') and (СюдаИщи.Name<>'..') Then КудаПихать.Впихнуть(Откель+СюдаИщи.Name)
     Until FindNext(СюдаИщи)<>0;
    FindClose(СюдаИщи);
    End;

    Procedure ИщиФайлоСцк(Const Чё,Откель:Стринги;КудаПихать:ТПачкаСтрингов;ИскатьВнутре:ДаНе=Не);
    Var
    СюдаИщи:TSearchRec;
    СтадоПапк:ТПачкаСтрингов;
    ы:Целое;
    Begin
    If FindFirst(Откель+Чё,ФсеФайло,СюдаИщи)=0 Then
     Repeat
       If ((СюдаИщи.Attr and аяПапко)<>аяПапко) Then
        КудаПихать.Впихнуть(Откель+СюдаИщи.Name)
     Until FindNext(СюдаИщи)<>0;
    FindClose(СюдаИщи);
    If ИскатьВнутре Then
     Begin
      СтадоПапк:=ТПачкаСтрингов.Родить;
      Try
       ИщиПапкиСцк(Откель,СтадоПапк);
       For ы:=0 To СтадоПапк.СкокаВасТам - 1 Do
        ИщиФайлоСцк(Чё,СтадоПапк[ы]+'\',КудаПихать,Канэшна);
      Finally
       СтадоПапк.УбитьНах;
      End;
     End;
    End;

    {$ENDREGION}

    Var
    стадоФиле: ТПачкаСтрингов;
    ы: Целое;
    begin
     СлухСюды('SU: Logging commenter 1.00.0008');
     СлухСюды('(C) 2009, Timur R. Vildanov / modifyed Rouse_');
     стадоФиле := ТПачкаСтрингов.Родить;
     try
       if ЧеКаг = 1 then
         стадоФиле.Впихнуть(ЧетоТам(1))
       else
         ИщиФайлоСцк('*.pas', GetCurrentDir+'\', стадоФиле);
       for ы := 0 to стадоФиле.СкокаВасТам - 1 do
         СлухСюды(стадоФиле[ы]);
     finally
       стадоФиле.УбитьНах;
     end;
     ЖдатьЙопть;
    end.

  • Andy BitOff © (25.12.09 15:25) [5]
    Procedure ИщиФайлоСцк(Const Чё,Откель:Стринги;КудаПихать:ТПачкаСтрингов;ИскатьВнутре:ДаНе=Не);
    Var
    СюдаИщи:TSearchRec;
    СтадоПапк:ТПачкаСтрингов;
    ы:Целое;
    Begin
    If FindFirst(Откель+Чё,ФсеФайло,СюдаИщи)=0 Then
    Repeat
      If ((СюдаИщи.Attr and аяПапко)<>аяПапко) Then
       КудаПихать.Впихнуть(Откель+СюдаИщи.Name)
    Until FindNext(СюдаИщи)<>0;
    FindClose(СюдаИщи);
    If ИскатьВнутре Then
    Begin
     СтадоПапк:=ТПачкаСтрингов.Родить;
     Try
      ИщиПапкиСцк(Откель,СтадоПапк);
      For ы:=0 To СтадоПапк.СкокаВасТам - 1 Do
       ИщиФайлоСцк(Чё,СтадоПапк[ы]+'\',КудаПихать,Канэшна);
     Finally
      СтадоПапк.УбитьНах;
     End;
    End;
    End;



    :^D    =))))))
  • Anatoly Podgoretsky © (25.12.09 16:44) [6]
    > Andy BitOff  (25.12.2009 15:25:05)  [5]

    Если к этому делу нормально подойти, то это мощное оружие.
  • Andy BitOff © (27.12.09 20:15) [7]
    > Anatoly Podgoretsky ©   (25.12.09 16:44) [6]
    > Если к этому делу нормально подойти, то это мощное оружие.

    Мощное против студентов?
  • Anatoly Podgoretsky © (27.12.09 21:14) [8]
    И за тоже, можно писать более понятные приложения, а не только для гуру. Главное не переусердствовать, а то дашь дураку стеклянный член, так он его умудрится сломать.
  • Andy BitOff © (28.12.09 15:09) [9]

    > Anatoly Podgoretsky ©   (27.12.09 21:14) [8]
    > Главное не переусердствовать

    Ага. Что Тимур нам и показал.
    А вообще, думаю неправильно это, это человек научившийся писать с  русскими идентификаторами (всмысле с нуля сразу на русском), как же он будет читать чужой код? Будет промтом его переводить =)
 
Конференция "Журнал" » Великий и могучий Делфи2007 )
Есть новые Нет новых   [134427   +34][b:0][p:0.005]