جوتی
پسر/دختر بابالنگدراز
My Favorites:
bbgoal
lamp
far-near
ashoob
miladkdz
rohmamiya
acetaminophen
debug
smartdevice
farstec
khak
aaab
nochagh
persiangirl
parsmedia
w3schoolsir
azemat
sargardoon
mahoordad
techopedia

My Programs:
BlogClient
MinsweeperRobot
Calculator
CalcWebSrvc
2unicode
HuffmanCode
FileValidator
ConvexHall2D
FSProject
IISLog

Options:
No CSS
CSS Layout

این orkut عجب سایت باحالیه! جدا شبیه اون چیزیه که می‌گه، یعنی یه جامعه آنلاین. خیلی خوشم اومد ازش. شما هم بگردین دنبال یه کسی که دعوتتون کنه.
و این رو هم حتما بخونید.
شدیدا ممنون از جناب تکنومدیا(تکوپیدیای سابق!!) که به من اعتماد در وکرد و دعوتم کرد.

جوتی

شادی و بازی!
من گاهی شعار میدم که زندگی فقط یه بازیه، نه مسابقه! ولی اون واقعا به این اعتقاد داره، شاید خودش هم ندونه چه اعتقاد فوق‌العاده‌ای داره.
زندگی رو میشه تو ذره ذره وجودش دید!
از دیدن زندگی لذت می‌برم.
از دیدن آدمهای ناراحت دلم می‌گیره. وقتی عصبانیت آدمها رو می‌بینم می‌ترسم. وقتی شادی آدمها رو می‌بینم دلم از شادی لبریز میشه! من یه آدم معمولی‌ام! به همین راحتی، به همین خوشمزگی! پودر کیک لواشک میرزا!

این روزها درگیر نظریه زبانها و ماشینهام. آسون نیست، ولی میشه باهاش کنار اومد. گاهی بدجور مخ آدم رو به کار می‌گیره. شاید مخم از این آکبندی در بیاد!!
راستی توی این کتاب پایگاه داده دیت (ترجمه قلزم) چقدر اراجیف نوشته! احتمالا توی ترجمه اینقدر اراجیف شده!

جوتی
حاشیه : این "جوتی" نوشتن پایین یاداشتها رو واقعا دوست دارم!


این ماه به جای اکانت ماهانه، اکانت ساعتی خریدم. خوبیش این بود که کمتر آنلاین شدم، بدیش هم این بود که تعداد بلاگهایی که خوندم خیلی محدود شد (که البته بیشتر بخاطر این بود که حوصله اش را نداشتم) و همه فایلهایی که می‌خواهم دانلود کنم روی دستم باد کرده!!
حدود ده تا فایل تو صف دانلود تشریف دارند!!!

جوتی


تبریکات فراوان به جناب آقای احسان مظلومی
برای چاپ شدن کتاب محترمشان
تحت عنوان
"کلید صدا در کامپیوتر"

جوتی


چیزهای زیادی هست که به مرور زمان فراموش می‌کنم.
بعد برای اینکه اونها رو یادم بیاد، به کمک بقیه نیاز دارم...

خود سانسوری
از اون روزی که هیت بلاگم از چهار پنج تا بیشتر شد، دچار خود سانسوری شدم!
سر دو کلمه که می نوشتم فکر می کردم :
"این اصلا مودبانه نیست"
"مردم چی فکر می‌کنند"
"حالا از پس فردا باید برای همه توضیح بدم که اصلا منظورم از لواشک، کشک نبوده و منظورم لوبیا بوده!"
هی آقا(و چه بسا خانوم)!! دلم می خواد یه چهار پنج صفحه ای درست و درمون با خودم درد دل کنم! ولی اگه همچین کاری بکنم (که آزمایش هم کردم) از فرداش چند نفر افاضات می‌فرمایند و هم دردی می‌کنند و راه‌کار ارائه می‌دهند و ...
اگه همه می‌تونستند از بابالنگدراز عزیزم یاد بگیرند و صداشون در نیاد، مشکلی نبود! ولی شماها حرف می‌زنید! من نمی‌خواهم شما حرف بزنید! شما فقط باید بیایید، بخوانید و بروید! فقط وقتی حرف بزنید که من می‌گم! یا فوقش اجازه دارید از من تعریف کنید!!
البته که این خودخواهی و خودپسندی و خودپرستی و خیلی چیزهای دیگه است! ولی همینه که هست!
اول فکر می‌کردم که وقتی "افاضات بفرمایید" پایین یه نوشته نباشه، شما درباره اون افاضات نخواهید کرد، ولی بعد دیدم که نخیر! اصلا ربطی نداره! از اون بدتر وقتیه که یه نفر سعی می‌کنه نوشته‌های من رو برای خودم تفسیر کنه! آقاجان (چه بسا خانوم جان) بی‌خیال (همون بکش بیرون خودمون)
اصلا بزرگترین مشکل من با شما این است که شما بلاگ من را می‌خوانید! آخه برای چی اینجا روزی 100 تا هیت داره؟ مگه شما کار و زندگی ندارین که وقتتون رو برای خوندن بلاگ من طلف می‌کنید؟ بابا برین در خونه خودتون بازی کنید!
خلاصه اینکه همه اینها دست به دست هم داد تا من یه فکری برای خودم بکنم. و حاصل این بود که یه بلاگ دیگه درست کردم. البته برای آقای ع.فضول‌آبادی که می‌خواهند این بلاگ را روی سایت من پیدا کنند باید خاطر نشان کنم که این بلاگ روی کامپیوتر خودم است! و اصولا روی اینترنت نیست!

جوتی
نتیجه گیری : از این به بعد من طبق عادت مالوف اینجا می‌نویسم و شما هم طبق معمول هر کاری دوست دارید بکنید!
حاشیه : امیدوارم این بلاگ local باعث بشه بهتر بنویسم. راستش از نوشته‌های خودم اصلا راضی نیستم داره حالم رو بهم میزنه!
حاشیه 2 : دوستت دارم.


گوگل به کجا می رود؟ لینک

دیروز با اتوبوس رفتم آزادی.
این جمله اصولا هیچ معنی عجیبی نداره. یه چیز کاملا معمولیه. مگر اینکه بدونین کسی که این جمله را گفته دیروز ساعت 5 صبح رفته آزادی که ساعت کار اتوبوسهای شرکت واحد نیست!
اون موقع صبح اتوبوسها موجودات خیلی جالبی هستند! اونها هم مثل ماشینهای شخصی می شوند. دقیقا مثل ماشینهای شخصی. بعضیها مسافر کشی می کنند و بعضی، نه. اونها که مسافر کشی می کنند، پول رو نقد می گیرند، بیرون ایستگاه نگه می‌دارند، با سرعت یه ماشین معمولی هم می روند. اصلا توی ایستگاه هم نگه نمی دارند! فقط خوبیش اینه که تو این مسیری که من می‌روم ، نصف کرایه تاکسی را می‌گیرند.
خوب آدم هرچی یه نفر رو بهتر بشناسه، بهتر می‌تونه معنی حرفش رو بفهمه.

راستی! دیروز عجب بادی می اومد! من دربدر داشتم تو قزوین با تمام سرعتم می‌دویدم (خلاف جهت باد ) ولی هرچی نگاه می‌کردم می‌دیدم سرعتم هنوز اندازه راه رفتنه!

جوتی


و من از این پس این دو وبلاگ را زن و شوهر اعلام می‌کنم. لینک از آرشی

فشار آب خیلی کم شده بود، می دونستم تا دو سه دقیقه دیگه همین آب باریکه هم دیگه از لوله نمی‌آید. سریع رفتم حمام و سرم را شستم و بعد با کمال آرامش اینقدر تو حمام موندم تا آب کاملا قطع شد...
آدم وقتی بدونه شرایط داره تغییر میکنه خیلی راحتتر (و خونسردتر) می‌تونه با شرایط جدید مواجه بشه.
ولی همیشه نمیشه برای شرایط جدید تصمیم معقولی گرفت... آخه همه چیز که به راحتی دوش گرفتن نیست!

جوتی
.

MySQL و Net.
ما (یعنی خودمان به تنهایی) امروز به MySQL ور رفتیم!
موجود جالبی می‌باشد که نسخه تحت ویندوز آن را می‌توانید از اینجا دانلود کنید. البته صفحه دانلودش واقعا جالبه! فکر کنم کمتر نرم‌افزاری باشد که این همه سیستم عامل را پشتیبانی کند (البته اگه از نرم‌افزارهایی که با زبانهای مستقل از سیستم عامل نوشته می‌شود بگذریم.)
بعد از اینکه خودش را دانلود کردید، اگر می‌خواهید در NET. از MySQL استفاده کنید، یک راه این است که درایور ODBC آن را دانلود و نصب کنید. بعد با یه Connection String تو این مایه ها :
"Driver=MySQL ODBC 3.51 Driver;SERVER=localhost;DATABASE=myTest;"
و با استفاده از System.Data.Odbc.OdbcConnection به بانک اطلاعاتی مورد نظر خود (در اینجا myTest) متصل شوید...
روش دیگر برای استفاده از MySQL در NET. این است که با یکی از ماژولهایی که برای این کار ایجاد شده است استفاده کنید. لینک

ارادتمند،
جوتی
حاشیه : من رو اینجوری نیگا نکنید! حوصله خودم رو ندارم! برای همین درباره کامپیوتر می‌نویسم.


و امروز سالگرد تعطیل شدن بلاگ حامد بنایی است.
و یک سال گذشت.
سیصد و شصت و پنج روز پیش

CASE Studio در یک دقیقه!
CASE Studio یکی از برنامه‌هایی است که برای رسم ERD و DFD مورد استفاده قرار می‌گیرد.
قاعدتا دانشجوهای کامپیوتر این برنامه را می‌شناسند و کسانی هم که دانشجوی کامپیوتر نیستند اصلا لازم نیست این برنامه را بشناسند! حالا برای چی من اینجا به این برنامه لینک دادم؟ برای اینکه کسانی که به برنامه‌نویسی علاقه‌مند هستند می‌توانند از این برنامه برای ایجاد دستورات SQL لازم برای ایجاد جدولهای یک بانک اطلاعاتی استفاده کنند.
فقط باید برنامه را اجرا کنید، از منوی File ، آیتم New Model را انتخاب کنید و از Combo پنجره جدیدی که باز می‌شود DBMS مورد نظر خود را انتخاب کنید. سپس از Toolbar یک Entity برداشته روی صفحه قرار دهید، روی آن دبل‌کلیک کنید و ستونهای مورد نظر خود را ایجاد کنید (هر Entity یک Tabel در پایگاه داده می‌شود) در نهایت از منوی Model، گزینه Generate Script را انتخاب کنید، همه CheckBoxها را انتخاب کنید (مفته دیگه!! اگه قبلا DataBase را ایجاد کرده بوده‌اید و حالا نمی‌خواهید جدولهای قبلی پاک شوند، Drop table را تیک نزنید.) و دکمه Generate را بزنید.
کد شما آماده است، فقط دکمه View را بزنید.

جوتی
حاشیه : مطمئنم خودتون بلدین Crack مربوطه را پیدا کنید.
حاشیه 2 : Manual این برنامه 2.3 مگابایت است! حتما می‌توانید از حجم manual برنامه حدس بزنید که کارهایی که می‌کند خیلی بیشتر از اینی است که من گفتم.
حاشیه 3 : اگر می‌خواهید بدانید ERD و DFD چیه، یه مهندسی نرم‌افزار 1 و یک عدد پایگاه داده‌ها (سر جمع 6 واحد) پاس کنید! دست آخر هم چیزی نمی‌فهمید (مثل من).


امتحان آزمدار الکتریکی هم به خیر گذشت! 9 گرفتم، ولی نمی‌دونم از چند!!

اول افتضاح در سایت سنجش را بخوانید. لینک از ایشون
بابا دمشون گرم...!
خداییش ترکوندن!
از قدیم گفتن "برنامه‌نویس جایزالخطاست" ولی دیگه اینا خیلی کارشون درسته!
به سبک صداسیما : "این به اصتلاح برنامه نویسانی که برنامه به اصتلاح جستجوی نتیجه به اصتلاح کنکور به اصتلاح کارشناسی به اصتلاح ارشد را نوشته اند واقعا ریده‌اند!"
حالا پس فردا ملت میان می‌گن سایت سنجش رو با NET. درست کردن... دیدی ترکید! دیدی دات نت بدرد کارهای بزرگ نمی‌خوره! دیدی با درخواست زیاد، دات نت منهدم میشه؟ نمی‌دونند که این عزیزان چه کدی زدند!!؟
شاعر می‌فرماید یه پل رو میشه با بتن ساخت، ولی همچی ساخت که با یه باد خراب بشه و میشه با کاغذ ساخت، ولی اینقدر مهندسی که عمرا خراش بهش نیوفته. (این رو چندین سال پیش یه جا خونده بودم، البته اونجا هم درباره برنامه نویسی گفته بودند! در مثل مقاسیه و محاوره و مجادله و ... نیست! بروبکس عمران شاکی نشوند لطفاً!)
باحال ترین بخشش، بخش دستور SQL است. دوستان خیلی تلاش کرده‌اند که هیچ امکانی برای شکست خوردن درخواستهای SQL Injection کاربر نگذارند!
کامنت "مسعود" را بخوانید، یک عدد تزریق زیبا و بدون درد برای این کد زیبایی که اساتید زیبا نوشته‌اند...
فقط می‌خوام یه چیز رو بدونم. نه برام اهمیت داره که کی این کد رو نوشته، نه مدیر پروژه و این چیزها برام مهمه فقط میخوام بدونم برای این پروژه چقدر هزینه از جیب مبارک دولت (بخوانید جیب من و شما) رفته؟ یک میلیون تومان؟ ده میلیون؟ صد؟... من برای این کد حاضرم ده هزار تومن به برنامه‌نویس بدم، اونم برای خرج ایاب ذهابش!

جوتی
دعای روز : خدایا! یکی از این پروژه باحالا هم برای ما جور کن!! به جون بچه‌ام قول می‌دم حداقل به اندازه اینها ضایع نباشم که source code رو آپلود کنم!!!
حاشیه : همین مدل برنامه نویسها، پس فردا میرن توی این مجله‌های کامپیوتری (با همین معلومات فوق‌العاده‌ای که دارند) مقاله می‌نویسند و ویژوال بیسیک را با دلفی مقایسه می‌کنند و در نهایت به این نتیجه می‌رسند که "از وقتی بورلند تکنولوژی دانت نت را اختراع کرده است، مایکروسافت به زمین گرم خورده" باور کنید همچی چیزی را درباره ActiveXها یه جا خوندم!!
حاشیه 2 : خدااااااااااااااااااااااااااااااااااااا!!


بقال که پیوسته ز موشان گله می‌کرد ،،، ای کاش تلاشی ز برای تله می‌کرد
فریـــــاد ستمدیده اگر از تـــه دل بـــود ،،، در قصر ستمگر اثر زلـزلــــــه می‌کرد
از "خروس لاری (ابوالقاسم حالت)"


نمایشگاه کتاب و سیب زمینی و دوستان و همبرگر ذغالی(ذغالش خیلی شبیه آهن بود) ‌و دودرکردن و دودر شدن و کتاب خریدن و چایی و گل‌آقا و کشک نخوردن و غم و شادی و باز هم کتاب خریدن و کتاب نخریدن!
جای شما خالی
خوش گذشت
مخصوصا که دوتا کتابی که می‌خواستم را خیلی راحت پیدا کردم.

جوتب


باید به درس خوندن حساسیت داشته باشم! چون تا می‌شینم درس بخونم از دماغم مثل ناودون یه خونه ویلایی کنار دریا تو یه روز بارونی، آب میاد!
اصلا درس خوندن شگون نداره!


اگه یه فیل آبریزش بینی بگیره چی میشه؟
یا اگه یه فیل که آبریزش بینی داره، عطسه کنه؛ چی میشه؟
این آبریزش بینی بدیش اینه که اصلا مشکل جدیی نیست و دل هیچ کس برای آدم نمی‌سوزه و آدم نمی‌تونه خودشو لوس کنه و مثلا بگه "من آبریزش بینی دارم، برام سوپ درست کنید!" یا بگه "من آبریزش بینی دارم برای همین فردا نمی‌تونم میان‌ترم ریزپردازنده بدم!" اینجوری همه آدم رو مسخره می‌کنند! اگه حداقل سرما خورده بودم باز بهتر بود!
ولی بابایی اینها رو ول کنید! سوال مهم همینه که
اگه یه فیل آبریزش بینی بگیره چی میشه؟

جوتی


همش دارم فین فین می‌کنم! خداییش هوای بهار از همه فصلها مزخرف تره! آدم تکلیفش با خودش روشن نیست؛ چه برسه به هوا!
راستی! کپی رایت هم چیز خوبیه! امروز مارمولک رو روی CD دیدم!
دارم آلبوم جدید گوگوش(آخرین خبر) رو هم دانلود می‌کنم! من تو گوگولی مگولی سرچ کردم، پس شما هم می‌تونید از همونجا پیداش کنید.

ارادتمند شما که هنوزم دماغش آب ریزش داره،
جوتی


هرچی درس به رشته برق نزدیکتر باشه من کمتر ازش سر در می‌آورم!
این مدار الکترو‌نیکی که واقعاً شاهکاره! هیچی ازش نمی‌فهمم!
من همینجا از موقعیت استفاده می‌کنم و میگم که رفیق ناباب باعث شد من بیام کارشناسی! شما گول نخورید! الان دو سال و نیم برا من بریدن!
بابااااااااااااااییییی! کممممک!
اصلا به من چه که دیود چیه و ترانزیستور کیه!؟ حالا گیرم که ولتاژ خروجی مدار شونصد ولت بود یا نیم میلی ولت! چه فرقی به حال من می‌کنه؟ آخه مدار الکترونیکی که برا آدم NET. نمیشه!!

کسی که با مساله‌های دیودی سر و کله می‌زند،
جوتی

هم معنی بودگی...
سلام بابایی
p = Process.GetProcessesByName("Taskmgr")
For i As Integer = 0 To p.Length - 1
p(i).Kill()
Next
اگر TaskManager هم باشی، بالاخره یکی پیدا می‌شود که بتواند تو را Terminate کند!
اگر عزرائیل هم باشی، بالاخره یکی پیدا می‌شود که بتواند تو را بکشد!
"دست بالای دست بسیار است."
کد بالای کد بسیار است.

همه اینها، برای من یه جورایی یه معنی دارند!
اما من به شما کاملا حق می‌دهم که اگر اون چهار خط کد را ببینید، نفهمید که منظور من این بوده که بگم "دست بالای دست بسیار است" خوب من گاهی دوست دارم شما نفهمید من چی میگم، آخه وقتی بفهمید من چی میگم ممکنه حرفم را قبول کنید!

جوتی


با ياد شاغلام، غضنفر، ممصادق و عيالش و دو کلمه حرف حسابی که می‌گفت!
لینک


سورس کد اون صفحه ...Loading که بلافاصله بعد از Login کردن به Gmail میاد دیدین؟
we use this page on frames and iframes that initially don't have
any content. It provides a nice message, but more importantly
it eliminates IE6's stupid https "insecure content" alert
for frames/iframes without a src (presumably it doesn't consider
about:blank to be secure.

خیلی جالب بود!


Gmail یک سایت نیست! یک معجزه است!
گل‌آقای مردم ایران درگذشت
لینک
نمی‌تونم باور کنم.


چند وقتی بود که می‌خواستم به منویی که با زدن کلید راست موس روی فایلها تو Explorer باز میشه، یه گزینه Open With Notepad اضافه کنم. راستش هرچقدر صبر کردم که بهم الهام بشه یا از غیب بهم خبر بدن که چطور باید این کار رو بکنم، هیچ خبری نشد! انگاری که ملائکه رفته باشند مرخصی! مثل این پاسگاه‌های پلیس راه که جدیدا انگاری رفتن مرخصی! چون دیگه اتوبوسها ساعت نمی‌زنند و برای همین من گاهی با اتوبوس بجای اینکه 2 ساعته برسم قزوین یک ساعت و بیست دقیقه‌ای می‌رسم!!
چی می‌گفتم؟
آها! حرف Open With Notepad بود!
خلاصه! امروز صبح آستین‌های مبارکمان را بالا زدیم و یکم تو رجیستری ویندوز جستجو فرمودیم و دست آخر به این نتیجه رسیدیم که:
در
HKEY_CLASSES_ROOT
در کلید * (هرگونه ارتباط این بنده با ستاره خانوم قویاً تکذیب می‌شود!)
یک کلید(Key) به نام shell درست کنید و در آن یک کلید به نام Notepad درست کنید. مقدار String Value پیش‌فرض این کلید جدید را به "Open with Notepad" یا هر چیز دیگری که می‌خواهید در منوی کذایی نمایش داده شود تغییر دهید.
سپس یه کلید دیگر درست کنید و اسم آن را به Command تغییر دهید و String Value پیش‌فرض آن را به 1% Notepad تغییر دهید.
شدیدا توصیه می‌شود که Notepad2 را دریافت فرموده و این بلا را سر ایشان بیاورید.

جوتی
حاشیه : الان شااادی‌ی‌ی؟


من به طالع بینی و این جور چیزها اعتقادی ندارم، ولی از روزی که این بخش "سیصد و شصت و پنج روز پیش" را راه انداخته‌ام دارم کم کم فکر می‌کنم که نکنه یه چیزهایی واقعیت داشته باشه؟ پارسال، چنین روزی هم سردرد داشتم و وقتی رسیدم اکباتان خوب شدم!
امسال 3 اسفند با تی‌شرت زیر بارون بودم و پارسال هم همینطور!
آیا همه اینها اتفاقی است یا هرسال وقایعی تکراری در جهان رخ می‌دهد؟ آیا این یک واقعیت است یا من شما را سر کار گذاشته ام؟

جوتی
حاشیه : برنامه نمایشگاه کتاب رفتن چجوریه؟ کی بریم؟ کی میاد؟ من دلم برای همه برو بکس غرفه بلاگ‌نویسها تنگ شده!

قیافه تماشایی
تصور کنید قیافه دانشجوی نسبتا محترمی را که بعد از انجام وظیفه(ریدن) در توالت طبقه سوم دانشگاه متوجه این واقعیت تلخ می‌شود که آب دانشگاه به علت شکستگی لوله، قطع شده است!!

جوتی

خانواده
یعنی
مادر، پدر، برادر، خواهر، پدربزرگ، مادربزرگ...
به همین سادگی!

0\
ساعت پنج صبح از خونه بیرون رفتن اونقدرها هم افتضاح نیست! البته درسته که مجبور می‌شوم ساعت چهار و ربع از خواب بیدار بشوم ولی همه چیزش هم بد نیست. توی راه (توی همون چند قدمی که باید پیاده برم تا به جایی که تاکسی سوار می‌شوم برسم) همش صدای پرنده‌ها میاد. تو سکوت اون موقع صبح، صدای پرنده‌ها فوق‌العاده قشنگه، خیلی قشنگ! حتی اگه از زور خواب هنوز یکی از چشمهای آدم هم بسته باشه، بازم از شنیدن صدای یه عالمه پرنده که جیک جیک و چه چه می‌کنند لذت می‌بره.
سکوت، تنهایی و تاریکی هوا و سر و صدای پرنده‌ها!
می‌دونی، اون موقع صبح که از خونه می‌روم بیرون فکر می‌کنم تو این شهرک به این بزرگی فقط من هستم و این پرنده‌ها... یه احساس عجیبیه بابایی! باید یک دفعه بیاین اینجا و خودتون از نزدیک تجربه کنید. البته خوب شاید جاهای دیگه هم بشه تجربش کرد.
این روزها فکر نمی‌کنم(نه که روزهای دیگه خیلی فکر می‌کردم!). فقط درس و کامپیوتر و بازی و دیدن آدمها! این آخری، از همش لذت‌بخشتره.
زیاده عرضی نیست،
جوتی

کاربرد عبارتهای با قاعده در شناسایی الگو (در NET.)
یکی از کاربردهای عبارتهای با قاعده، شناسایی الگو است. برای مثال وقتی می‌خواهید ببینید کجای یک متن، یک آدرس ای‌میل وجود دارد؟ یا می‌خواهید بدانید رشته‌ای که کاربر به عنوان IP در یک TextBox وارد کرده است واقعا IP است؟
البته تمام این کارها را می‌توان بدون بهره گیری از عبارتهای باقاعده نیز انجام داد، ولی خواهید دید که این کارها با استفاده از عبارتهای با قاعده بسیار ساده‌تر است. کار را با تعریف عبارتهای با قاعده شروع می‌کنیم و با معرفی عملگرها ادامه می‌دهیم و در نهایت نیز با چند مثال به پایان می‌بریم.

عبارت با قاعده چیست؟
عبارت با قاعده عبارتی است که بتوان آن از روی حروف الفبا و رشته تهی و با استفاده از عملگرهای اتحاد، اتصال، * یا + و ایجاد کرد. (این بخشی از تعریف رسمی است.)
مثال: عبارتهای aaabbb ، someone@somewhere.com عبارتهای با قاعده هستند.
عبارت با قاعده در NET.
عبارت با قاعده در NET. عبارتی است که از کاراکترهای یونی‌کد، با استفاده از عملگرهای ؟، *، + ، | و... ایجاد شود.

عملگر *
رشته *a که در آن a یک کاراکتر یونی‌کد است، رشته‌ای است که می‌تواند با تعداد صفر تا بی‌نهایت a برابر باشد. به عبارت دیگر، *a می‌تواند جایگزین هر تعداد (صفر یا بیشتر) از کاراکتر a شود.
مثال : "*cs" با همه رشته هایی که در آنها تعداد صفر یا بیشتر کاراکتر s بعد از کاراکتر c آمده باشد برابری می‌کند. بنابراین اگر در رشته "assecssvz" بدنبال الگوی مذکور بگردیم آن را در موقعیت 4 پیدا خواهد کرد. و اگر در رشته "caa" بدنبال آن الگو بگردیم، آن را در موقعیت 0 پیدا خواهد کرد.
برای اینکه بیشتر با پیدا کردن الگو آشنا شوید بهتر است کد زیر را بنویسید :
Dim r As New Regex("cs*")
Dim m As Match = r.Match("assecssvz")
MsgBox(m.Index)

البته پیش از آن باید Namespace مربوط به آن را Import کنید :
Imports System.Text.RegularExpressions

خط اول، یک شی Regex مخفف Regular Expressions ایجاد می‌کند و الگوی (Pattern) آن را به "*cs" تنظیم می‌کند. در خط دوم دستور r.Match متن "assecssvz" را برای یافتن الگوی شی r جستجو می‌کند و نتیجه این جستجو را در شی Match با نام m جایگزین می‌کند. دوتا از خاصیتهای مهم شی Match عبارتند از Index و Success. Index، محل قرارگیری الگو، در متن را بیان می‌کند و Success بیان می‌کند که جستجو موفقیت آمیز بوده است یا خیر.
عملگر +
این عملگر بسیار شبیه عملگر * است. با این تفاوت که حاصل تهی ندارد.
رشته +a برابر هر رشته‌ای از a، با طول یک یا بیشتر است.
مثال : "+xy" برابر با هر رشته‌ای است که شامل یک x باشد که پس از آن یک یا بیشتر y آمده است (xy""، "xyyy" و "hkgxyyyasz")
عملگر ?
کاراکتر قبل از آن می‌تواند در رشته وجود داشته باشد، یا نداشته باشد.
مثال : "xy?" این الگو در رشته‌های روبرو پیدا می‌شود : "xy" ، "xyyy" ، "xyaz" ، "azxk"
عملگر آغاز رشته ^
تعیین کننده آغاز رشته است.
مثال : "test^" فقط رشته‌هایی با این الگو مطابقت می‌کنند که با زیررشته test آغاز شوند.
عملگر پایان رشته $
تعیین کننده پایان رشته است.
مثال : "$ast" فقط رشته‌هایی با این الگو مطابقت می‌کنند که با زیررشته ast به پایان برسند.
مثال : اگر الگوی ما "$visual basic .NET^" باشد، فقط در رشته visual basic .NET"" پیدا خواهد شد.
تعیین تعداد کاراکتر
برای تعیین تعداد کاراکتر از {min,max} استفاده می‌کنیم:
مثال:
"{ab{1,4" رشته‌ای که درآن، بعد از کاراکتر a، یک تا چهار کاراکتر b آمده باشد.
"{,ab{5" رشته‌ای که درآن، بعد از کاراکتر a، پنج یا بیشتر کاراکتر b آمده باشد.
"{ab{5" رشته‌ای که درآن، بعد از کاراکتر a، دقیقا پنج کاراکتر b آمده باشد.
محدوده کاراکتر
برای اینکه یک محدوده کاراکتر را مشخص کنیم، از [] استفاده می‌کنیم:
"[A-Z]" : رشته‌ای که درآن حروف بزرگ وجودداشته باشد.
"[0-9]" : رشته ای که در آن عدد وجود دارد.
"*[0-9]" : رشته ای که در آن دنباله‌ای از اعداد وجود دارد.
و با ترکیب چند عملگر داریم :
"$*[0-9]^" : رشته‌ی غیر تهی که از اعداد صفر تا 9 تشکیل شده است.
عملگر اتحاد(یا) |
این عملگر مانند یای انحصاری عمل می‌کند:
"ab|c" : رشته‌ای که در آن بعد از یک کاراکتر a، یک کاراکتر b یا یک کاراکتر c بیاید.
پرانتز
برای اینکه یک عملگر روی چند کاراکتر یا مجموعه‌ای از حاصل عملگرهای دیگر عمل کند، از پرانتز استفاده می‌کنیم:
"*(x(yz" : رشته‌ای که در آن پس از کاراکتر x دنباله‌ای (احتمالا تهی) از yzها آمده است ("x"، "xyz"، "xyzyzyz")
"+(y|z)" : هر رشته‌ای که شامل دنباله‌ای از y و z باشد (به عبارت دیگر، با هر رشته‌ای که y یا z یا هردو را داشته باشد مطابقت می‌کند). مانند (yyyy، zzzz، dzadad)
"$+(y|z)^" : دنباله‌ای از y و z
نقطه، جایگزین هر کاراکتری
نقطه(.) با هر کاراکتری مطابقت میکند.
"a.x" : رشته‌ای که در آن زیررشته‌ای وجود داشته باشد که a و x یک کاراکتر با هم فاصله دارند. مانند "zajxk" یا "aax"
"${5}.^" : رشته‌ای به طول پنج
"$+(...)^" : رشته‌ای که طول آن مضرب سه است.
برای استفاده از کاراکترهای تعریف شده، نظیر + و * و ) در الگو باید قبل از آنها از \ استفاده کنیم.
"+\^" : رشته‌ای که با کاراکتر + شروع می‌شود.
در مورد خود \ نیز این قاعده برقرار است :
"+\\^" : رشته‌ای که با دنباله‌ای از \ شروع می‌شود.

چند مثال کلی :
تشخیص اینکه ورودی یک آدرس ای‌میل هست یا خیر :
"$+[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]^" : رشته‌ای که از حروف و اعداد تشکیل شده و یک @ و یک نقطه دارد. البته این الگو، someone@subdom.domain.com را آدرس ای‌میل مجاز نمی‌داند.
پیدا کردن تگ A در یک HTML :
"<a( +)|(.* +)href="".*"".*>.*</a>"

جوتی
مرجع : یه مشتی مرجع داشت! تقریبا ترجمه و تالیفه. از MSDN و جزوه نظریه زبان گرفته تا یه سایت که همین‌ها رو برای PHP توضیح داده بود (حالا البته من هم که فقط 2 خط کد NET. گفتم.)
اگه نوشته ایرادی داره (که احتمالا هم داره) تو بخش افاضات بفرمایید، لطفاً.


یه آقای محترمی تو بلاگ یه آقای محترم دیگه‌ای برای یک پست بسیار محترمی یک کامنت خیلی محترمی گذاشته بود که احتمالا تاثیر مثبتی در نمره نظریه زبان من خواهد داشت!!
اصلا دقت نکرده بودم که HTML یک عبارت با قاعده است! یعنی راستش را بخواهید هنوز هم بطور کامل متقاعد نشده ام! ولی ظاهرا که عبارت با قاعده است.
اون کامنت، تو بلاگ مردم باعث شد من یکی از namespaceهای خیلی خیلی بدرد بخور NET. را که تا امروز صبح ندیده بودم، پیدا کنم:
System.Text.RegularExpressions
این namespace همه کاری با عبارتهای با قاعده می‌کنه! pattern پیدا می‌کنه، آب حوض می‌کشه، پیرزن خفه می‌کنه، برف پارو می‌کنه... نوووون خشششکییهههه!
اطلاعات بیشتر، باشه برای بعد! فعلا برم ناهار بخورم!
باور کنید هنوز نخوردم!

ارادتمند جناب آقای کی.دی.زد. که مطلبشون سبب خبر شد،
جوتی


خداییش دیگه نامردی بود! جناب ویروس از آدرس staff@ehsani.ir به یکی از آدرس ای‌میلهای @ehsani.ir میل زده بود و گفته بود آدرس شما به زودی پاک میشه و... خودش رو هم Attach فرموده بود(یه فایل pif)!
میگم آخه عزیز من! من ناسلامتی خیر سرم صاحاب این دامینم! اصلا همچی ای‌میلی وجود نداره! چه برسه به اینکه بخواد میل‌باکس کسی رو هم پاک کنه!!
ویروس جان(البته برای اینکه آقای س.ا.ا. که به صحیح بودن مطالب بلاگها اهمیت می‌دهند ناراحت نشوند، باید خاطر نشان کنم که کرم worm صحیح است) ! میخوای کامپیوتر مردم رو بترکونی، بترکون! چرا یه کاری می‌کنی به جون من بیفتند و بگن چرا می‌خوای میل‌باکس ما رو پاک کنی؟

کسی که با اکانت ایشون آنلاینه،
جوتی


خداییش امروز خیلی خسته شدم. حال ندارم چیزی بنویسم.
جوتی خسته شما.


میشه یکی به من بگه تو این گوگل چه خبره؟
ای‌میل یک گیگابایتی که میده، جزیره هم که میخواد بخره؟!
لابد بعد هم می‌خواد بره مایکروسافت رو بخره دیگه!!

چمن
چاکر باب لنگدراز
آقا بهار امسال خیلی توووپز شده!
فقط یه نمه برف کم داره که دیگه چییی؟ حالشو ببریم اساس! حاجیت که با تریپز بارون حال نمی‌کنه ولی حالا که از برف مرف خبری نیست میشه آدم زیر بارون وایسه و همچی بفهمی نفهمی حالشو ببره. البت فقط وختی میشه آدم با تریپز سرما و یخ و یخ بندون حال کنه که چپش پر باشه! یا اینکه بخواد همچی ریدیف یخ بزنه... می‌دونی که منظورم چیه؟

اوچیکتیم،
جوتی


جناب دیوار، زدن تو کار شعر و شاعری.
و درباره شعر "قطره باران روی پنجره دیوار" مطلب جالبی نوشته‌اند.

سیصد و شصت و پنج روز پیش :

آرشیو ماهیانه:
مهر 81
آبان 81
آذر 81
دی 81
بهمن 81
اسفند 81
فروردین 82
اردیبهشت 82
خرداد 82
تیر 82
امرداد 82
شهریور 82
مهر 82
آبان 82
آذر 82
دی 82
بهمن 82
اسفند 82
فروردین 83
اردیبهشت 83
خرداد 83
تیر 83
امرداد 83
شهریور 83
مهر 83
آبان 83
آذر 83
دی 83
بهمن 83
اسفند 83
فروردین 84
اردیبهشت 84
خرداد 84
تیر 84
امرداد 84
شهریور 84
مهر 84
آبان 84
آذر 84
دی 84
بهمن 84
اسفند 84
فروردین 85
اردیبهشت 85
خرداد 85
تیر 85
امرداد 85
شهریور 85
مهر 85
آبان 85
آذر 85
دی 85
بهمن 85
اسفند 85
فروردین 86
اردیبهشت 86
خرداد 86
تیر 86
امرداد 86
شهریور 86
مهر 86
آبان 86
آذر 86
دی 86
بهمن 86
اسفند 86
فروردین 87
اردیبهشت 87
خرداد 87
تیر 87
امرداد 87
شهریور 87
مهر 87
آبان 87
آذر 87
دی 87
بهمن 87
اسفند 87
فروردین 88
اردیبهشت 88
خرداد 88
تیر 88
امرداد 88
شهریور 88
مهر 88
آبان 88
آذر 88
دی 88
بهمن 88
اسفند 88
فروردین 89
اردیبهشت 89
خرداد 89
تیر 89
امرداد 89
شهریور 89

آرشیو سالیانه:
سال 1381
سال 1382
سال 1383
سال 1384
سال 1385
سال 1386
سال 1387
سال 1388
سال 1389

قصه‌های من:

گرگ قسمت اول
گرگ قسمت دوم
موش کور
باغبان
جزیره
آتشفشان
کرم ابریشم
توپ
قصه‌های کامپیوتری

کتاب VB.NET مقدماتی
جزوه ویژوال بیسیک
رمزگذاری-رمزگشایی
تمام حقوق این سایت متعلق به امیر احسانی است.
شما حق دارید از مطالب این سایت هرطور که مایل هستید استفاده کنید بشرط اینکه برای آنها هیچ گونه وجهی دریافت نکنید. اگر منبع را هم ذکر کنید ممنون میشم.
jooti [at] ehsani [dot] org