المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : 3 استفسارات مهمة جدا ارجو المساعدة (( المتغيرات - Drive - القيم النصية ))


القنـاص المصرى
02-04-2013, 03:33 PM
السلام عليكم ورحمة الله وبركاته
كيفكم يااخوانى اتمنى تكونو بالف صحة وعافية
انا عندى 3 استفسارات
الاول وهو بخصوص الـDrive
وانا ببحث فى الـUserGuid الخاص بالـAMS
وجدت هذا الكود
-- Get a list of the available drives.
drives = Drive.Enumerate();

-- Determine if an error occurred.
error = Application.GetLastError();

-- If an error occurred, display the error message.
-- If no error occurred, display the available drives in a dialog.
if (error ~= 0) then
Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);
else

-- Create a string consisting of all of the drive letters and display them.
all_drives = Table.Concat(drives, "\r\n");
Dialog.Message("Notice", "Below is a list of all of your current drives:\r\n"..all_drives);
end
ووظيفته هى عرد جميع البارتشنز فى رسالة Dialog.Message
مثل هذه
http://img145.imageshack.us/img145/2871/02042013030633.png
انا اريد يا اخوانى تعديل الكود بحيث بدل اظهارهه للدرايفرات فى رسالة ان يضع الدرايفرات بكومبو بوكس
على الترتيب مثل هذه الصورة
http://img571.imageshack.us/img571/6374/02042013030910.png

بالنسبة للاستفسار الثانى
انا اريد اعطاء الرمز (\) قيمة لمتغير
وقد يسأل بعض الاخوة لماذا والاجابة يا اخوانى
هى اننى اقوم بعمل لوحة مفاتيح بالـAMS
واحتاج الى وضع هذا الزر
http://img703.imageshack.us/img703/2802/02042013031357.png
والكود المفترض وضعه فى الحدث On Action لهذا الزر هو
text = Input.GetText("Input1")
Ntext = ""..text.."\"
Input.SetText("Input1", Ntext)
ولكن مشكلة هذا الكود مع هذا الرمز مع ان الكود عمل مع باقى الاحرف ولم يسبب اخطاء الا فى هذا الرمز
واليكم الصورة
http://img27.imageshack.us/img27/4108/02042013031952.png

الاستفسار الثالث
وهو انى اريد انى احذف اخر حرف اورقم فى كلمة
ساشرح لكم الامر بالاكواد
txt = Input.GetText("Input1");
فلو كان قيمة txt هى Ahmed

اريد امر يحذف اخر حرف وهو d
وجزاكم الله كل خير يا اخوانى
فانا ا

عبود عبود
02-04-2013, 04:31 PM
بالنسبة لــــ الأول :

--
-- Get a list of the available drives.
drives = Drive.Enumerate();
-- Determine if an error occurred.
error = Application.GetLastError();
-- If an error occurred, display the error message.
-- If no error occurred, display the available drives in a dialog.
if (error ~= 0) then
Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);
else
if drives~=nil then
for i, s in pairs(drives) do
ComboBox.AddItem("ComboBox1", s, s);
end
ComboBox.SetUpdate("ComboBox1", true);
end
end

بالنسبــة لـــ الثانى :

--
text = Input.GetText("Input1")
Ntext = ""..text.."\\";
Input.SetText("Input1", Ntext)

أو أن يكتب هذا السطر للمتغير Ntext هكذا :

Ntext = text.."\\";

أو أن يكتب هذا السطر للمتغير Ntext هكذا :

Ntext = text..'\\';

:abc_012: أو بالطريقة التى ذكرتها لك سابقا أيهما أسهل إستعملها فكلاهما صحيح ولكن الإختلاف فى الطريقة للتطبيق فقط .

بالنسبــة لــــ الثالث :

--
text = Input.GetText("Input1")
if text~="" then
result = String.Length(text);
Ntext = String.Left(text, result-1);
Input.SetText("Input1", Ntext)
end

القنـاص المصرى
02-04-2013, 09:22 PM
بالنسبة لــــ الأول :

--
-- Get a list of the available drives.
drives = Drive.Enumerate();
-- Determine if an error occurred.
error = Application.GetLastError();
-- If an error occurred, display the error message.
-- If no error occurred, display the available drives in a dialog.
if (error ~= 0) then
Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);
else
if drives~=nil then
for i, s in pairs(drives) do
ComboBox.AddItem("ComboBox1", s, s);
end
ComboBox.SetUpdate("ComboBox1", true);
end
end

بالنسبــة لـــ الثانى :

--
text = Input.GetText("Input1")
Ntext = ""..text.."\\";
Input.SetText("Input1", Ntext)

أو أن يكتب هذا السطر للمتغير Ntext هكذا :

Ntext = text.."\\";

أو أن يكتب هذا السطر للمتغير Ntext هكذا :

Ntext = text..'\\';

:abc_012: أو بالطريقة التى ذكرتها لك سابقا أيهما أسهل إستعملها فكلاهما صحيح ولكن الإختلاف فى الطريقة للتطبيق فقط .

بالنسبــة لــــ الثالث :

--
text = Input.GetText("Input1")
if text~="" then
result = String.Length(text);
Ntext = String.Left(text, result-1);
Input.SetText("Input1", Ntext)
end

ورب الكعبة انت اسطورة
ربنا يباركلك ياسيد الناااس
ويكرمك والديك

ولكن المشكلة الثانية لازالت موجودة
http://img17.imageshack.us/img17/202/02042013092926.png
:abc_114:

عبود عبود
02-04-2013, 11:08 PM
أمامك ساعتين من الآن لتضع لى كودك الذى يظهر فية المشكلة حتى أحدد أين الخطأ :abc_005:

سأكون فى الشغل غدا أمامك ساعتين من وقت هذه المشاركة :abc_139:

النصل القاطع
03-04-2013, 09:31 AM
أخى القناص
للمرة الثانية بمزيد من التوضيح
العلامات الخاصة هى العلامات التى تحجزها اللغة لنفسها مثل الشرطات المائلة و علامات التنصيص و النقطة و الفاصلة و هكذا
العلامة \ هى علامة خاصة جدا
فبالإضافة لكونها نفسها علامة خاصة فهى العلامة المسئولة عن تمرير باقى العلامات الخاصة بداخل النصوص
علاوة على تمرير نفسها إذا إستخدمناها هى بداخل نص

أنت تريد دمج متغير (لا يهمنا نوعه) مع ثابت نصى
Ntext = text.."\\";

هذه هى الطريقة
لاحظ \\
لم يتم هنا تكرار للعلامة
لكن سبقنا العلامة \ و هى علامة خاصة بعلامة تمرير العلامات الخاصة و هى ثابته دائما و هى \
أتمنى أن تكون الفكرة وصلتك هذه المرة