تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] استفسار :- بخصوص ارسال Beep
#11
(29-07-18, 03:09 PM)alsouf كتب : المثال يعمل بكل نجاح
تاكد من الصوت في جهازك

PHP كود :
Public Class Form1
    Private Sub BtnRead_Click
(sender As System.ObjectAs System.EventArgsHandles BtnRead.Click
        Dim s 
As String
        s 
CStr(TextBox1.Text).ToLower
        For Each c 
As Char In s.ToCharArray
            cmorse
(c)
 
       Next
    End Sub
    Function cmorse
(As Char) As String
        Dim fr 
As Integer 1800 REM الموجة الصوتية
        Dim sd 
As Integer 240 REM الاشارة القصيرة
        Dim ld 
As Integer sd 3  REM الاشارة الطويلة
        Dim ret 
As String String.Empty
 
       Dim codes(,) As String = {
 
           {" "" "}, {"a"".-"}, {"b""-..."}, {"c""-.-."}, {"d""-.."},
 
           {"e""."}, {"f""..-."}, {"g""--."}, {"h""...."}, {"i"".."},
 
           {"j"".---"}, {"k""-.-"}, {"l"".-.."}, {"m""--"}, {"n""-."},
 
           {"o""---"}, {"p"".--."}, {"q""--.-"}, {"r"".-."}, {"s""..."},
 
           {"t""-"}, {"u""..-"}, {"v""...-"}, {"w"".--"}, {"x""-..-"},
 
           {"y""-.--"}, {"z""--.."}, {"1"".----"}, {"2""..---"},
 
           {"3""...--"}, {"4""....-"}, {"5""....."}, {"6""-...."},
 
           {"7""--..."}, {"8""---.."}, {"9""----."}, {"0""-----"},
 
           {"."".-.-.-"}, {"?""..--.."}, {",""--..--"}, {"'"".----."},
 
           {"."".-.-.-"}, {",""--..--"}, {"?""..--.."}, {"/""-..-."},
 
           {"=""-...-"}, {"+"".-.-."}, {"*""...-."}}
 
       For i As Integer 0 To codes.GetUpperBound(0)
 
           If codes(i0) = c Then ret codes(i1) : Exit For
 
       Next
        If ret 
" " Then
            Threading
.Thread.Sleep(ld 7)
 
           Return ret
        End 
If
 
       For i 0 To ret.Length 1
            If ret
(i) = "." Then
                Console
.Beep(frsd)
 
           Else
                Console
.Beep(frld)
 
           End If
 
           If i ret.Length 1 Then
                Threading
.Thread.Sleep(sd)
 
           End If
 
       Next
        Threading
.Thread.Sleep(ld)
 
       Return ret
    End 
Function
End Class 

نعم عزيزي الصوت يعمل 

انا اضفت عليه خيار السرعه لان في العمل يعتمد على السرعه في الارسال

كود :
Public Class Form1
   Private Sub BtnRead_Click(sender As System.Object, e As System.EventArgs) Handles BtnRead.Click
       Dim s As String
       s = CStr(TextBox1.Text).ToLower
       For Each c As Char In s.ToCharArray
           cmorse(c)
       Next
   End Sub
   Function cmorse(c As Char) As String
       Dim fr As Integer = 700 REM الموجة الصوتية
       Dim sd As Integer = 240 REM الاشارة القصيرة
       Dim ld As Integer = sd * 3  REM الاشارة الطويلة
       Dim ret As String = String.Empty

       sd = 60000 / (NumericUpDown1.Value * 40)
       ld = sd * 3

       Dim codes(,) As String = {
           {" ", " "}, {"a", ".-"}, {"b", "-..."}, {"c", "-.-."}, {"d", "-.."},
           {"e", "."}, {"f", "..-."}, {"g", "--."}, {"h", "...."}, {"i", ".."},
           {"j", ".---"}, {"k", "-.-"}, {"l", ".-.."}, {"m", "--"}, {"n", "-."},
           {"o", "---"}, {"p", ".--."}, {"q", "--.-"}, {"r", ".-."}, {"s", "..."},
           {"t", "-"}, {"u", "..-"}, {"v", "...-"}, {"w", ".--"}, {"x", "-..-"},
           {"y", "-.--"}, {"z", "--.."}, {"1", ".----"}, {"2", "..---"},
           {"3", "...--"}, {"4", "....-"}, {"5", "....."}, {"6", "-...."},
           {"7", "--..."}, {"8", "---.."}, {"9", "----."}, {"0", "-----"},
           {".", ".-.-.-"}, {"?", "..--.."}, {",", "--..--"}, {"'", ".----."},
           {".", ".-.-.-"}, {",", "--..--"}, {"?", "..--.."}, {"/", "-..-."},
           {"=", "-...-"}, {"+", ".-.-."}, {"*", "...-."}}
       For i As Integer = 0 To codes.GetUpperBound(0)
           If codes(i, 0) = c Then ret = codes(i, 1) : Exit For
       Next
       If ret = " " Then
           Threading.Thread.Sleep(ld * 7)
           Return ret
       End If
       For i = 0 To ret.Length - 1
           If ret(i) = "." Then
               Console.Beep(fr, sd)
           Else
               Console.Beep(fr, ld)
           End If
           If i < ret.Length - 1 Then
               Threading.Thread.Sleep(sd)
           End If
       Next
       Threading.Thread.Sleep(ld)
       Return ret
   End Function
End Class


       sd = 60000 / (NumericUpDown1.Value * 40)
       ld = sd * 3

       

لو تلاحظ مثلا اذا كانت سرعه الارسال 18 او 20  يكون الصوت غير واضح ومتقطع

لاحظ الصوت العادي بسرعه 40

الصوت


وهنا صوت البرنامج بنفس السرعه

الصوت


بارك الله فيكم على مجهودكم وربي يبارك في وقتكم
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
استفسار :- بخصوص ارسال Beep - بواسطة dubai.eig - 26-07-18, 01:10 PM
RE: استفسار :- بخصوص ارسال Beep - بواسطة Done - 26-07-18, 07:10 PM
RE: استفسار :- بخصوص ارسال Beep - بواسطة elgokr - 27-07-18, 04:28 AM
RE: استفسار :- بخصوص ارسال Beep - بواسطة alsouf - 28-07-18, 08:33 PM
RE: استفسار :- بخصوص ارسال Beep - بواسطة alsouf - 29-07-18, 03:09 PM
RE: استفسار :- بخصوص ارسال Beep - بواسطة dubai.eig - 29-07-18, 06:37 PM
RE: استفسار :- بخصوص ارسال Beep - بواسطة alsouf - 31-07-18, 07:51 PM
RE: استفسار :- بخصوص ارسال Beep - بواسطة elgokr - 01-08-18, 01:34 AM


التنقل السريع :


يقوم بقرائة الموضوع: