29-07-18, 06:37 PM
(29-07-18, 03:09 PM)alsouf كتب : [ -> ]المثال يعمل بكل نجاح
تاكد من الصوت في جهازك
PHP كود :
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 = 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(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
نعم عزيزي الصوت يعمل
انا اضفت عليه خيار السرعه لان في العمل يعتمد على السرعه في الارسال
كود :
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 Classsd = 60000 / (NumericUpDown1.Value * 40)
ld = sd * 3
لو تلاحظ مثلا اذا كانت سرعه الارسال 18 او 20 يكون الصوت غير واضح ومتقطع
لاحظ الصوت العادي بسرعه 40
الصوت
وهنا صوت البرنامج بنفس السرعه
الصوت
بارك الله فيكم على مجهودكم وربي يبارك في وقتكم
