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

سؤال استغرق اسبوع كامل ولم اجد الجواب

مغلق
بدأه بسوووم في 4 مايو 2006 · 16 رد · 1,316 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

السؤال هو:

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

اريد طريقة في الجافا للقراءة من تكست فايل بفورمات معين مثلا:

.CPU% central processing unit

هذا التكست فايل يحمل فورمات معينه وهي: المصطلح (%) التعريف (.)

بحيث أن فنكشن القراءة تقرأ الى علامة النسبة وتقف وترجع ما قرأته

لم أجد الفنكشن (الدالة) التي تقرا الى حرف معين (%)

نحن نريد أن نقرأ من التكست الفايل ونقوم بتعبئة ماقرأناه في باينري سيرش تري

بحيث تصبح جميع العمليات من بحث واضافه وتعديل ومسح تتم في التري

وفي النهاية نقوم بنسخ التري مره اخرى في تكست فايل جديد

نرجو مساعدتكم في:

1/ كيفية القراءة من فايل بتكست معين

2/ طريقة تعبئة الباينري سيرش تري

اتمنى المساعده ...

وجزيتم خيرا

#2

انت ممكن تستخدم ال string tokinizer فى العملية دى تقرا ممن الفيل line by line وتحطة فى string تانى وتمسك ال string تقطعة واحدة واحدة

التوفيق من الله

الخطأ منى ومن الشيطان

www.tanahy.blogspot.com

#3

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

هذه Method تقوم بقراءة الملف ومن ثم تأخذ ماقبل علامة % ومابعدها وتقوم بتخزينهم في الـ BST ولكن هي ليست كاملة من ناحية التحزين في الـ BST

لأنني لا أعلم هيكلية الـ BST التي تستخدمون و ماذا ستحمل الـ Node من قيم ... Object يمثل الكلمة ومعناها أم مجرد متغيرات ؟

//import java.util.*;
//import java.io.*;

public void loadBST() throws IOException{

BufferedReader fr=new BufferedReader(new FileReader("file.txt"));

String line=fr.readLine();

while(line!=null){

StringTokenizer st=new StringTokenizer(line,"%.");

... st.nextToken(); //Word
... st.nextToken(); //definition

line=readLine();

}

تم تعديل هذه المشاركة بواسطة red_knight في 5 مايو 2006 في 03:29

public Money getRich(String name){
return new Money(1,000,000,000 );
}
#4

اشكر الجميع لتفاعلهم

class Node
{
  public String term;
  public String means;
  public Node(String s)
  {
    term = s;
  }
  public Node(Node DataIn)
  {
    term = DataIn.term;
    means = DataIn.means;
  }
}

تم تعديل هذه المشاركة بواسطة بسوووم في 5 مايو 2006 في 05:52

#5

ّ

import java.util.*;
import java.io.*;

...

public void loadBST() throws IOException{

BufferedReader fr=new BufferedReader(new FileReader("file.txt"));

String line=fr.readLine();

while(line!=null){

StringTokenizer st=new StringTokenizer(line,"%.");

Node node=new Node(st.nextToken());  // create the node with for the term being read

node.means=st.nextToken();                  //set the meaning of that term

                 ...                                // Insert 'node' into BST 


line=readLine();

}


...

تم تعديل هذه المشاركة بواسطة red_knight في 5 مايو 2006 في 06:02

public Money getRich(String name){
return new Money(1,000,000,000 );
}
#6

هذا البرنامح بجميع الفايلات

قد تجدون البرمجه ضعيفه او قد تجدون أخطاء كثيره وذلك لسبب أننا مبتدئين جدا في لغة الجافا

لذلك نرجو أن تدونوا ملاحظاتكم هنا حتى نستفيد منها

سؤال اخر:

ما هي الفنكشن(الدالة) المستخدمة لقراءة مدخلات(سترنق) المستخدم .. وما طريقة استخدامها؟

..... وشكرا

BSTree.zip

تم تعديل هذه المشاركة بواسطة بسوووم في 5 مايو 2006 في 06:33

#7

...

تم تعديل هذه المشاركة بواسطة red_knight في 5 مايو 2006 في 07:59

public Money getRich(String name){
return new Money(1,000,000,000 );
}
#8

ياخي لم تعجبني طريقة ردك وتجاوبك معنا ...

نجاوب يمين وتجاوب شمال ...

نحن نضع الأجوبة ولكن لانعلم إن كنت حاولت وجربت وإلى أين وصلت ...

لانستطيع مساعدتك طالما إنك لم تتعاون ...

عزيزي نحن لن نقرأ الملفات وندون الملاحظات فنحن لسنا بلجنة تحكيم ...

اعمل وأخبرنا إلى أين وصلت وكن محدداً في طلبك عندها نستطيع مساعدتك ...

أنا أسف على جفاء إسلوبي لأنه ليس لدي الوقت للتنقيح ...

public Money getRich(String name){
return new Money(1,000,000,000 );
}
#9

أعتذر عن الانقطاع الذي حصل

وشكرا لك أخي ريد نايت على التنبيه...

#10

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

import java.io.*;
//Class Definition
class ReadTextFilel
{
public static void main (String args[]) throws IOException
{
    String def = " ";
    String  term;
    String fileName = "terminology.txt";
    String line;
    BufferedReader in = new BufferedReader(new FileReader(fileName));
    while (line != null)
    {
         if (line.endsWith("%"))
      {
        line = line.replace('%', ':');
        term = line;
        System.out.println(term);
       //input the term in atree
        line = in.readLine();
        def = line;
        while (! (line.endsWith("&")))
        {
          line = in.readLine();
          def = def + ' ' + line;
        }//end while def
        def = def.replace('&', ' ');
      }//end if
      System.out.println(def);
      line = in.readLine();
      }
    //end while not end of file
     in.close();
  }//end main

    }//end class
#11

الغريب إنك كنت تبغى تستخدم BST في البحث أما الآن فأنت تبحث داخل الملف فقط !

هل تعي ذلك ؟!

public Money getRich(String name){
return new Money(1,000,000,000 );
}
#12

هذا الكود فقط لنقل محتويات الفايل داخل الـ BST

ربما يكون هناك لبس لكن سيزول باذن الله اذا قمت بتنزيل كامل الكود هنا

#13

نعم ياعزيزي ولكن ألا تعتقد بأن الـ Code معقد بعض الشيء أعتقد أن هذا يقوم بالمثل:

public class exc {

public static void main(String[] args) throws IOException{

BufferedReader fr=new BufferedReader(new FileReader("file.txt"));
String line=fr.readLine();

while(line!=null){
StringTokenizer st=new StringTokenizer(line,"%.");
System.out.println(st.nextToken()+":");  
//Input Term
System.out.print(st.nextToken());
//Input Definition

}
public Money getRich(String name){
return new Money(1,000,000,000 );
}
#14

استطعنا القراءة من الفايل بالبرنامج

لكن..............

عندما نعمل سيرش على مصطلح موجود أحيانا تظهر المسج

التي تفيد أن المصطلح غير موجود مع انه موجود فعلا....!!!!!

#15

ياخي أنت تعمل search في الـ BST والا في الملف؟

إذا في الـ BST تأكد إن الـ BST تم تعبئتها بشكل صحيح

بعدين كما قلت لك لايستطيع أحد مساعدتك وأنت لا توضح ماتقوم بفعله وهل أنت تجرب الحلول التي توضع لك

إذا أردت أن تستمر في أن تتكلم مع نفسك فهناك الكثير من الوقت والأماكن المناسبة !

public Money getRich(String name){
return new Money(1,000,000,000 );
}
#16

الحمد لله تم حل جميع المشاكل

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

ونعتذر عن التقصير

سأضع الطرق التي ساعدتنا في حل مشاكلنا في وقت لاحق ان شاء الله

#17

حياك الله حبيبي في أي وقت مع إني لم أقم بالكثير ،،،

public Money getRich(String name){
return new Money(1,000,000,000 );
}

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

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