دست نوشته های خودم

همه درددلها ، حرفها و یادداشتهای خودم …

مارک و پلو ایرانی !

نویسنده:
۳۱ اردیبهشت ۹۰

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

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

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

اعتراف : از اونجایی که قراره از این کتاب ۲ جلد بخرم ، یکی برای آرشیو خودم و یکی برای یک دوست عزیز ، ترجیح میدادم ۷ یا ۸ هزار تومان میدادم ولی عکسهای کتاب رنگی می بود !

اعتراف : بچه پولدار با این کتاب حال نمیکنه ! چون سفرنامه ساده و خاکی هست و راهنمای خوبی برای اونا نمیتونه باشه !

اعتراف : الان دارم صفحه آقای ضابطیان رو در ویکی پدیا میسازم ! همینجوری ! البته امیدوارم این دفعه پلیس ویکی گیر نده و حذف نکنه صفحه رو !

Facebooktwittergoogle_pluslinkedinmail

         دست نوشته

         , , , ,

دویدن در میدان تاریک مین

نویسنده:
۳۰ اردیبهشت ۹۰

اولین و تنها نمایشنامه مصطفی مستور ، رو دیشب خوندم. نثر خوبی داره و خوندنش خوش آینده. البته باید اعتراف کنم که با پرده چهارم نتونستم ارتباط خوبی برقرار کنم.

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

در ادامه با ماهان سربازی که درگیر افکار خاصی هست و بعضا به جبر و اختیار هم اشاره میکنه آشنا میشیم ! اون برای اینکه کتاب خوندن رو ترک کرده و درگیر افکار جدیدی شده به شدت مجازات می شود !

ظاهرا کتاب تلاش میکنه تا ثابت کنه که در دنیا هیچ نظمی وجود نداره. این تنها چیزیه که من میتونم درک کنم !

قشنگ ترین قسمتهای کتاب از نظر من :

“قربان، ماهان می‌گه اختیار وقتی معنا داره که نظمی در کار باشه و شما بتونید نتیجه‌ی کارتون‌ رو پیش‌بینی کنید. ماهان می‌گه وقتی هیچ‌چیز رو نشه پیش‌بینی کرد، معنی‌اش اینه که وقتی شمار کاری‌ رو انجام می‌دید، نیروهای دیگه‌ای به‌جای شما نتیجه‌ی کارها‌ رو تعیین می‌کنند: و این دقیقا یعنی بی‌نظمی. به تعبیر خودش، یعنی دویدن در میدان مین اون ‌هم در تاریکی محض، به همین خاطره که او به این نتیجه رسید، که اختیار، تابع نظمه و تا نظمی در کار نباشه، اختیار هم معنای روشنی نداره.”

و

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

قبلا چند تا از کتابهای دیگه مستور رو اینطوری معرفی کردم.

Facebooktwittergoogle_pluslinkedinmail

         کتاب

         , , , ,

کار با اکسل از طریق برنامه نویسی – Changing Excel File through .Net

نویسنده:
۱۶ اردیبهشت ۹۰

چند روز پیش توی شرکت مجبور شدیم تا حدود ۴۰۰ تا فایل اکسل رو که هر کدوم ۳ تا شیت و هر شیتی بالغ بر ۵۰۰۰ رکورد و ۱۵ تا ستون داشتند رو بررسی کنیم.
این کار بسیار حیاتی و مهم بود و باید با دقت و حوصله زیادی انجام میشد و بعد از یکی دو بار بررسی متوجه شدیم که این کار فقط با یک برنامه دقیق باید انجام بشه ، البته قبلا این کار با دست انجام میشد که باعث ایجاد خطای انسانی در کار میشد که البته ۱۰۰ درصد طبیعی بود.

مثلا باید با تلاش زیادی ، یک تغییر کوچک ، برای هر کدام از ۴۰۰ تا فایل در ۱۵۰۰ ردیف انجام میشد و میتونید تصور کنید که چه کار وقت گیر و اعصاب خورد کنی خواهد بود !

این شد که به اتفاق مهدی ، دوست برنامه نویس عزیز تصمیم گرفتیم که با نوشتن یکی دو تا برنامه، تغییرات اتوماتیک انجام شوند و بالاخره بعد از کمی جستجو و برنامه نویسی ساده تونستیم به این هدف برسیم.

۲ تا برنامه رو به صورت کامل نوشتیم و البته یک برنامه دیگه هم داریم مینویسیم که کار روزانه تیم رو کاهش میده.

برنامه اول :SheetSorter

این برنامه کارش اینه که ، شیت دوم رو منتقل میکنه به آخر !! برای ۴۰۰ تا فایل ، تقریبا ۲۰ ثانیه وقت گرفت ، البته میشد خیلی آپشنالش کرد ولی وقتش رو نداشتیم.

برنامه دوم : Excel manage

تو این برنامه میتونیم بگیم که چه فرمول یا داده ای رو از یک فایل الگو توی همه ۴۰۰ تا فایل اعمال کنه ، ذخیره کنه و فرمول رو اجرا کنه !! برای یک ستون ۱۰۰۰ تایی.

برنامه سوم  MAG Updater

که در حال نوشتن هستیم ، یک فایل ورودی اکسل میگیره و بنا به اطلاعات موجود در فایل ورودی ، ۴۰۰ تا فایل دیگه رو تغییر میده و بعد از انجام یک سری کارای دیگه ، ۳ تا فایل خروجی میده بهمون که باید توی سایت بزاریمش.

روش های برنامه نویسی :

برای توسعه این برنامه از دی ال ال های Interope مایکروسافت استفاده کردیم.

اهدافی که تونستیم در نسخه اولیه این برنامه ها اجرا کنیم :
۱ – باز کردن یک فایل اکسل در داخل برنامه
۲ – جا به جا کردن شیت ها
۳ – خواندن مقادیر داده های سلول ها و تغییر آنها
۴ – خواندن فرمول ست شده و تغییر آن
۵ – اعمال یک چارت با توجه به داده های خوانده شده
۶ – مدیریت پروسس های ویندوز
و ….

البته تصمیم داریم برای نسخه ۲٫۰ این برنامه چند تب دیگه بهش اضافه کنیم تا هم بهینه بشه هم کارهای مفید دیگه ای انجام بشه.

تیکه کد هایی که خیلی مفید هستند :

using System.Runtime.InteropServices;

Open an Excel File

Excel.Application memberexcelApplication = null;
Excel.Workbook MemberWorkBook = null;
memberexcelApplication = new Excel.Application();
memberexcelApplication.Visible = false;
MemberWorkBook = memberexcelApplication.Workbooks.Open(@”C:\1.xls”, 0, false, 5, “”, “”, false, Excel.XlPlatform.xlWindows, “”, true, false, 0, true, false, false);

Find Sheets

Excel.Worksheet Memberworksheet = null;
Memberworksheet = (Excel.Worksheet)MemberWorkBook.Worksheets[2];

Move second sheet to last sheet

if (Memberworksheet.Name == “30”)
Memberworksheet.Move(Type.Missing, MemberWorkBook.Worksheets[MemberWorkBook.Worksheets.Count]);

Change data of cell (Read from an excel and write in another excel)

string cellValue = “”;

object cellObject = null;
Excel.Range range = null;

object MemberCellObject = null;
Excel.Range Memberrange = null;

range = (Excel.Range)worksheet.Cells[rowIndex, columnIndex];
Memberrange = (Excel.Range)MemberWorkSheet.Cells[rowIndex, columnIndex];

cellObject = range.get_Value(null);
MemberCellObject = Memberrange.get_Value(null);

cellValue = (cellObject == null ? “” : cellObject.ToString().Trim());
saRet[0, 0] = cellValue;
MemberCellObject = cellValue;
Memberrange.set_Value(null, saRet);

Change Formule of a cell

string cellValue = “”;
object cellObject = null;
Excel.Range range = null;
range = (Excel.Range)worksheet.Cells[rowIndex, columnIndex];
if (range.HasFormula.ToString() == “True”)
Memberrange.Formula = NewFormule;

At End

memberexcelApplication.Quit();
Marshal.ReleaseComObject(memberexcelApplication);
memberexcelApplication = null;

Facebooktwittergoogle_pluslinkedinmail

         برنامه نویسی , کامپیوتر

         , , ,