PDA

View Full Version : مقاله: تولید خودکار صفحات وب با c#،قسمت اول(c# to html)



محمدامین شریفی
جمعه 19 مهر 1387, 23:47 عصر
امیدوارم این کد ایده های جدیدی به شما بدهد.
خود کد آسان است ولی میشه ازش ایده گرفت.
در سری های بعد این مقاله asp.net هم نوشته میشود
با نظراتتان یاری کنید
24287
-------------------
این هم قسمت اصلی آموزش هست

#region tanha code barname!

private bool GenerateCode()
{
header = body = filename = null;
header = textBox3.Text.Trim();
body = textBox2.Text.Trim();
filename = textBox1.Text.Trim()+ ".html";

FileInfo f = new FileInfo(filename);
// File f = new File(filename);
if (f.Exists)
{
s = MessageBox.Show("This fils already exists. Do you want to rewrite it ???", "DOBARE NEVISI KON", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (String.Format("{0}", s) == "Yes")
{
f.Delete();
}
else
{
s = MessageBox.Show("Enter a different file name.", "Worning");
textBox1.Focus();
}

}

FileStream outputfile = null;
try
{
outputfile = new FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write);
writer = new StreamWriter(outputfile);
writer.BaseStream.Seek(0, SeekOrigin.End);
DoWrite("<HTML>");
DoWrite("<HEAD>");
DoWrite("<meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>");
DoWrite("<TITLE>");
DoWrite(header);

DoWrite("</TITLE>");
DoWrite("</HEAD>");
DoWrite("<BODY BGCOLOR='Tan'>");
DoWrite("<CENTER>");
DoWrite("<BR><BR><H2> " + body + "</H2>");
DoWrite("<BR><H4><A HREF='http://barnamenevis.org/forum/helpcenter.php?do=ticket&tid=163'>!اعتراض</A></H4>");
DoWrite("</CENTER>");
DoWrite("</BODY>");
DoWrite("</HTML>");
writer.Close();
}
catch (Exception ex)
{
MessageBox.Show("Exception GenerateCode = " + ex);

outputfile = null;
writer = null;
return false;
}
return true;
}

private void DoWrite(String line)
{ writer.WriteLine(line);
writer.Flush();

}

کار region# اینست که کد را تمیز و مرتب در یکجا جمع کند.
در این کد
textBox2.Text.Trim();کار trim اینس که فاصله های قبل و بعد رشته را نادیده بگیرد.

FileInfo f = new FileInfo(filename);
وضعیت فایل را مشخص میکند.ما میخواهیم بدانیم آیا این فایل موجود است یا نه!!!.
اول باید نام دامنه
using System.IO;را در بالا بنویسیم تا بتوانیم از کلاسهایش
outputfile = new FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write);
استفاده کنیم.
و آخرین کلاس ما هم این میباشد
writer = new StreamWriter(outputfile);.
اسمش تابلو هست که میتواند درون یک فایل را بنویسد.
و متد این کلاس هم
writer.WriteLine(line);این میباشد.
------------
چقدر ساده و البته بامزه بود

محمدامین شریفی
چهارشنبه 24 مهر 1387, 17:34 عصر
اینم نسخه کامش.
بچه ها هر جوری خواستید میتونید از این پروژه استفاده کنید.
اگر پرسشی یا مشکلی هم بود در خدمتم.
ادامه این پروژه هم میشود با silverlight ادامه دهیم.
24476
یعنی با کدهای asp.net c sharp فایل html را تولید کنیم سپس متن دلخواه را به وسیله txt برای سیلورلایت آماده کنیم.اگر علاقه مندید اعلام کنید

man4toman
چهارشنبه 24 مهر 1387, 21:36 عصر
با تشکر از شما
امکانش هست برای هر سری یک آموزش چند سطری هم قرار بدید؟؟

محمدامین شریفی
چهارشنبه 24 مهر 1387, 21:54 عصر
با تشکر از شما
امکانش هست برای هر سری یک آموزش چند سطری هم قرار بدید؟؟
بر روی چشم.بچه ها میخوام یکمی هم برم سر AJAX.
ولی حرفه ای سر یک موضوع نمیریم.کدهای آموزشیش هم میذارم.
ولی اگر زمان بین پست ها زیاد شد به معنی پشیمان شدنم نیست.
برنامه هایی که در این تاپیک میاد رو باید همه گسترشش بدند(مانند همین برنامه پایین).چون ما داریم کاربردی کار میکنیم،همه اجراش کنند و نتیجش هم را بگن.این یک کار گروهی است نه یک سری آموزشی
---------
با سپاس

محمدامین شریفی
چهارشنبه 24 مهر 1387, 22:26 عصر
خیلی وقت ها واسم پیش اومده بود که میخواستم بین کدهای سمت میزبان و کدهای سمت کاربر یک رابطه پیدا کنم.در آخر مجبور میشدم یک فایل txt را واسط قرار دهم و با streamwriter و streamreader آنرا ویرایش کنم!.
-------------
در پروژه پایین شما در کدهای html متن خود را مینویسید و در کنترل asp.net نتیجه آنرا میبینید.
------------
طریقه همکاری شما:شما باید با جاوا اسکریپت صحت داده ها را ارزیابی کنید data validation و همچنین باید با جاوا اسکریپت از وارد کردن متن هم مطمئن شوید،من منتظر میشوم تا گروه این کار را انجام دهند سپس وارد silverlight میشوم.بعد از silverlight هم هر 3 تا پروژه را با هم ادغام میکنیم.
-----------

<body>
<form id="form1" runat="server">
<div>
First Number &nbsp; &nbsp; &nbsp;
<input name="txtFirst" type="text" />

<br />Second Number&nbsp;
<input name="txtSecond" type="text" /><br />
<br />
<input name="optOperation" value="Add"
type="radio" checked="CHECKED"/>Add
<br />
<input name="optOperation" value="Subtract"
type="radio" />Subtract
<br />
<br />
<input name="btnSubmit" type="submit" value="submit" />
<br />
<br />
The Result is:
<input name="txtResult" type="text" /><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

</div>
</form>
</body>

ما آمده ایم از کنترل های استاندارد HTML استفاده کرده ایم.
تنها نکته ای که نباید فراموش نکنیم اینست که نام های radiobutton های ما یکی باید باشد.
------------------------------------------


protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
string sFirst = Request.Form["txtFirst"];
string sSecond = Request.Form["txtSecond"];
string sOperation = Request.Form["optOperation"];
int nF = 0;
int nS = 0;
int.TryParse(sFirst, out nF);
int.TryParse(sSecond, out nS);
int nR = 0; if (sOperation == "Add")
nR = nF + nS;
else
nR = nF - nS;

TextBox1.Text = nR.ToString();

}
}

چون ما در خصوصیات فرم runat=server نوشته ایم پس اگر حتی دکمه HTML ما هم فشرده شود یک postback ایجاد میشود.
همانطور که میدانید فرم (هر فرمی که در آخر به HTML تبدیل میشود) یک متد بسیار معروف به نام method="post" یا metode="get" به لطف asp.net این خصوصیت به صورت خودکار هنگام کامپایل برنامه ایجاد میشود.
پس هنگامی که فرم دارد چیزی را به میزبان میفرستد ما میتوانیم آنرا با متد
Request.Form["txtFirst"]; به عنوان نمونه بگیریم(جلل خالق!).
حالا که این داده را با کد sharp c گرفتیم پس میتوانیم آنرا هم ویرایش کنیم.
+++++++++++
حالا نوبت بقیه گروه هست که این متن و برنامه را ویرایش کنند24486