]حول 30001
عرق 05 66002 ساضع
اسع قمع
نك نص قمع
ذا / متم تاه
من ملاحظة بسيطة نجد أنه صنع وسما باسم الهيكل "06660006" و صنع داخله وسوم بأسماء الخصائص و
في كل وسم وضع القيمة الموافقة له.
الجداول يتم تمثيلها بوسم أب هو الجدول و داخله وسوم أبناء من أجل كل خلية. يكون هناك وسم فيه النوع و
القيمة كمثال على ذلك قمت بتعريف جدول من نوع مختلط و هيأته بالقيم الت
الجدول « مهياً ب: قيمة صحيحة؛ قيمة
0 المتوفرة في الدوت نت. حصلت على النتيجة التالية:
يةه قيمة منطقية و قيمة نصية بعد تخزينه في ملف زور باستعمال ال
عار زرمة / عناص حم لآلاطة >
حعم ل7 برمة /4ه 11ع1ا عم لآلاطة >
هذه الأنواع يكون التحويل فيها آليا و لا داعي لتدخل المبرمج و هناك أنواع أخرى كأن يكون كائنا مولدا من
كلاس كل خصائصها من أنواع بسيطة أو من أنواع قابلة للتحويل الآلي أو لأنواع تم معالجة تحويلها يدويا
ج: هناك أنواع تستدعي تدخل المبرمج لحفظها مثل القيم من نوع 0103© و2004 و أخرى أكثر تعقيدا متل
أما النوع 60102 و النوع 004] فهما يشبهان أي كلاس أو هيكل عادي غير أن السبب لعدم تخزين قيمهما هو
وجود خاصية في ١0د و هي أنه لا يحفظ إلا قيم الخصائص التي تقبل القراءة و الكتابة. أما في الدوت نت فإن
خصائص 6010 و2004 هي للقراءة فقط. و للاحتيال على ذلك يجب إنشاء نوع جديد مشابه للنوع الذي نريد
تخزين قيمه 004] أو 02ان6 و ليكن اسمه ,016010 أو 001004 مثلا و نجعل خصائصه للقراءة و الكتابة
معا. و عندما نريد الحفظ ننقل القيم من ذلك النوع للنوع الجديد و نحفظ و سيتم تلقائيا و عند القراءة ستت
تلقائيا للنوع الجديد ثم نقوم بإنشاء كائن جديد من النوع القديم و نمرر له القيم التي قرأناها كباراميترات.
لا داعي لتصميم نوع جديد و لكن فقط نعرف متغيرا جديدا و نستعمل التحويل بين القيمة م6010 و القيمة
و أما للأنواع الأكثر تعقيدا كالصور و الملفات
باستعمال ما يسمى بال 506807 حيث
. فالحل الوحيد هو تحويل المحتوى إلى جدول با
يمكننا فتح الملف أو الصورة بواسطته بشكل جدول بايتات. إذن نستغل
هذه الخاصية فنأخذ ال
ات و التي قيمها محصورة بين 0 و 255 و نضعها في جدول من نوع 8/18 و هنا
يكون حفظ الجدول آليا. و في العملية العكسية نقراً القيم في جدول ثم نملا 506807 بقيم الجدول و نعيد بعدها
توليد الملف أو الصورة انطلاقا مما لدينا
هناك نوع أخير و هو المصفوفات و التي تختلف عن الجداول الخطية و عن جداول الجداول. و السبب في ذلك
أن علاقة الارتباط في ا«»ر لها اتجاه واحد فقط. لأشرح أكثر. فحين نقول "لكل شخص اسم" معناه أن الاسم
متعلق بالشخص و بالتالي سيكون هناك لكل شخص اسم أي أن الوسم 8006 سيكون ابنا للوسم 500معم و لا
فهناك متلا 7 و أو 800/5 و6015 و كل منهما متعلق بالآخر فنقول أن لكل سطر مجموعة أعمدة و نقول أن
لكل عمود مجموعة أسطر و بالتالي علاقة الأبوة و البنوة في اتجاه واحد غير محققة و بالتالي لا يمكن تمثيلها
جاصور
]حول 01/11 الجز
التدخل اليدوي هنا ممكن بحالتين. إما تحويل االمصفوفة من الشكل [م)م....2,ررء] ألى الشكل [عا»....0]/1]21م اي
من مصفوفة إلى جدول جداول حيث كل جدول عناصره هي جداول و كل عنصر من تلك العناصر قد يكون
أيضا جداول و النهاية تكون قيم قابلة للحفظ الآلي. بهذه الطريقة يكون الحفظ آليا.
أما لو أردنا التعامل مع الأمر يدويا فيمكن دلك بشكل بسيط و هي أن نضع كل قيم المصفوفة في جدول واحد
في باراميترات الوسوم أي أم هناك _قاعدة تحدد
للوسبوم, .هل هو اختيار
ج: هناك بعض القواعد البسيطة في اختيار مكان حفظ قيمة
فقيم الوسوم هي القيم المهمة و الأساسية أما
ج: لنفرض أنه لدينا مصفوفة مكونة من 5 اعمدة و 4 اسطر مهيئة بقيم عددية. الآن أريد تخزين هذه
المصفوفة في ملف 01ل لو قمنا بكتابة 20 قيمة مع بعض فهذا أمر عادي. لكن لو أرنا قراءة 20 قيمة
لمصفوفة من ملف |00 قدمه لناشخص ما فكيف سنعرف هل هي قيم جدول 20*1 أو 10*2 أو 5*4 أو
4*5 أو 2*10 أو 1*»20 ؟. كل هذه القيم تمثل أبعاد مصفوفات و لكن واحدة فقط هي الصحيحة و لهذا رغم
أن قيمة عدد الاسطر و الأعمدة ليست "مهمة" و لكنها صارت الآن على درجة من الأهمية بحيث لا يمكننا
تعريف مصفوفة إلا منهما أو على الأقل بواسطة احداهما. حيث يمكننا تقسيم العدد الكلي على إحداهما لتحصل
على القيمة الثانية. و منه فقيمة 5ا60 و 800/5 لن تكون قيما للوسم مثل قيم خلايا المصفوفة بل ستكون
باراميترات تستعمل في تعريف أبعاد المصفوفة.
]حول 611ل
بقي مشكل آخر بعد أن عرفنا ابعاد المصفوفة و هو هل تم التخزين سطرا بسطر أم عمودا بعمود؟ لأن القراءة
يلزمنا باراميتر ثالث يخبرنا عن طريقة القراءة و الكتابة.
يمكن اخذ مثال آخر من ,1171/11 مثلا فنحن نحدد عرض الجدول و ارتفاعه و حجم إطاره ولون خلفيته و لكن
الأسطر هي المهمة و بالتالي فالقيم السابقة هي (ديكور) تحفظ كباراميترات في وسم الجدول م181
بدا يم 8+
: حفظ الجداول و القيم ذات الأنواع المركبة يكون على مراحل. فأول مرحلة يجب إضافة وسم سيضم كل القيم و
الخصائص و بعدها نضيف وسوم بسيطة بها القيم البسيطة أو المركبة التي توجد في القيمة المركبة
عير ضيح ذلك ابثر
ج: سأوضح أولا بالنسبة لجدول من ١ خلية (بها قيم لأعداد صحيحة)
2. باستعمال حلقة م20 من اول خلية لآخر لية في الجدول سأفعل ما يلي
بهذه الطريقة يمكنني تخزين جدول بايتات فأخزن ملف أو صورة أو أي شيء يمكن
في جدول
ج: لو أردنا تخزين مصفوفة يدويا فهناك طرق عديدة حسب الكيفية التي نريد استعمل الحفظ بها. و سكناول 3
م انشاء وسم جديد نسميه مثلا "008180166"
م نضيف باراميترات بها عدد الاسطر و عدد الأعمدة واتجاه القراءة و الكتابة
.ثم نقوم بتخزين كل القيم في "نص" و نفصل بينها بالنقطة-فاصلة مثلا
ء ثاني كيفية و هي حفظ كل عنصر في وسم خاص به و هنا يجب علينا:
إنشاء وسم جديد نسميه مثلا "1/180162 008"
م نضيف باراميترات بها عدد الأسطر و عدد الأعمدة و اتجاه القراءة و الكتابة
باستعمال حلقة تكرارية من أول خلية لآخر خلية (حلقتين 2) واحدة على الأسطر و الأخرى
على الأعمدة حسب ما حددناه في براميتر الاتجاه) نقوم بما يلي:
د إنشاء وسم جديد نسميه مثلا "0081180166"
م باستعمال حلقة تكرارية على الاسطر نقوم بما يلي:
+ (يمكننا الآن استعمال طريقة دمج كل قيم السطر في نص أو يمكننا حفظ كل قيمة
منفصلة و هاته سأستعملها)
+ _باستعمال حلقة تكرارية على كل قيمة في السطر نقوم بما يلي:
أيضا بنفس الطريقة. تقنيا فلو كنا سنقوم بالقراءة اليدوية فالأحسن ١
تسمح لي بمعرفة عدد الأسطر و الأعمدة من البداية فأستطيع مباشرة تعريف
التوقف للحلقة.