حول بناء محرك بحث بـ استخدام دلفي
#1
[color="darkorchid"]السلام عليكم ورحمة الله وبركاته
طابت اوقاتكم

بدايةً اشكر كل القائمين على هذا الصرح التعليمي العظيم بمحتواه ورواده

انا ارغب بإنشاء { محرك بحث } يبحث في الملفات النصية فقط وقررت بإذن الله استخدام الدلفي وهياكل البيانات بالاضافة الى الملفات النصية المخزنة مسبقاً في الهارديسك . لانجاز هذا العمل ..
وقد انضممت إليكم لأستزيد من خبرتكم وعلمكم . عسى الله ان ينفعنا بكم

ملاحظة / سأجعل هذا الموضوع للاستفسارات الخاصة بي .


تقبلوا فائق احترامي وتقديري[/color]
الرد
#2
[FONT="Arial Narrow"]السلام عليكم
اخواني كنت أحاول تقسيم نص الى كلمات .. ثم تخزين الكلمات داخل array
يعني اقرأ النص من ملف كلمة كلمة ، واخزن الكلمات بدون تكرار في array
ثم اقوم بعرض هذه array للتأكد من صحتها .
لكني لم استطع التوصل للشرط الصحيح !
وهذه اولى محاولاتي :

كود :
const size=1000; var myFile:TextFile; text:string; I:integer; MyArray:Array [1..size] of string; begin AssignFile(myFile, 'concepts.txt'); Reset(myFile); repeat Readln(MyFile,text); // here should be write a condition to check a if the word between 2 spaces then take it and store in Array but I don't know HOW ? :( // if the condition is True .. do this : Begin MyArray [I] := text; I := I+1; Until eof(MyFile); End;



بانتظار اقتراحاتكم
الرد
#3
يمكنك استخدام خاصية Delimiter الخاصة بالـ TStringList
لم اجرب الكودارفق سطر كمثال او جزء من الملف النصي

PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
var
  
MyFile: TextFile;
  
Text: string;
  
StringList: TStringList;
  
I: Integer;
  
MyArray:Array [1..1000] of string;
begin
  StringList 
:= TStringList.Create;
  
StringList.Delimiter := ' ';
  
i := 0;
  
AssignFile(MyFile, 'concepts.txt');
  
Reset(MyFile);
  
repeat
    Readln
(MyFile, Text);
    
StringList.DelimitedText := Text;
    
MyArray[I] := StringList[I];
    
Inc(I)
  
until Eof(MyFile);
  
end;
end; 

بالتوفيق
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
الرد
#4
شاكرة افضالكـ لكن ممكن توضح لي :
TStringList هذا الكلاس ايش وظيفته ؟
Delimiter هل هو الميثود المسؤول عن تقسيم النص ؟
Inc(I) ... هل تكافئ I := I+1 ؟
الرد
#5
TStringList هذا الكلاس ايش وظيفته ؟

TStringList عبارة عن لائحة List نصية stringو حسب كمثال لائحة تحتوي على اسماء الدول
الجزائر
مصر
المغرب
السودان
الخ
يوفر خصائص مثل الاضافة Add الحذف التعديل ...

Delimiter هل هو الميثود المسؤول عن تقسيم النص ؟

Delimiter خاصية تابعة لـ TStringList نخبرها المحدد الخاص بنا

(Inc(I ... هل تكافئ I := I+1

نعم تكافئها تماما

ملاحظة: لا يهمك من المسئول عن تقسيم النص و كيف يتم ذلك المهم ان تعرف خصائص الكلاس و التعامل معها ...
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
الرد
#6
طريقة بإستخدام الدالة comma
PHP كود :
var l:string;s:tstringlist; f:textfile; i:integer;
begin
 AssignFile
(f,'C:\service.log');
 
reset(f);     s:=tstringlist.Create ;
 
repeat
 Readln
(f,l);
 
s.CommaText:=l;
 for 
I := 0 to  s.Count -1 do
 
ShowMessage(s[i]);
 
until eof(f) ;
 
CloseFile(f);
 
s.Free;
end; 
أدبني الدهر فأراني نقص عقلي وإذا ما ازددت علما زادني علما بجهلي
الرد
#7
يعطيك العافية
لكني أعتبر مبتدئه باللغه لذلك اسأل عن التفاصيل لأتعلمها
سأجربها وأفيدكـ بالنتيجه
شكرا جزيلاً
الرد
#8
[color="purple"]السلام عليكم ورحمة الله وبركاته


بعد غياب عن المشاركات وليست المتابعة
عدت وقد تجاوزت مراحل متقدمة في لغة الدلفي
والفضل في ذلك بعد الله هو اعضاء هذا المنتدى العظيم

سأرفق لكم محاولاتي (بين النجاح والاخفاق) لأخذ النصح والتوجيه منكم

جزيتم خيراً[/color]
الرد
#9
محاولة ناجحه ولله الحمد لقراءة محتوى ملف نصي (سطر سطر String)


كود :
procedure TForm1.Button2Click(Sender: TObject); begin Form1.Close end; procedure TForm1.Button1Click(Sender: TObject); var myFile: textFile; text:string; begin assignFile(myFile, '1.txt'); reset (myFile); repeat readln(myFile,text); Memo1.Lines.add(text); until eof(myFile); closeFile(myFile); end;
الرد
#10
[COLOR="Purple"]
بعد قراءة المحتوى النصي سطر سطر
قمت بتقطيع الكلمات (انتزاع الكلمات من النص) وتخزينها داخل Array

الان , احتاج طريقة او لوب يجعل النظام يمر على جميع ملفات البيانات الموجودة داخل مجلد واحد

هل من طريقه ؟[/COLOR]
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم