evil_gates
اين نيز بگذرد ...
سلام دوست عزيز
بله همونطور كه گفتيد با تابع LEN طول رشته رو بدست مياريم و ازش دو واحد كم ميكنيم. بنابراين طول واقعي رشته بدست مياد. حالا ميتونيم با اطمينان بگيم كه رشته ما رو از كاراكتر 1 تا كاركتر n (كه n همون طول رشته هست) كپي كن
تابع StrCopy براي كپي كردن بخشي از رشته ما در متغير رشته اي استفاده ميشه. به اين صورت كه رشته ما رو از محلي كه مشخص ميكنيم به تعداد كاراكتري كه تعيين ميكنيم جدا ميكنه و در يك متغير رشته اي ديگه ذخيره ميكنه.
شكل كلي اين دستور به اين صورت هست.
تو دستور بالا $string همون رشته اصلي ماست position كاراكتر نقطه شروع و count تعداد كاراكترهايي كه بايد كپي بشن. و در نهايت تو متغير جديدي به نام $str ذخيره ميشه. (اگه ما به جاي $str از $string استفاده كنيم. در واقع عبارتي كه از رشته اصلي جدا شده مجددا تو خودش ذخيره ميشه. پس ميتونيم بگيم كه ساير كاراكترهاي رشته كه كپي نشدن حذف ميشه.)
فرض كنيد رشته اي داريم به نام ThisIsTest وقتي از تابع StrCopy استفاده كنيم و در قسمت position عدد 5 و تو قسمت count عدد 2 رو وارد كنيم. خروجي ما عبارت Is خواهد بود. از كاراكتر پنجم از ابتداي رشته به اندازه 2 كاراكتر جدا خواهد شد.
زبان SQL خيلي نزديك به زبان محاوره اي و همين امر دركش رو خيلي ساده ميكنه.
وقتي ميگيم SELECT * FROM tablename WHERE fiedname LIKE var يعني انتخاب كن هرچيزي از جدول ما رو به شرطي كه فيلد مشخص شده با var برابر باشه.
نتيجه: خروجي ما ركوردي خواهد بود كه var با fieldname برابر باشه.
اگه شما از % قبل يا بعد از متغير استفاده كنيد در واقع عمليات جستجو رو تعميم داديد و عبارتهاي مشابه رو هم جستجو ميكنيد. مثل استفاده از كاراكتر * كه در جستجو ويندوز استفاده ميكنيد.
شما ممكنه يك برنامه واحد رو به ده برنامه نويس بديد و هر كدوم با روشي برنامه رو بنويسن. در واقع هركدوم با الگوريتم خودشون كار ميكنن.
اما روش كلي تو برنامه نويسي اينه كه سعي كنيد برنامه با كمترين خطوط و دستورات و متغيرها و توابع ممكنه به درستي طراحي و اجرا بشه.
براي اينكه اون آيتمها رو به ليست باكس اضافه كنيد اين دستور رو ببينيد.
ميتونيد تحليل كنيد دستورات رو؟ سعي كنيد خط به خط به من بگيد چه اتفاقي افتاد.
تو فرصت بعدي ايشالا ادامه ميديم.
موفق باشيد.
... چون پلاگين به صورت خودكار دوتا كاراكتر به رشته اضافه ميكنه پس با تابع len طول رشته بدست مياد و 2 واحد از اون در خط اول كد كم ميشه حالا در خط دوم كد با تابع strcopy از طول رشته كپي گرفته شده و دوباره توي متغير get ريخته ميشه
سوال اينه كه اين عدد1 توي خط دوم بين get و strlen چكار ميكنه ...
بله همونطور كه گفتيد با تابع LEN طول رشته رو بدست مياريم و ازش دو واحد كم ميكنيم. بنابراين طول واقعي رشته بدست مياد. حالا ميتونيم با اطمينان بگيم كه رشته ما رو از كاراكتر 1 تا كاركتر n (كه n همون طول رشته هست) كپي كن
تابع StrCopy براي كپي كردن بخشي از رشته ما در متغير رشته اي استفاده ميشه. به اين صورت كه رشته ما رو از محلي كه مشخص ميكنيم به تعداد كاراكتري كه تعيين ميكنيم جدا ميكنه و در يك متغير رشته اي ديگه ذخيره ميكنه.
شكل كلي اين دستور به اين صورت هست.
کد:
str$=StrCopy(string$,position,count)
فرض كنيد رشته اي داريم به نام ThisIsTest وقتي از تابع StrCopy استفاده كنيم و در قسمت position عدد 5 و تو قسمت count عدد 2 رو وارد كنيم. خروجي ما عبارت Is خواهد بود. از كاراكتر پنجم از ابتداي رشته به اندازه 2 كاراكتر جدا خواهد شد.
بلهدر دستور بالا select يعني فرمان جستجو به زبان sql * يعني تمام ركوردها از جدول contacts كه فيلد firstname آنها برابر متغير get$ باشه
اول اينكه من فيلد last name آيا درست حذف كردم ؟
توصيه ميكنم كمي زبان sql رو مطالعه كنيد. البته اگه با دقت متن دستور رو بخونيد از ترجمه فارسيش ميتونيد تشخيص بديد چه اتفاقي خواهد افتاد.دوم اين علايم منو سردرگم ميكنه
Like\'' يا %\',' ميدونم زبان sql هست ميخوام بدونم براي مثلا يه مثال ديگه كدوم ازين علايم نياز هست و كدوم نه چون جايي از صحبتهاي آقا محمد شنيدم كه گفته بودن ميتونيد مورد جستجو رو بين دوتا علامت درصد قرار بدبد البته فكر كنم براي جستجوهاي مشابه بود.
زبان SQL خيلي نزديك به زبان محاوره اي و همين امر دركش رو خيلي ساده ميكنه.
وقتي ميگيم SELECT * FROM tablename WHERE fiedname LIKE var يعني انتخاب كن هرچيزي از جدول ما رو به شرطي كه فيلد مشخص شده با var برابر باشه.
نتيجه: خروجي ما ركوردي خواهد بود كه var با fieldname برابر باشه.
اگه شما از % قبل يا بعد از متغير استفاده كنيد در واقع عمليات جستجو رو تعميم داديد و عبارتهاي مشابه رو هم جستجو ميكنيد. مثل استفاده از كاراكتر * كه در جستجو ويندوز استفاده ميكنيد.
هر برنامه اي ميتونه چندين الگوريتم داشته باشه و هر برنامه نويسي به روش خودش و الگوريتمي كه تو ذهنش مينويسه برنامش رو اجرا ميكنه.براي اينكه به روش من رشته شما تفكيك بشه لازمه يك كاراكتر | به انتهاي اين رشته اضافه كنيد بنابراين از اين كد استفاده ميكنيم:
کد:
Results$=Results$+'|'
اينكه ميگيد به روش شما يعني چي آيا روش ديگه اي هم وجود داره و آيا روش كلي وجود داره كه من بتونم بر اساس اون توي يك مثال ديگه هم عمل كنم.
شما ممكنه يك برنامه واحد رو به ده برنامه نويس بديد و هر كدوم با روشي برنامه رو بنويسن. در واقع هركدوم با الگوريتم خودشون كار ميكنن.
اما روش كلي تو برنامه نويسي اينه كه سعي كنيد برنامه با كمترين خطوط و دستورات و متغيرها و توابع ممكنه به درستي طراحي و اجرا بشه.
شما وقتي رشته رو با اين روش تفكيك ميكنيد. از سمت چپ به ترتيب رشته شما تكه تكه ميشن. پس قبل اينكه متن رو تفكيك كنيد يكبار متغير $Results رو با فرمان message نمايش بديد و با دقت اون رو ببينيد. اينطوري فكر ميكنم بهتر ميتونيد منظورم رو درك كنيد....راي خروجي زير آيا من بايد شماره فيلدهارو بدونم و اگه بخوام چهار آيتم زير رو به يك ليست باكس اضافه كنم چكار بايد بكنم خودم كه فكر ميكنم بايد از حلقه تكرار استفاده كنم اما نميدونم چطور...
براي اينكه اون آيتمها رو به ليست باكس اضافه كنيد اين دستور رو ببينيد.
کد:
For i=1 To 5
ListBoxAddItem("ListBox","substr$[i]")
Next i
كتاب آموزشي جناب silvercover يه بخش كامل درباره متغيرهاي رشته اي داره. توصيه ميكنم اون رو با دقت بخونيد. فكر ميكنم حدود صفحات 200 به بعد باشه.در ضمن اگه از اين متغير رشته اي مثالهاي ساده داري كه بتونه بهم كمك كنه واسم لينك بذار بلكه بتونم بيشتر ياد بگيرم.
تو فرصت بعدي ايشالا ادامه ميديم.
موفق باشيد.