PDA

نسخه کامل مشاهده نسخه کامل : مقاله : كار با TStrings



Mahmood_N
11-02-2008, 13:15
به نام خدا ...

در این مقاله قصد داریم درباره کلاس TStrings بحث کنیم ...

مواردی که در این مثاله بررسی می شوند عبارتند از متدها و خصوصیات این کلاس ...

البته به علت زیادی متدها و خصوصیات ، به صورت موردی و کاربردی آنها را بررسی میکنیم ...

TStrings چیست ؟
TStrings کلاسی است برای نگهداری مجموعه ای از رشته ها همراه با Index و شماره مخصوص هر رشته که امکان ویرایش و دسترسی آسان آنها را فراهم میکند ،‌ علاوه بر این میتوان در یک TStrings ، یک Object وابسته به یک رشته را نیز ثبت کرد و از آن استفاده نمود ...

ثبت اطلاعات در یک TStrings :
برای ثبت اطلاعات در یک کلاس TStrings ابتدا باید آن را Create کرده و سپس از متدهایی مثل Add‌ ، AddObject و ... استفاده نماییم ...

Create کردن یک TStrings :
با استفاده از متد Create میتوانیم یک TStrings ایجاد نماییم :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اگر نیاز داریم که تنها یک رشته را در یک TStrings ثبت نماییم ، میتوانیم از دستور Add استفاده نماییم :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دستور Add در کد بالا مقدار متغیر S را در Strings که یک مقدار TStrings است ثبت می نماید ...

گاهی اوقات نیاز داریم که تعدادی Object ( مثل TabSheet های یک PageControl ) را در یک TStrings ثبت نماییم ، بدین منظور باید از دستور AddObject استفاده نماییم :
البته توجه کنید که یک متغیر از نوع TStrings نمی تواند یک Object را در خود نگاه دارد ( در زمان اجرا خطای AbStract نمایش داده خواهد شد )
باید Object در آیتمهای یک شی دیگر که از نوع TStrings است قرار گیرد ، برای مثال می توانید در آیتم های یک ListBox و یا یک ComboBox آبجکت مورد نظر را Add کنید ...
برای مثال :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

پس از ثبت این Object میتوانید برای مثال به صورت زیر از آن استفاده نمایید :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

کد بالا صفحه فعال PageControl را برابر با TabSheet موجود در لیست ( که در کد مشخص شده ) قرار می دهد ...

دستور دیگری که برای ثبت اطلاعات در TStrings استفاده می شود ، دستور AddStrings است که یک مقدار TStrings را به لیست رشته ها اضافه خواهد کرد ...

مثال :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کد بالا ، رشته های موجود در Strings ( که همان S است ) را در ListBox1 قرار خواهد داد ...

دستور دیگری که برای اضافه کردن اطلاعات به یک TStrings به کار میرود ، دستور Append است ، این دستور یک مقدار String را به آخر لیست رشته ها در TStrings قرار می دهد ...

مثال :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

راه دیگر برای اضافه کردن یک رشته به TStrings استفاده از متد Insert است ...
این متد 2 پارامتر دارد ، 1. Index که شماره Index رشته ای که اضافه می شود را تعیین میکند و 2. S که مقدار رشته ای که باید اضافه شود را دربر می گیرد ..

مثال :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کد بالا رشته Hello را به عنوان اولین مقدار در لیست قرار می دهد ( به عنوان آیتمی که Index صفر دارد )

کلاس TStrings همچنین توابع دیگری به نام های LoadFromFile و LoadFromStream دارد که امکان وارد کردن رشته ها از یک فایل متنی و از Stream را میدهد ...
این دستورات یک پارامتر دارند که نام فایل و نام Stream را دربر می گیرد ...

مثال:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

حذف اطلاعات :

برای حذف اطلاعات از یک TStrings چندین راه وجود دارد که بررسی میکنیم

استفاده از متد Delete :
این متد یک رشته ( آیتم ) را از لیست حذف می نماید ، این متد یک پامتر دارد که باید Index مربوط به آیتمی که قصد حذف کردن آن را دارید را در آن وارد نمایید :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
استفاده از متد Clear :
این متد کل رشته ها ( آیتمهای ) موجود در TStrings را حذف خواهد کرد ...


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
-----------------------------------

سایر متدها و توابع پرکاربرد :

متد Exchange :
این متد مقدار ( یا جایگاه ) دو آیتم را با هم عوض میکند ، این متد 2 پارامتر دارد با نامهای Index1 و Index2 ، بعد از اجرای این متد جای Index1 با Index2 عوض خواهد شد ...
برای مثال فرض کنیم در یک TStrings‌، یک آیتم با Index صفر داریم و یک آیتم دیگر با Index یک که مقدار رشته اولی برای با " Hello " و دومی برابر با " Bye " است ، پس اجرای این متد با Index های صفر و یک ، مقدار Index برای رشته " Hello " برابر با 1 و مقدار Index برای رشته " Bye " صفر خواهد بود :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

تابع Equals :
این تابع مقادیر TStrings فعلی را با مقادیر یک TStrings دیگر که به عنوان پارامتر دریافت می کند مقایسه میکند و در صورت همسان بودن ، مقدار True و در غیر این صورت مقدار False را برمی گرداند :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

متد Move :
این متد یک رشته را از یک Index به یک Index دیگر منتقل میکند ، به عنوان مثال فرض کنیم که یک TStrings با 4 رشته ( آیتم ) داریم ، اگر بخواهیم مثلا آیتم سوم را از جای خود به آیتم اول ببریم باید به صورت زیر از متد Move استفاده نماییم :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

توابع IndexOf و IndexOfObject :

به وسیله این توابع می توانید Index یک رشته و یا یک Object را بدست آورید ،‌ این توابع هر کدام یک پارامتر دارند ، تابع IndexOf پارامتری از نوع String دارد که رشته را گرفته و Index آن را به عنوان خروجی برگشت میدهد و تابع IndexOfObject هم پارامتری از نوع TObject دارد که Object مورد نظر را به عنوان ورودی دریافت کرده و شماره Index آن را به عنوان خروجی برگشت میدهد ...


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

تابع Strings :
با استفاده از این تابع می توانید یک رشته از TStrings را با دادن Index آن استخراج کنید :
کد:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

خاصیت Capacity :
این خاصیت از نوع Integer بوده و به وسیله آن میتوانید محدودیت تعداد رشته ( آیتم ) هایی که می توان در TStrings مورد نظر ثبت کرد را مشخص نمایید ...
مثلا اگر این خصوصیت بر روی 6 تنظیم شده باشد ، TStrings مورد نظر تنها 6 آیتم دریافت خواهد کرد ...

خاصیت Count :
این خاصیت از نوع Integer بوده و تعداد آیتمهای موجود در TStrings را به ما می دهد ...

------------------

این مقاله هم به پایان رسید ، این نکته رو هم ذکر کنم که این مقاله کامل کامل نبود یعنی در این مقاله کل توابع و متد ها و خصوصیتهای کلاس TStrings بررسی نشد ، کلاس TStrings چندین خاصیت و تابع داره که کاربردهای خاص دارند و به صورت معمول استفاده نمی شن ، از این جمله میشه به خصوصیت CommaText اشاره کرد ، با استفاده از این Property می توان رشته های درون TStrings را به صورت ( SDF ) یا System Data Format داشت ...

همچنین در این مقاله از توضیح برخی توابع مانند InsertObject که عملکردی شبیه تابع Insert دارند اجتناب شد ... ( توضیح تمام متدها و توابع و خصوصیتهای کلاس TStrings از حوصله این مقاله و کلا یک مقاله خارج است )

می توانید برای کسب اطلاعات بیشتر و کامل از Help دلفی کمک بگیرید ...

امیدوارم مفید بوده باشه ...

موفق و پیروز باشید ...

romixery
11-02-2008, 16:59
با سلام و تشكر از محمود جان عزيز
خيلي وقت بود كه دنبال همچين مقاله اي مي گشتم.
چون مقاله مهم و بدرد بخوريه با اجازه محمود آقا اين آموزش رو PDF كردم كه دوستان دانلود كنند و داشته باشن.

لينك دريافت:(200kb)

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشين
باي

hp1361
13-02-2008, 17:11
سلام

آقا محمود دستت درد نکنه . این چیزی بود که من خیلی دنبالش میگشتم و قبلا هم در موردش پیشنهاد داده بودم .

اگه میشه همین مدل مقاله رو در مورد TList هم بنویسید

ممنون