delphi4arab منتديات دلفي للعرب

نسخة كاملة : حول بناء محرك بحث بـ استخدام دلفي
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
[color="darkorchid"]السلام عليكم ورحمة الله وبركاته
طابت اوقاتكم

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

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

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


تقبلوا فائق احترامي وتقديري[/color]
[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;



بانتظار اقتراحاتكم
يمكنك استخدام خاصية 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; 

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

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

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

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

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

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

ملاحظة: لا يهمك من المسئول عن تقسيم النص و كيف يتم ذلك المهم ان تعرف خصائص الكلاس و التعامل معها ...
طريقة بإستخدام الدالة 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; 
يعطيك العافية
لكني أعتبر مبتدئه باللغه لذلك اسأل عن التفاصيل لأتعلمها
سأجربها وأفيدكـ بالنتيجه
شكرا جزيلاً
[color="purple"]السلام عليكم ورحمة الله وبركاته


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

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

جزيتم خيراً[/color]
محاولة ناجحه ولله الحمد لقراءة محتوى ملف نصي (سطر سطر 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;
[COLOR="Purple"]
بعد قراءة المحتوى النصي سطر سطر
قمت بتقطيع الكلمات (انتزاع الكلمات من النص) وتخزينها داخل Array

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

هل من طريقه ؟[/COLOR]
الصفحات : 1 2