السلام عليكم
لدى مشكلة غريبة ولم اجد لها حلا
انا استقبل 40 بايت عن طريق المنفز التسلسلى
buffer[x] = (byte) sp.ReadByte();
واقوم بتحويل هزه البايتات الى اسكى كود بنجاح
gps = System.Text.Encoding.ASCII.GetString(buffer);
عندما اعرض المتغير gps
على ليبل تكون البيانات صحيحة ولايوجد اى خطا
الخطوة التاليه حى فرز هذه البيانات وتحميلها على مجموعة متغيرات
gps = "1234.1234,n,6666.444,e,123.1,22.4"
عن طريق الدالة سبليت
string[] gpsTokens = gps.Split(',');
اذا
gpsTokens[0
تساوى
1234.1234
وهذا صحيح وحتى هذه الخطوه البرنامج يعمل بصورة ممتازة
المشكلة هى عند محاولتى لتحويل القيمة الى متغير من النوع دبل تظهر رسالة خطا مفادها ان المسار ليس فى الفورمات الصحيحه
TLAT = double.Parse(gpsTokens[0]);
عندما اقوم بحزف الفاصلة العشرية من البيانات المرسلة وتصبح
gpsTokens[0
تساوى
12341234
يتم تحويلها بدون اى خطاء
يعنى المشكلة فى الفاصلة العشرية
هل انا اخترت الانكود غير المناسب ؟ ام ماهى اختراحاتكم اخوانى
انا استخدم فيجول استوديو 2008 الاصدار التاسع