الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال فى التعامل مع المتغيرات النصيه

مغلق
بدأه أحمد عز في 13 يونيو 2004 · 6 رد · 636 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

كلنا يعلم أنه عند الإضافه على متغير نصى ما فإننا سنكتب

StrVar = StrVar + "New Value"

لاحظت أن هذه التعليمه تأخذ الكثير من وقت المعالج و تأخذ من الذاكره الكثير (تضاعف مساحة المتغير النصى مرتين) .

هل هناك حل آخر غير ذلك الحل بحيث يذيد على المتغير مباشرا

مثل

StrVal += "New Value"

يعنى شىء شبيه بهذا

؟؟

؟؟

#2

السلام عليكم

الطريقة الاولي هي الطريقة المباشرة للزيادة علي المتغير ولا يعتمد فيجوال بيسك غيرها من طرق .

هذا من سوء حظ مبرمجين فيجوال بيسك. علي ما اعتقد

والله اعلم

تحياتي لك

الإنسان الذي يقول بأنه لا يمكن عمل شيء يجب ألا يعيق مطلقاً الإنسان الذي يقوم بعمل ذلك الشيء.

إن تخطئ فأنت إنسان ... أما أن تلوم جهازك الكمبيوتر على خطأك فهذا أكثر إنسانية.

#3

أشكرك على ردك أخى prof_1982 ،

أعتقد أن هناك طريقه تعتمد على معرفة مكان المتغير فى الذاكره والتعامل معها مباشرا أو عن طريق المصفوفات ،

أنا أفكر فى طريقه مختلفه الأن و منتظر رد باقى الأخوه .

#4

اخي احمد عز لقد سمعت بهذا الشيء في ال Visual Basic ولقد نصحني بعض الخبراء في هذه اللغة عندما كنت مبتدئا بتعويد نفسي على استعمال & operator

StrValue = StrValue & "Hi"

لانها اسرع وافضل للمعالج

والسلام عليكم

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#5

لا أتكلم عن هذا يا أخى راكان ، أنا بالطبع أعرف & و كنت أقصد بها + ،

أتسائل هنا على أن هذه التعليمه تفسح مكان فى الذاكره مضاعف لمساحة ال StrVal و من ثم تذد عليه ال hi وبعد ذلك تنسخ الكل إلى المكان الأصلى .

وهذه عمليه كما تراها يمكن تجاهلها لسرعة المعالج و لكن ستلاحظها ولن تستطيع تجاهلها ابدا عند التعامل مع المتغيرات النصيه فى دوره مثلا .

تخيل معى نص طوله 500 كيلوبايت و أردت أن أذد عليه قيمه نصيه معينه فى دواره loop بقيمه 1000 ، ستجد أنها تأخذ وقت بالفعل من المعالج وتستهلك من مصادر الجهاز إهدارا لا يمكن تجاهله كما ذكرت ،

الحل الوحيد هو عمل عملية append على المتغير النصى بدون ذكره ثانيه مثل المتغيرات فى السى و لكن كيف هذا ؟؟

فكرت فى أن أضع النص الأول فى مصفوفه ومن ثم أستطيع وضع النص الجديد فى المكان التالى و فى النهايه أجمع المصفوفه كلها (بعد إنتهاء الدواره) ، فكره جيده و ستعمل بكل كفاءه ولكن .... تخيل أنك تريد مثلا البحث عن نص ما داخل الدواره نفسها قبل إضافته ، فماذا ستفعل حينها ؟؟ ستضطر للبحث داخل جميع عناصر المصفوفه و هكذا رجعنا لإستهلاك موارد النظام ثانيا .

ما رأى باقى خبراء اللغه ؟؟

#6

فهمت الان ما تعنيه ولكني لم اسمع باي طريقة لحل هذه المشكلة و استطيع ان اقول اننا يجب ان نعيش مه المشكلة ونعتبرها من محدوديات اللغة

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#7

شكرا لتفاعلك أخى راكان :)

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…