تور لحظه آخری
امروز : دوشنبه ، 5 آذر 1403    احادیث و روایات:  امام علی (ع):هيچ واعـظـى مـؤثرتر از نصيحت نيست.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

لوله بازکنی تهران

آراد برندینگ

خرید یخچال خارجی

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

خرید بلیط هواپیما

بلیط اتوبوس پایانه

قیمت سرور dl380 g10

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

بهترین وکیل کرج

بهترین وکیل تهران

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

ویزای چک

محصولات فوراور

خرید سرور اچ پی ماهان شبکه

دوربین سیمکارتی چرخشی

همکاری آی نو و گزینه دو

کاشت ابرو طبیعی و‌ سریع

الک آزمایشگاهی

الک آزمایشگاهی

خرید سرور مجازی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

لوله و اتصالات آذین

قرص گلوریا

نمایندگی دوو در کرج

خرید نهال سیب

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

 






آمار وبسایت

 تعداد کل بازدیدها : 1833655710




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

آموزش کلد فیوژن: انواع داده پیچیده : لیست ها


واضح آرشیو وب فارسی:سایت ریسک: javadshahvand05-10-2007, 08:06 PMلیست ها در حقیقت رشته هایی هستند که مقادیر در آن به وسیله ی یک کاراکتر خاص از هم جدا شده اند. مانند مثال های زیر : <cfset List_of_employees="Hadi Moshayedi,Hossein Sharafi,Ben Forta"> <cfset List_of_animals="Elephant;Horse;Monkey"> <cfset List_of_salaries="۱۲۰۰۰,۱۳۰۰,۵۰۰۰,۴۰۰۰"> به کاراکتری که مقادیر را از هم جدا می کند، Delimiter گویند. مثلا , (کاما) در مثال اول و ; در مثال دوم. همانطور که در مثال های بالا دیدید، برای ایجاد لیست ها از <cfset ... > استفاده می کنیم و مقادیر اولیه را تنظیم می کنیم. ● افزودن مقادیر به یک لیست : ساده ترین راه برای افزودن یک مقدار به یک لیست استفاده از تابع ListAppend به صورت زیر می باشد : <cfset myList="hadi,coldfusion,something"> <cfset myList = ListAppend(myList,"php")> مثال بالا مقدار جدید "php" را به انتهای لیست اضافه می کند. این تابع، دارای پارامتر سومی می باشد که اختیاری می باشد و می تواند مانند مثال بالا ذکر نشود. این پارامتر سوم، Delimiter لیست را مشخص می کند و به صورت پیش فرض مقدار آن کاما می باشد. اگر در لیست از Delimiter ی به غیر از کاما استفاده کرده باشیم، برای افزودن یک مقدار به انتهای لیست به صورت زیر عمل می کنیم : <cfset myList="hadi;coldfusion;something"> <cfset myList = ListAppend(myList,"php",";")> ListAppend مقدار جدید را به انتهای لیست اضافه می کرد. برای افزودن یک مقدار به ابتدای لیست، از تابع ListPrepend ، به همان صورت که از ListAppend استفاده می کردیم، استفاده می کنیم. به مثال های زیر توجه فرمائید : <cfset myList="a,b,c,d"> <cfset myList = ListPrepend(myList,"۰")> <!--- Now, myList contains "۰,a,b,c,d" ---> <cfset myList="a;b;c;d"> <cfset myList = ListPrepend(myList,"۰",";")> <!--- Now, myList contains "۰;a;b;c;d" ---> برای افزودن مقداری به لیست در یک مکان مشخص، از تابع ListInsertAt استفاده می کنیم. به صورت زیر : <cfset myList="a,b,c,d"> <cfset myList = ListInsertAt(myList,۳,"h")> در مثال بالا، مقدار "h" سومین عنصر از لیست خواهد شد. مانند توابع دیگری که در این مقاله معرفی گردید، این تابع نیز دارای پارامتر اختیاری چهارمی هست که Delimiter لیست را مشخص می کند و مقدار پیش فرض آن کاما می باشد. ● استخراج مقداری از لیست با استفاده از اندیس آن برای استخراج مقدار عنصری از لیست با استفاده از اندیس آن، از تابع ListGetAt استفاده می کنیم. به صورت زیر : <cfset myList="a,b,c,d"> <cfset second_item=ListGetAt(myList,۲)> کد بالا مقدار عنصر دوم لیست myList را در متغیر second_item قرار می دهد. این تابع نیز دارای پارامتر اختیاری مشخص کننده Delimiter می باشد. توابع ListFirst و ListLast به ترتیب مقدار عنصر اول، و مقدار عنصر آخر لیست را می دهند. تابع ListRest تمام عناصر یک لیست به غیر از عنصر اول را به عنوان خروجی می دهد. <cfset myList="a,b,c,d"> <cfset first_item = ListFirst(myList)> <!--- first_item contains "a" now ---> <cfset last_item = ListLast(myList)> <!--- last_item contains "d" now ---> <cfset rest_items = ListRest(myList)> <!--- rest_items contains "b,c,d" now ---> برای بدست آوردن تعداد عناصر یک لیست از تابع ListLen به صورت زیر استفاده می کنیم : <cfset myList="a,b,c,d"> <cfset myListLen = ListLen(myList)> <!---Now, myListLen Equals ۴ ---> <cfset myList="a;b;c;d"> <cfset myListLen = ListLen(myList,";")> <!---Now, myListLen Equals ۴ ---> برای حذف عنصری از لیست، از تابع ListDeleteAt به صورت زیر استفاده می کنیم : <cfset myList="a,b,c,d"> <cfset myList = ListDeleteAt(myList,۲)> کد بالا عنصر دوم لیست را حذف می کند. ●جستجو در لیست ها برای پیدا کردن مقداری در لیست، از تابع ListFind استفاده می کنیم. این تابع موقعیت اولین عنصری که دارای مقدار دلخواه باشد را به عنوان خروجی بر می گرداند. <cfset myList="Hadi,Hossein,Ben"> <cfset Pos۱ = ListFind(myList,"Ben")> <!--- Pos۱ equals ۳ now ---> تابع ListContains موقعیت اولین عنصری که دارای مقدار شامل عبارت مورد نظر را به عنوان خروجی بر می گرداند. <cfset myList="Hadi,Hossein,Ben"> <cfset Pos۲ = ListContains(myList,"se")> <!--- Pos۲ equals ۲ now ---> کد بالا مقدار ۲ را در متغیر Pos۲ قرار می دهد، زیرا عبارت Hossein شامل عبارت se می باشد. ListFind و ListContains بین حروف بزرگ و کوچک تفاوت قائل می شوند. برای اینکه در جستجو حروف بزرگ و کوچک یکسان باشند به جای توابع بالا از توابع ListFindNoCase و ListContainsNoCase استفاده می کنیم. ● لیست های دارای عناصر خالی عناصر خالی، عناصری از لیست هستند که دارای هیچ مقداری نمی باشند. برای درک چگونگی کار با آن ها به مثال زیر توجه کنید : <cfset myList = "Hadi,,Hossein,Ben,,"> فکر می کنید لیست myList دارای چند عنصر می باشد؟ شاید فکر کنید که این لیست دارای شش عنصر می باشد، ولی کلدفیوژن عناصر دارای مقدار خالی را حساب نمی کند ... پس لیست بالا از نظر کلدفیوژن سه عنصر دارد و "Ben" مقدار عنصر سوم آن می باشد. برای ایجاد عناصر خالی، از کاراکتر فاصله به جای مقدار خالی استفاده کنید، مانند مثال زیر : <cfset myList = "Hadi, ,Hossein,Ben, , "> لیست بالا از نظر کلدفیوژن شش عنصر دارد. برای تغییر مقدار عنصری از لیست از تابع ListSetAt مانند مثال زیر استفاده می کنیم : <cfset myList = "Hadi,Hossein,Ben"> <cfset myList = ListSetAt(myList,۱,"Good Boy")> <!--- myList = "Good Boy,Hossein,Ben" ---> کد بالا مقدار عنصر اول لیست را از Hadi به Good Boy تغییر می دهد. ● مرتب سازی عناصر لیست برای مرتب سازی عناصر یک لیست از تابع ListSort استفاده می کنیم. این تابع دارای دو پارامتر اجباری که اولی مشخص کننده لیست، و دومی مشخص کننده نوع مرتب سازی می باشد، می باشد. <cfset myList = "a,d,c,v"> <cfset myList = ListSort(myList,"text")> مقادیر قابل قبول برای پارامتر دوم عبارتند از "text"، "textnocase"، و "numeric". مرتب سازی "text" بین حروف بزرگ و کوچک تفاوت قائل می باشد و در مرتب سازی حروف بزرگتر اول تر قرار می گیرند ... "textnocase" برای حروف بزرگ و کوچک ارزش یکسانی قائل می باشد. "numeric" عناصر بر اساس ارزش عددی آن ها مرتب می سازد. پارانتر سوم که اختیاری می باشد، ترتیب مرتب سازی را مشخص می سازد. "asc" (مقدار پیش فرض) مشخص می کند که مرتب سازی از ارزش کمتر به ارزش بیشتر باشد . "desc" برای مرتب سازی از ارزش بیشتر به ارزش کمتر به کار می رود. به مثال های زیر توجه کنید : <cfset myList = "a,d,c,v"> <cfset myList = ListSort(myList,"text")> <!--- myList = "a,c,d,v" ---> <cfset myList = "a,B,c,d"> <cfset myList = ListSort(myList, "textnocase", "desc")> <!--- myList = "d,c,B,a" ---> ● Delimiter های یک لیست توابعی که برای کار با لیست ها به کار می روند تقریبا همه شان یک پارامتر آخری اختیاری دارند که Delimiter لیست را مشخص می سازد. Delimiter هایی که اکثرا مورد استفاده قرار می گیرند، عبارتند از : کاما، ;، |، ~ . برای تغییر Delimiter یک لیست از تابع ListChangeDelims به صورت زیر استفاده می کنیم : *<cfset myList = "a;b;c;d"> <cfset myList = ListChangeDelims(myList, ",", ";")> <!--- myList = "a,b,c,d" ---> پارامتر دوم مشخص کننده Delimiter جدید و پارامتر سوم مشخص کننده Delimiter قبلی می باشد. پارامتر سوم اختیاری می باشد و دارای مقدار پیش فرض کاما می باشد. ● ایجاد حلقه(Loop) روی عناصر لیست برای ایجاد حلقه روی عناصر یک لیست، به صورت زیر عمل می کنیم : <cfset myList = "a;b;c;d"> <cfoutput> <cfloop list="#myList#" index="theElement" delimiters=";" > #theElement#<br> </cfloop> </cfoutput> در کد بالا، theElement ابتدا مقدار "a" ، سپس مقدار "b" ، سپس مقدار "c" و در آخر مقدار "d" می گیرد و در هر مرحله کد بین <cfloop ...></cfloop> را برای مقادیر theElement اجرا می کند. delimiters اختیاری می باشد و دارای مقدار پیش فرض کاما می باشد. ● مناسب سازی یک لیست برای عبارات SQL لیست زیر را در نظر بگیرید : <cfset myList = "pear,lemon,orange,citron"> و حال می خواهید لیست بالا در Query زیر استفاده کنید : SELECT * FROM Fruit WHERE FruitName IN (&#۰۳۹;pear&#۰۳۹;,&#۰۳۹;lemon&#۰۳۹;,&#۰۳۹;orange&#۰۳۹;,&#۰۳۹;citron&#۰۳۹;) شما نمی توانید از لیست به این صورت استفاده کنید : SELECT * FROM Fruit WHERE FruitName IN (#myList#) زیرا عناصر لیست دارای &#۰۳۹; (single quote) در دو طرفشان نمی باشند. برای این منظور، از تابع ListQualify استفاده می کنیم. مانند مثال زیر : SELECT * FROM Fruit WHERE FruitName IN (#ListQualify(myList,"&#۰۳۹;")#)) ● موارد استفاده از لیست ها اینکه کجا از لیست ها استفاده کنید، بستگی به خودتان و خلاقیت و نحوه ی تفکر شما دارد. اما من شخصا از لیست ها در موارد زیر استفاده می کنم : ۱) وقتی می خواهم در یک متغیر کوکی (cookie) بیش از یک مقدار قرار دهم. زیرا نمی توان به کوکی ها مقادیر آرایه ای داد، لیست ها در این جا یکی از انتخاب های خوب برای استفاده می باشد. روش دیگری هم وجود دارد که بعدا در باره ی آن صحبت خواهم کرد. ۲) هنگامی می خواهم لیستی از مقادیر را در یک فیلد از یک رکورد در پایگاه داده ذخیره کنم. در این مورد نیز نمی توان از آرایه ها استفاده کرد. نویسنده : هادی مشیدی سایت ماکرومدیاx سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 620]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن