إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

دالة explode في perl

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • [مقال] دالة explode في perl

    بسم الله الرحمن الرحيم

    من الدوال التي اعجبتني بشدة في لغة php هي دالة explode وهي دالة تقوم بتقسيم string على حسب محدد انت تختاره ثم تعيده في مصفوفة ولكنني للاسف لما احتجتها في perl لم اجدها بحثت بعض الشيئ فوجدت ان هناك باكيج خاص بها وهدا لم يحفزني على استخدام الباكج لاننا عادة لا نعرف ما الدي يوجدعند المستخدم لهدا قررت برمجة دالة explode على perl وهاهي وامل ان تحل مشاكل من واجه نفس مشكلتي

    كود PHP:
    sub explode{
    my $j=0;
    my $str=$_[0];
    my $sep=$_[1];
    my @tmp split(//,$sep);
    my $len = @tmp;
    my $rt='';
    my @string split(//,$str);
    my $strnum = @string;
    my @rtarray;
    for(
    my $i=0;$i<$strnum;$i++){
    $rt .=$string[$i];
    if((
    word($rt,$sep)) == 1){
    $rtarray[$j]=jst($rt,$len);
    $rt ='';
    $j++;
    }
    }
    if(
    $j==0){
    $rtarray[$j]=$rt;
    }
    else{
    $rtarray[$j]=$rt;
    }
    return @
    rtarray;
    }

    sub word(){
    my $st $_[0];
    my $sp $_[1];
    if(
    $st =~ /$sp/){
    return 
    1;
    }
    else{
    return 
    0;
    }
    }

    sub jst(){
    my $i=0;
    my $str $_[0];
    my $le $_[1];
    my @array = split(//,$str);
    my $l1 = @array;
    my $len $l1 $le;
    my $rt '';
    for(
    $i=0;$i<$len;$i++){
    $rt .= $array[$i];
    }
    return 
    $rt;

    هناك دوال مساعدة لدالة explode

    وهدا شرح بسيط

    كود PHP:
    #!/usr/bin/perl

    $dt="Linux is free but windows is not free !! Owch";
    $dg="free";
    @
    string explode($dt,$dg);
    print 
    $string[0];
    print 
    "\n";
    print 
    $string[1];
    sub explode{
    my $j=0;
    my $str=$_[0];
    my $sep=$_[1];
    my @tmp split(//,$sep);
    my $len = @tmp;
    my $rt='';
    my @string split(//,$str);
    my $strnum = @string;
    my @rtarray;
    for(
    my $i=0;$i<$strnum;$i++){
    $rt .=$string[$i];
    if((
    word($rt,$sep)) == 1){
    $rtarray[$j]=jst($rt,$len);
    $rt ='';
    $j++;
    }
    }
    if(
    $j==0){
    $rtarray[$j]=$rt;
    }
    else{
    $rtarray[$j]=$rt;
    }
    return @
    rtarray;
    }

    sub word(){
    my $st $_[0];
    my $sp $_[1];
    if(
    $st =~ /$sp/){
    return 
    1;
    }
    else{
    return 
    0;
    }
    }

    sub jst(){
    my $i=0;
    my $str $_[0];
    my $le $_[1];
    my @array = split(//,$str);
    my $l1 = @array;
    my $len $l1 $le;
    my $rt '';
    for(
    $i=0;$i<$len;$i++){
    $rt .= $array[$i];
    }
    return 
    $rt;

    السكريبت اعلاه يوضح استخدام الدالة فلقد مررت لها جملة Linux is free but windows is not free !! Owch والمحدد هو كلمة free واخيرا جعلت المصفوفة string تستقبل ما تعيده الدالة فلو طبعنا

    كود PHP:
    $string[0
    فسوف تكون النتيجة Linux is ولو طبعنا
    كود PHP:
    $string[1

    فسوف تكون but windows is not وهكدا.
يعمل...
X