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

Know the type and the number

مغلق
بدأه TheLeader في 23 يونيو 2007 · 14 رد · 1,894 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

اود السؤال عن كيفية عمل ما يلي

عندي ملف فيه عدة اسطر كل سطر يحتوي على معلومات عن انواع مختلفة

وهي 3

male ,female and thing

وقد يتكرر في نفس السطر اكثر من male

male(khaled 23 computer) thing (book blue) female(fatma 30 Engineer) male(ahmed 10 student)

ما اريد هو ان اضع كل الرجال في ملف واحد وكذلك النساء والاشياء في ملفين اخرين

مع الحفاظ على رقم النوع في السطر الواحد

فمثلا في المثال عندي رجلين

فالاول فخالد يكون

male1

و احمد يكون male2

#2

فى الحالة دى المفروض تستخدمDataBase engine انما طريقة الملفات دى هتبقى رخمة جدا

#3

السلام عليكم أخواني،

أنتم أثرتوا نقطة جوهريره في الموضوع. الزميل TheLeaderيحتاج تخزين Objects مختلفة ويحتاج انه ينظمها :lol: . والزميل prog_Basem جزاه الله خير أقترح Database كحل للموضوع ;) . وطبعا هذا يتطلب جداول و SQL وتعال وحط وركب ........الخ :unsure: . ولكن نقدر نزيد كلمتين على أقتراح حبيبي prog_Basem فيصبح الإقتراح Database for Objects؟؟؟؟

(لا تعريف جدول ولاعلاقات ولا حقول ولا حتى تغير في برنامج أي حرف) بس أمر واحد تستخدمة وهو set و get، وتحصل على قاعدة بيانات أقوى من DataBase التقليدية . وقبل أي هيكل لمجموعة Objects - أعمل سب كلاس لين بكرة. مثال:

Class Car{ 
Model model;
Car(Model m){this.model=m;} 
}

Class Model{
String year;
String name;
Model(String y,String n){this.year=y;this.name=n;}
}



import ..........

Calss RunMyDB{
public static void main(String[]args){
IObjectContainor db =Db4oFactory.OpenFile(FileName);
Car car = new Car(new Model("2007","xyz"));
//Only one line to store objects (NO TABLE NO SQL)
db.set(Car);
db.Close();
}

ولعمية استرداد الـــ Object ما عليك هو سوى استخدام db.get ومرر نسخة من الـــ Object لل Method (اعمل new Object مثل Car وضع القيمم لها). مثال:

Car car = new Car(new Model("2007",null));
IObjectset results = db.get(car);

مع تمرير Null سيبحث عن أي Car سنتها 2007.

شي شي شي خرافي أنا بطلت أستخدم أي قاعدة بيانات غيرها واسم المكتبة db4o أو db4Objec، وهي تعمل على Java و .Net، وتدعم خاصية Server /Client. وبالإضافة إلى أنها تعمل على J2me. وحجم المكتبة لا تزيد عن 600KB وقادر على تخزين 200،000 Object في الثانية :o

عنوان الموقع :إضغط هنا

جرب بنفسك وشوف

أخوكم فــــــــــــــــــــــــــــراس

تم تعديل هذه المشاركة بواسطة Feras Nasser في 23 يونيو 2007 في 17:07

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#4

بسم الله الرحمن الرحيم

اشكر اخواني على الرد

لم اعرف ان الامر بهذه الصعوبة

اخي فراس حاولت الدخول على الرابط لكنه لا يعمل

شكرا

#5

عذا كانت كتابتي للموقع خطا

www.db4o.com

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#6

أخ فارس حبيت استفسر عن الباكيج التي عليه تحميلها للتشغيل

وهل الباكيج موثقة

شكراً يا أخي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#7

السلام،

بالنسبة للبكج فهي مستخدمة من قبل شركات كثيره وكبيره ابرزها:

BMW, Boeing, Bosch, Hertz, IBM, Intel, Ricoh, and Seagate.

الرابط لقائمة الزبائن والقطاعات التي تستخدم هذه التقنية

وهذا الرابط يعرض اسماء الشركات الداعمة والمشاركة في فيها

قائمة الشركاء

لتحميل نسخة Java

إضغط هنا

لتحميل نسخة Dot Net 1.x

إضغط هنا

لتحميل نسخة Dot Net 2.0

إضغط هنا

فراس

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#8

اخي عيسى

لقد نزلت الباكيج واقرا الان في tutorial

لكن ما عرف شي

طب ممكن نحل الموضوع بيعد عن هذا الباكيج او الdatabase

عموما؟؟

#9

بالنسبه لي السؤال مو واضح ،

أتمنى التوضيح بشكل مفصل مع ارفاق مثال لما تريد

#10

افرض ان عندي ملف به عدة سطور

في كل سطر هناك ما اسمية

Type such as male, female and thing

ممكن هذا ال type يتكرر اكثر من مرة في السطر الواحد

مثال

Male(khaled 20 computer)female(kholood 22)thing (book blue) male(saad 20)

مش بالضرورة عدد المعلومات داخل كل type

يكون واحد

وما اريده هو ان اضع كل المعلومات الخاصة بالرجال في ملف لهم وكذلك الحال في ملف النساء وملف للاشياء

فهل ممكن عم لذلك من غير الربط مع data base

#11

السلام،

عزيزي TheLeader،

اقتباس
فهل ممكن عمل لذلك من غير الربط مع data base

من باب النصيحة، اعتماد طريقة تخزين المعلومات عن طريق ملفات عادية تسبب مشكال كثيرة لك في المستقبل، يصعب فيها التحديث والحذف والإضافة والإستعلام عن البيانات.

لأخذ فكرة عن موضوع تخزين المعلومات على شكل ملفات : Flat File Database

ولكن أخي الكريم هذه طريقة جدا قديمة ومتعبة، وتم اختراع ما يسمى بــ DBMS (نظام إدارة قاعدة البيانات) وهو القلب النابض لأي قاعدة بيانات، لتغلب على عيوب Flat File Database. وفي حالتك ستقوم بإنشاء هذه الخاصية من النظام من الصفر. مما يجعلك تفقد التركيز عن الهدف من برنامجك في الأساس ويجعل تركيزك على كيفية إدارة المعلومة في الملفات وطريقة تخزينها.

والوضع بكل بساطة أخي الكريم هو أن سبب وجود Database لقليل الجهد في عملية تنظيم البيانات. وهو يزيد من إنتاجيتك ما يقارب 80% لو اعتمد الملفات فقط.

ولكن شرحت لك سابقا بأن Database من نوع (relational database) يتطلب تكوين جداول لها وإدارة قاعدة البيانات وجهد إضافي، ومع ذلك هي اسهل من التعامل مع الملفات، ولكن الحل عن طريق المكتبة DB4O وجدت لتقيل الجهد في تكوين وإدارة قاعدة البيانات الـــrelational وبالأخص عندما يكون برنامجك من نوع Object-oriented مثل Java. حيث تقلل الجهد بما يعدل 70% من عملية DB Adminstration. وإذا قارنا فرق الجهد ما بين Flat File DB مع DB4O نظريا أنت توفر 150% من الجهد المبتذل في عملية تطوير برنامجك.

عزيزي، إذا كانت الصعوبة في فهم طريقة استخدام المكتبة، فأنا على كامل الاستعداد لدعمك من حيث الشرح والأمثله وحل المشاكل التي تواجهها. وفي حال اصارك على عدم التعامل مع DB بشكل نهائي، أقل شي فكرة في عملية تبي XML حيث هي تعتبر تطوير Flat File. ويمكن أن أزودك معلومات عن كيفية التعامل معها في الــ Java عن طريق XML Parser وغيرها من المكتبات المتعلقة بـــ XML.

أمل أخي العزيز التفيكر في هذه النقاط

واعذر عن الاطاله عليك،،،،،،

فراس

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#12

بسم الله الرحمن الرحيم

اشكر لك رد المفصل

جزاك الله خيرا

حسنا ساستعمل هذه ا package

اول ما علمت داونلوود وunzip

للملف ما عرفت بعدين شو اسوي

يا ريت تشرح لنا بالتفصيل كيف نستهدمها ومن وين نبدا

شكرا

#13

بسم الله الرحمن الرحيم

يا اخوان اود مساعدتكم الله يبارك فيكم

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

واريد ان اضع كل نوع في ملف

فماذا اكتب داخل الIF ELSE

حتى يدخل بيانات كل ملف لقصد ما هو موجود بين () في ملف خاص

يعني لو كانت الجملة

MALE( AHMED 30 TEACHER) FEMALE(HIND 34 STUDENT) THING ( CUP BLUE)

MALE(KHALED 20 ) FEMAL(AFRA 13 PLAYER)

يذهب لملف الرجل ما بين الاقواس وهو

AHMED 30 TEACHER

KHALED 20

مع ملاحظة ان المعلومات داخل الاقواس يختلف عددها

فما الطريقة لذلك؟؟؟؟

#14
TheLeader كتب:
بسم الله الرحمن الرحيم

يا اخوان اود مساعدتكم الله يبارك فيكم

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

واريد ان اضع كل نوع في ملف

فماذا اكتب داخل الIF ELSE

حتى يدخل بيانات كل ملف لقصد ما هو موجود بين () في ملف خاص

يعني لو كانت الجملة

MALE( AHMED 30 TEACHER) FEMALE(HIND 34 STUDENT) THING ( CUP BLUE)

MALE(KHALED 20 ) FEMAL(AFRA 13 PLAYER)

يذهب لملف الرجل ما بين الاقواس وهو

AHMED 30 TEACHER

KHALED 20

مع ملاحظة ان المعلومات داخل الاقواس يختلف عددها

فما الطريقة لذلك؟؟؟؟

any ideas

#15
اقتباس
فهل ممكن عم لذلك من غير الربط مع data base

أكيد يمكنك فعل ماتشاء ،

الكود التالي يقوم بتوزيع الtype في كل ملف ، فالرجل في ملف والنساء في ملف والاشياء في ملف آخر ،

لاحظ انني كاتب بنفس السطر أكثر من type يمكنك تعقيدها كما تشاء ...

public class Main  {
   public static void main (String [] args) throws Exception{
 BufferedWriter br=new BufferedWriter(new FileWriter("Types.txt"));
 BufferedWriter br2=new BufferedWriter(new FileWriter("male.txt")); 
 BufferedWriter br3=new BufferedWriter(new FileWriter("female.txt"));
 BufferedWriter br4=new BufferedWriter(new FileWriter("thing.txt"));
 br.write(" male (khaled 20 computer)");
 br.write("-1");
 br.write("female (fatmah business)");
 br.newLine();
 br.write("female (kholood 22)");
 br.newLine();
 br.write("thing (book blue)");
 br.newLine();
 br.write(" male (saad 20)");
 br.newLine();
 br.flush();

 BufferedReader buffer =new BufferedReader(new FileReader("Types.txt"));
 String in;
 while((in=buffer.readLine())!=null)
 {
	String[] s=in.split("-1");
for(int j=0;j<s.length;j++){
	 if (s[j].contains(" male")){
		 br2.write(s[j]); 
		 br2.flush();
	 }
	 else
		  if (s[j].contains("female")){
			br3.write(s[j]);
			br3.flush();
		  }
		  else
		  if (s[j].contains("thing")){
		 br4.write(s[j]);
		 br4.flush();
		  }
 }}
   }
}

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

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