نمایش نتایج 1 تا 40 از 214

نام تاپیک: سورسهاي نمونه آموزشي

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #22
    کاربر دائمی آواتار mbshareat
    تاریخ عضویت
    آبان 1387
    محل زندگی
    شهر مقدس قم-چهارمردان-کوچه 37
    پست
    963

    نقل قول: سورسهاي نمونه آموزشي

    سلام
    احوال؟
    چند تابع ساده نوشتم برای اینکه تعداد کارکترهای کد کمتر بشه. گفتم شاید به درد کسی خورد:
    function TForm1.TrimFirst(S:String;N:Integer):String;begin
    If S='' then
    Exit;
    Result:=Copy(S,N+1,Length(S)-N);
    end;
    function TForm1.TrimLast(S:String;N:Integer):String;
    begin
    If S='' then
    Exit;
    Result:=Copy(S,1,Length(S)-N);
    end;
    function TForm1.BeforeStr(S,S2:String):String;
    begin
    If S='' then
    Exit;
    Result:=Copy(S,1,Pos(S2,S)-1);
    end;
    function TForm1.AfterStr(S,S2:String):String;
    begin
    If S='' then
    Exit;
    Result:=Copy(S,Pos(S2,S)+1,Length(S)-Pos(S2,S));
    end;
    function TForm1.BetweenStr(S,S2,S3:String):String;
    begin
    If S='' then
    Exit;
    Result:=Copy(S,Pos(S2,S)+Length(S2),PosEx(S3,S,Pos (S2,S))-Pos(S2,S)-Length(S2));
    end;
    function TForm1.LastChar(S:String):String;
    begin
    If S='' then
    Exit;
    Result:=S[Length(S)];
    end;
    procedure TForm1.GetNums(S:String;Var A:Array of Word;Reverse:Boolean=False;ExitChar:Char=#0);
    Var
    I,N:Word;
    Tmp:String;
    begin
    For I:=A[0] To High(A) Do
    A[I]:=0;
    S:=S+'.';
    N:=0;
    For I:=1 to Length(S) Do
    Begin
    If pos(S[I],'0123456789')>0 then
    Begin
    If Reverse=True then
    Tmp:=S[I]+Tmp
    Else
    Tmp:=Tmp+S[I];
    End
    else If Tmp<>'' then
    Begin
    A[N]:=StrToInt(Tmp);
    if S[I]=ExitChar then
    Break;
    Tmp:='';
    Inc(N);
    End;
    End;
    End;
    Function TForm1.IntRev(S:String):Integer;
    begin
    Result:=StrToInt(ReverseString(S));
    end;
    Function TForm1.Rev(S:String):String;
    begin
    Result:=ReverseString(S);
    end;
    Function TForm1.AppDir:String;
    begin
    Result:=ExtractFileDir(Application.ExeName);
    end;
    Function TForm1.TopDir(S:String;LC:Boolean=False):String;
    begin
    If LC=True then
    Result:=LowerCAse(ExtractFileDir(S))
    Else
    Result:=ExtractFileDir(S);
    end;
    Function TForm1.FN(S:String;LC:Boolean=False):String;
    begin
    If LC=True then
    Result:=LowerCAse(ExtractFileName(S))
    Else
    Result:=ExtractFileName(S);
    end;
    Function TForm1.Ext(S:String;LC:Boolean=False):String;
    begin
    If LC=True then
    Result:=LowerCAse(ExtractFileExt(S))
    Else
    Result:=ExtractFileExt(S);
    end;
    function TForm1.MatchPos(S,S2:String;N:Word):Integer;
    Var
    P,M:Integer;
    begin
    Result:=0;
    P:=0;
    M:=0;
    While True Do
    Begin
    P:=PosEx(S2,S,P+1);
    If P=0 then
    Exit
    Else
    Begin
    Inc(M);
    If N=M then
    Begin
    Result:=P;
    Exit;
    End;
    End;
    End;
    end;
    function TForm1.FirstMatchPos(S:String;A:Array of String):Integer;
    Var
    I,P,P2:Integer;
    begin
    P:=0;
    For I:=0 To High(A) Do
    Begin
    P2:=Pos(A[I],S);
    If (P=0) or (P2<P) then
    P:=P2;
    End;
    Result:=P;
    end;

    procedure TForm1.FormCreate(Sender: TObject);
    Var
    A:Array [1..3]Of Word;
    begin
    GetNums('}12\3-4{65',A,False,'{');
    ShowMessage(IntToStr(A[3]));
    ShowMessage(LastChar('bagher'));
    ShowMessage(IntToStr(MatchPos('Papa','a',2)));
    ShowMessage(IntToStr(FirstMatchPos('I am a Good Student!',['Go','!','a'])));
    end;





    دو نکته:
    1. اگر اسم فرم شما TForm1 نیست میتونید با Ctrl+R تغییرش بدید و اگر صلاح دونستید .Tform1 رو حذف کنید.
    2.من چون از بیسیک سراغ دلفی اومدم ترجیح میدم جای زیر رشته رو بعد از رشته اول بنویسم. اگر دلتون خواست جای پارامترها رو در MatchPos عوض کنید.
    آخرین ویرایش به وسیله mbshareat : شنبه 23 دی 1402 در 11:23 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •