PDA

View Full Version : سوال: string.format چيست ؟



seyyedalith
سه شنبه 19 شهریور 1387, 14:09 عصر
سلام
مي خواستم درباره string.format به صورت پايه‌اي توضيح بدين.
نكته:من تو كتاب خوندم و نفهميدم(پس شما بايد خيلي اصولي توضيح بدين)!!!!!:لبخند:

jaza_sa
سه شنبه 19 شهریور 1387, 14:47 عصر
میشه بگید کجاش رو نفهمیدید ،
من یک مثال شاید ابهامتون برطرف شد :


string result, str;

str = "This is a {0}";
result = string.Format(str, "Book"); // result: This is a Book
result = string.Format(str, "Pen"); // result: This is a Pen

str = "Hello {0}, Are you {1}?";
result = string.Format(str, "John", "student"); // result: Hello John, Are you student?
result = string.Format(str, "man", "his father"); // result: Hello man, Are you his father?همونطور که میبینید بجای {0} , {1} , ... به ترتیب ، عبارت مورد نظر جایگزین میشه
فایده : خواناتر شدن کد ، راحت بودن برنامه نویس + گیج نشدن وی

seyyedalith
سه شنبه 19 شهریور 1387, 16:03 عصر
دوستان بدتر شد كه
تو همين كتاب آقاي هاشميان متن زير را گفته بود:
"اين تابع قوي،به شما اجازه ميدهد متن و يا اعداد خود را قالب بندي كنيد.تنها نكته مهمي كه اين تابع دارد ، پارامتر اول آن است كه مشخص مي كند خروجي تابع بايد در چه قالبي باشد.
messagebox.show(string.format("{0:n3}",dblnumber));h
براي فراخواني متد string.format بايد دو پارامتر را به آن بفرستيد.پارامتر اول "{0:n3}" قالب رشته‌اي است كه شما مي خواهيد از متد دريافت كنيد.پارامتر دوم ، مقداري است كه مي خواهيد قالب بندي كنيد."
حالا من مشكلم تو پارامتر اوله كه حالت هاي مختلفش رو بگيد و آيا براي رشته هم كار مي كنه و يا فقط براي اعداده؟

jaza_sa
چهارشنبه 20 شهریور 1387, 12:36 عصر
از این عبارت برای فرمت بندی اعداد هم استفاده میشه
قالب کلی به اینصورته : Axx
که A تعین کننده فرمت هست و xx تعین کننده دقت هست
همچنین بجای A مقادیر استاندارد جایگیزن میشه ، مقادیری که از پیش تعین شده اند
به این مثال دقت کنید :

string result;

result = string.Format("{0:C}", 2.5); // result: $2.50
result = string.Format("{0:C} - {1:D5}", 2.5, 25); // result: $2.50 - 00025

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

منبع : http://msdn.microsoft.com/en-us/library/s8s7t687(VS.80).aspx

seyyedalith
چهارشنبه 20 شهریور 1387, 14:19 عصر
دوستان اول مشكل من فقط تو پارامتر اوله .
يعني هر چيزي كه تو اين مي نويسن "{}"
حالا دو تا سوال:
1- اون عدد اولي براي چيه؟
2- بخش دومش براي چيه و مدل هاي مختلف بخش 2 رو بگيد
3- آيا براي رشته هم كاربرد داره يا فقط براي عدده؟
4- لطفا بصورت مشخص جواب هر سوال رو بديد

jaza_sa
چهارشنبه 20 شهریور 1387, 14:59 عصر
دوستان اول مشكل من فقط تو پارامتر اوله .
يعني هر چيزي كه تو اين مي نويسن "{}"
حالا دو تا سوال:
1- اون عدد اولي براي چيه؟
2- بخش دومش براي چيه و مدل هاي مختلف بخش 2 رو بگيد
3- آيا براي رشته هم كاربرد داره يا فقط براي عدده؟
4- لطفا بصورت مشخص جواب هر سوال رو بديد

1 - عدد اول موقعیت پارامترهای بعدی رو مشخص میکنه
بطور مثال در کد زیر بجای {0} کلمه Cat و بجای {1} کلمه Dog جایگزین میشه
و نتیجه اون اینه This is Cat or Dog

string.Format("This is {0} or {1}", "Cat", "Dog")حالا اگر جای این اعداد عوض بشه چه اتفاقی میوفته ؟

string.Format("This is {1} or {0}", "Cat", "Dog")نتیجه اون این میشه : This is Dog or Cat
نکته : تعداد پارامترها (در این مثال به ترتیب Cat و Dog) باید به تعداد اعداد باشه

2 - در مورد بخش دوم به پست قبلی من مراجعه کنید ، در اون لینک میتونید اطلاعات کامل مربوط به بخش دوم این پارامترها رو ببینید (همراه با مثال)

3 - برای کاربرد آن در رشته به پست اول من مراجعه کنید

4 - آیا مشخص شد یا خیر ؟ در صورت متوجه نشدن موضوع به اینترنت مراجعه کنید (جستجو کنید) :چشمک:

موفق باشید

jaza_sa
چهارشنبه 20 شهریور 1387, 15:12 عصر
http://search.yahoo.com/search;_ylt=A0oGkwUHqsdIGTYAEZhXNyoA?p=string.form at+formatting+c%23&y=Search&fr=moz2&ei=UTF-8

http://john-sheehan.com/blog/wp-content/uploads/msnet-formatting-strings.pdf
http://blog.stevex.net/index.php/string-formatting-in-csharp
http://idunno.org/archive/2004/14/01/122.aspx

seyyedalith
چهارشنبه 20 شهریور 1387, 18:25 عصر
سلام
بگذاريد از اول شروع كنيم
اول به اين سوال جواب بدين:
1- string.format براي چي به وجود اومد و به چه دردي مي خوره و براي چي اسمش اينه؟!؟!
فقط جواب اين سوال را كامل بدين

linux
پنج شنبه 21 شهریور 1387, 21:21 عصر
لطفا هر چه سريعتر جواب بدين

! جای تعجب هست جواب سوال شما را چند بار دادند باز هم اصرار داری جواب بدن، فکر می کنم با دقت پاسخ ها را نخواندی

1- کلاس string یک کلاس هست برای کار کردن با رشته ها که دارای متدها(توابع) مختلف هست و تابع format هم یکی از توابع آن هست، چرا اسمش فرمت هست برای اینکه به رشته ها شکل و فرمت می دهد.
2- کاربردش چطور هستی : در MSDN کامل توضیح داده شده است ولی خلاصه آن این طور هست.

string myTxt;
string myName = "Ali";
int myAge = 25;
myTxt = string.Format("My name is {0} and I am {1} years old ", myName, myAge);
MessageBox.Show(myTxt);

قسمت اول این تابع ، مشخص کننده شکل خروجی هست، مقادیر که در داخل {} هستند با مقادیر متناظر جایگزین خواهند شد.
در اینجا {0} با مقدار myName و {1} با مقدار myAge جایگزین خواهد شد.
خروجی به شکل زیر خواهد شد
My name is Ali and I am 25 years old
ساده ترین شکل دستور این هست .
حالا برای فرمت کردن اعداد، رشته ها ، و تاریخ ها حالتهای مختلفی پیش می آید.
که در MSDN کامل شرح داده شده است.
شما با کجای این مطلب مشکل دارید؟

Mahdi.Kiani
جمعه 22 شهریور 1387, 10:20 صبح
لطفا هر چه سريعتر جواب بدين

سلام برادر
لطفا کمتر off بزنید.
با تشکر
http://msdn.microsoft.com/en-us/library/b1csw23d.aspx

seyyedalith
جمعه 22 شهریور 1387, 13:16 عصر
شما گفتيد براي رشته پس چرا براي اعداد هم كار مي كنه؟