PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : تکنیکهای برنامه نویسی



behnam6500
09-02-2010, 16:47
سلام

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

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

مثلا ممکنه یه برنامه کامپیوتری برای مدارمون درست کنیم که اون برنامه نیاز داشت که به یه وب سرویس تو اینترنت وصل بشه و اطلاعاتی رو بگیره و بده به میکرو! خوب چه کنیم؟؟؟ یا هر مثال دیگری...

در این تاپیک ما به طرح و بررسی و آموزش این مسائل می پردازیم...

عمده توجه من روی زبانهای VB.Net و #C هست. چرا که از نظر قدرت جایگاه بالایی دارند.
برای شروع... در اینجا یه تابع آوردم که تاریخ شمسی رو خیلی راحت بدست میاره...
چون راحته توضیح زیادی راجع بهش نمیدم....

به زبان VB.NET




Private Function GetPersianDate() As DateTime
Dim PDate As New System.Globalization.PersianCalendar
Return Convert.ToDateTime(PDate.GetYear(Today) & "/" & PDate.GetMonth(Today) & "/" & PDate.GetDayOfMonth(Today))
End Function



به زبان #C




private DateTime GetPersianDate()
{
System.Globalization.PersianCalendar PDate = new System.Globalization.PersianCalendar();
return Convert.ToDateTime(PDate.GetYear(DateTime.Now) + "/" + PDate.GetMonth(DateTime.Now) + "/" + PDate.GetDayOfMonth(DateTime.Now));
}

behnam6500
10-02-2010, 00:57
این تابع هم روش ارسال ایمیل از طریق سرور GMAIL رو نشون میده...

وی بی دات نت:



Public Function SendMail(ByVal SendTo As Collection, ByVal Subject As String, ByVal Body As String, ByVal IsBodyHTML As Boolean) As Boolean
Try

Dim client As System.Net.Mail.SmtpClient
If (ServerMail.ServerPort <> 0) Then
client = New SmtpClient("smtp.gmail.com",587)
client.EnableSsl = True
client.Timeout = 100000
Else
client = New SmtpClient("smtp.gmail.com")
End If
client.UseDefaultCredentials = False
client.Credentials = New NetworkCredential("GmailID", "GMailPass")

Dim message As MailMessage
Dim I As Integer

For I = 1 To SendTo.Count
message = New MailMessage(ServerMail.MailFrom, SendTo(I), Subject, Body)
message.IsBodyHtml = IsBodyHTML
client.Send(message)
Next

SendMail = True

Catch ex As Exception
SendMail = False
End Try
End Function



سی شارپ:



public bool SendMail(Collection SendTo, string Subject, string Body, bool IsBodyHTML)
{
try {

System.Net.Mail.SmtpClient client;
if ((ServerMail.ServerPort != 0)) {
client = new SmtpClient("smtp.gmail.com", 587);
client.EnableSsl = true;
client.Timeout = 100000;
}
else {
client = new SmtpClient("smtp.gmail.com");
}
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("GmailID", "GMailPass");

MailMessage message;
int I;

for (I = 1; I <= SendTo.Count; I++) {
message = new MailMessage(ServerMail.MailFrom, SendTo(I), Subject, Body);
message.IsBodyHtml = IsBodyHTML;
client.Send(message);
}

SendMail = true;
}

catch (Exception ex) {
SendMail = false;
}
}

m-arm
10-06-2010, 21:12
این تابع هم روش ارسال ایمیل از طریق سرور gmail رو نشون میده...

وی بی دات نت:



public function sendmail(byval sendto as collection, byval subject as string, byval body as string, byval isbodyhtml as boolean) as boolean
try

dim client as system.net.mail.smtpclient
if (servermail.serverport <> 0) then
client = new smtpclient("smtp.gmail.com",587)
client.enablessl = true
client.timeout = 100000
else
client = new smtpclient("smtp.gmail.com")
end if
client.usedefaultcredentials = false
client.credentials = new networkcredential("gmailid", "gmailpass")

dim message as mailmessage
dim i as integer

for i = 1 to sendto.count
message = new mailmessage(servermail.mailfrom, sendto(i), subject, body)
message.isbodyhtml = isbodyhtml
client.send(message)
next

sendmail = true

catch ex as exception
sendmail = false
end try
end function



سی شارپ:



public bool sendmail(collection sendto, string subject, string body, bool isbodyhtml)
{
try {

system.net.mail.smtpclient client;
if ((servermail.serverport != 0)) {
client = new smtpclient("smtp.gmail.com", 587);
client.enablessl = true;
client.timeout = 100000;
}
else {
client = new smtpclient("smtp.gmail.com");
}
client.usedefaultcredentials = false;
client.credentials = new networkcredential("gmailid", "gmailpass");

mailmessage message;
int i;

for (i = 1; i <= sendto.count; i++) {
message = new mailmessage(servermail.mailfrom, sendto(i), subject, body);
message.isbodyhtml = isbodyhtml;
client.send(message);
}

sendmail = true;
}

catch (exception ex) {
sendmail = false;
}
}



دوست عزیز چرا ادامه نمیدی؟یک سوال هم داشتم.برنامه های داده شده رو میشه به زبن سی پلاس پلاس نوشت؟ میشه لطفا مطالبی هم در باره برنامهنویسی سوکت هم مطالبی بزارید.ممنون

behnam6500
27-06-2010, 01:11
دوست عزیز چرا ادامه نمیدی؟یک سوال هم داشتم.برنامه های داده شده رو میشه به زبن سی پلاس پلاس نوشت؟ میشه لطفا مطالبی هم در باره برنامهنویسی سوکت هم مطالبی بزارید.ممنون

سلام

متاسفانه من مدت بسیار زیادی در سایت نبودم.

امیدوارم که از این به بعد بتونم در خدمت شما باشم.

c++ واسه دات نت منظورته؟ اگه اینو میگی، آره.

در مورد برنامه نویسی سوکت (برنامه نویسی تحت شبکه اگه منطورته) چشم به زودی مطلبی میزارم.

safavism
13-07-2011, 11:05
باسلام خدمت دوستان محترم..چه چوری میشه یه کلمه در یه متن پیام که میکرو از یه مازول دریافت کرده جدا کرد..پیام حاوی جزییاتی غیر از متن پیام است مثلا تاریخ و شماره و... حالا اگه بخوام اصل پیام رو از این جزییات جدا کنم باید چکار کنم !!!! برنامه بزبان بیسیک نوشته شده

jn_1983
13-07-2011, 18:18
باسلام خدمت دوستان محترم..چه چوری میشه یه کلمه در یه متن پیام که میکرو از یه مازول دریافت کرده جدا کرد..پیام حاوی جزییاتی غیر از متن پیام است مثلا تاریخ و شماره و... حالا اگه بخوام اصل پیام رو از این جزییات جدا کنم باید چکار کنم !!!! برنامه بزبان بیسیک نوشته شده

شما كدي رو كه بزبان VB نوشتيد رو بذار اينجا تا بشه بهت كمك كرد. كار ساده و راحتيه جدا كردن كاراكتر در بين جملات!!
:wink:

safavism
13-07-2011, 20:25
با سلام خدمت دوست گرامی فایل txt رو گذاشتم

jn_1983
13-07-2011, 20:56
با سلام خدمت دوست گرامی فایل txt رو گذاشتم

ببينيد دوست عزيز تو ارتباط سريال يكسري استاندارد وجود داره و تو لين استاندارد يكسري از كاراكترها معناي خاصي دارند و تو عمليات برقراري ارتباط نقش بسزائي دارند.

مثلا عدد 13 به اختصار Carriage Return‌ يا مخففش CR
عدد 10 به به معناي Line Feed كه مخففش ميشه LF

در اصل ارسال اين اعداد يك نوع Initialize كردن براي برقراري ارتباط يا ارسال ديتا ميباشد.


Dim Sms As String * 250 : Sms = ""
اين كد تعريف كردن يك متغير از نوع رشته هست و بعد از تعريفش آومدن به اون مقدار دادن.مقدار اون هم كاراكتر نول هست.يعني هيچي تو اين رشته قرار نداره!


If Sms <> "" Then Exit Do
اين كد هم يعني اينكه اگر متغير رشته SMS‌ مقداري داشت از حلقه خارج شود (بعبارت عامينه اگر SMS مخالف تهي(نول) بود از حلقه خارج شو)

كل برنامه مياد از كاراكترهاي CR‌و LF‌ عبور ميكنه و وقتي با كاراكترهاي اصلي (مثل كاراكترهاي پيامك) روبرو ميشه مياد در رشته SMS‌ قرار ميده و در نهايت در LCD نمايش ميده!!

safavism
14-07-2011, 02:51
متشكرم دوست عزيز..خب چرا اين برنامه وقتي رو ميكرو ميريزم و اجرا ميشه صفحه ي ال سي دي پراز جزييات غير از متن پيام ميشه حتي يك عبارت از پيام نمايش داده نميشه