سلام
من میخوام یک برنامه بنویسم که مثلا یک جمله که مینویسم بهم بگه چند کلمه داره و هر کلمه چند حرف .5.png
سلام
من میخوام یک برنامه بنویسم که مثلا یک جمله که مینویسم بهم بگه چند کلمه داره و هر کلمه چند حرف .5.png
string jomle = "انجمن برنامه نویس";
string[] kalamat =jomle.Split(' ');
string matntextbox="تعداد کلمات" + "=" +kalamat.Length+"\n";
for (int i = 0; i < kalamat.Length; i++) {
matntextbox+=kalamat[i].Length+"="+(i+1)+ " کلمه"+"\n";
}
richTextBox1.Text=matntextbox;
تشکر
برنامه قبلو که برای نمایش در یک rich میریخت هر چی سعی کردم نمایش نداد.
ولی تویک lable ریختم نمایش داد.
الان من یکسری texbox و دکمه و ... گذاشتم ولی وقتی پنجره نرم افزار کوچیک بزرگ میکنم اونا سرجاشون هستن.
چی کنم که تا مثل برنامه های عادی دیگه برنامه منم ابزارم هم با کوچیک و بزرگ کردن پنجره تغییر کنن؟
آخرین ویرایش به وسیله eftary : چهارشنبه 17 اردیبهشت 1393 در 19:20 عصر
کنترل ها یک property دارن به نام anchor که می تونید هر کنترل را به یک جای پنجره قفل کنید که با تغییر سایز پنجره، کنترل هم جابجا بشه
الان همشونو تو یک text ذخیره میکنم ولی نمیتونم بینشون اینتر بزنم که کنار هم تو text ذخیره نشود. چی کنم
بهشکل زیر ذخیره میشود
تعداد کلمات=13=1 کلمه
خب بستگی داره کجا نمایش بدی
همون کدی که دوستمون دادن درسته ولی اگه میخوای توی ریچ تکست باکس نمایش بدی بجای "n\" از کد زیر استفاده کن
Environment.NewLine
تو تکست باکس هم که یه خط نشون میده در کل مگر اینکه خاصیت مولتی لاینو فعال کرده باشی که اونم همین روشی که گفتم استفاده کن
آخرین ویرایش به وسیله irartesh : پنج شنبه 18 اردیبهشت 1393 در 17:46 عصر
این یک نمونه ساده که ذخیره هم می کنه
http://uplod.ir/w2d5hsju307j/tedadkalame.zip.htm
الان من تو سیستمم فولدر میسازم ولی هر کاری میکنم تو فولدر برنامم فولدر درست نمیشه.
string folderName = @"c:\Program Files\myfol";
string pathString = System.IO.Path.Combine(folderName, "gm");
System.IO.Directory.CreateDirectory(pathString);
آخرین ویرایش به وسیله eftary : پنج شنبه 18 اردیبهشت 1393 در 19:41 عصر
همون برنامه را اجرا کنید در فولدری که فایل exe قرار داره یک فایل به نام myfile.txt ذخیره میشه که اصلا مشکلی نداره.
من با notepad باز کردم هر کدوم در یک خط جداگانه قرار داشتند
اگه می خواهید توی اون فولدری که فایل exe هست ایجاد بشه کافیه بزنید:
System.IO.Directory.CreateDirectory("mg");
الان میخوام تعداد کلمات و تعداد حرفاشون به int تبدیل کنم.
int[] myInt = Array.ConvertAll(kalamat, int.Parse);
ولی نشد
شما می تونستید یک آرایه int با ظرفیت kalamat.Length درست کنید و
توی همون حلقه for سایز هر کلمه را با kalamat[i].Length به دست بیارید و داخل[ myInt[i بریزید
این هم یک روش ساده تر:
using System.Linq;
//...
int[] myInt=kalamat.Select( k=>k.Length ).ToArray();
راهنما جان میشه بگی این خط کدت چیکار میکنه؟مشتاق شدم بدونم....یعنی الان تو ارایه ها چی میریزه؟مرسی
اینجا ما داریم یک پرس و جوی linq را اجرا می کنیم
شما آرایه کلمات را به عنوان یک سری داده در نظر بگیرید و هدف ما اینه که از این سری داده یک چیزی را استخراج کنیم ( در اینجا طول هر کلمه)
پس سه قسمت داریم:
1. ورودی که همین آرایه کلمات هست
2. تابع تبدیل ( که ورودی را پردازش و تبدیل به خروجی می کند)
3. خروجی
با استفاده از select می گوییم ما داده های ورودی را جهت پردازش انتخاب می کنیم
اما داخل select در واقع یک تابع وجود داره اما این تابع یک تابع بدون نام هست
به این جور عبارات عبارات لاندا lambda expression می گن
a => b
که a عبارت است از پارامتر ورودی تابع
و b هم عبارتی هست که در داخل تابع اجرا بشه
حالا k=>k.Length یعنی ما یک متغیر دلخواه به نام K داریم ( که در اینجا از نوع string هست چون select داره روی یک آرایه string عمل می کنه) و قراره تابع مورد نظر طول اون رشته را به دست بیاره
بنابراین این عبارت روی تک تک رشته های موجود در آرایه این تابع را اعمال می کنه
یک نکته دیگه اینه که حتما باید از ToArray استفاده کنیم وگرنه این پرس و جو اجرا نمی شه . همچنین یک کار دیگه که ToArray انجام میده نتایج را به صورت آرایه در میاره
سلام . مجدد به دوستان. تشکر بابت جواب ها
من قبلا فایل ذخیره میکردم که با هاش مشکلی ندارم.
ولی الان میخوام یک گذینه اضافه کنم بنام Add که هر وقت اونو بزنی به فایل text ذخیره شدت نوشته های جدید اضافه بشود و قبلیا بمونه!
چطور این کارو انجام بدم؟
System.IO.File.AppendAllText ("myfile.txt", richTextBox1.Text, System.Text.Encoding.Unicode );
من باFile.AppendAllTextنوشتم . مشکلم حل شد.
تشکر
هر کاری میکنم نمیتونم تعداد حروف هر کلمه به int تبدیل کنم!