delphi4arab منتديات دلفي للعرب
مصفوفه لعمل Index لملف Text - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : مصفوفه لعمل Index لملف Text (/showthread.php?tid=580)

الصفحات: 1 2


مصفوفه لعمل Index لملف Text - hanipino - 17-02-2009

جربى هذه الدالة .

S الكلمة المراد البحث عنها .
Arr المصفوفة التى نبحث فيها .

PHP كود :
Type Str = Array[0..1] of String;
Function 
SearchInArray(S:String;Arr:Array Of String):Str;
var
  
I:Word;
begin
  
For I:= Low(Arr)to High(Arr)do
   if 
S = Arr[i] then  Break;
    if (
I = 0) or (I = High(Arr)+1) then
      begin
        
if I =     0       then Result[1]:=Arr[I+1];
        if 
I = High(Arr)+1 then Result[0]:=Arr[I-2];
      
end
    
else
      
begin
        Result
[0]:= Arr[I-1];
        
Result[1]:= Arr[I+1];
      
end;
end; 

استدعاء السطر السابق وعرضه فى edt2

PHP كود :
edt2.Text:=SearchInArray(edt1.Text,Arr)[0]; 

استدعاء السطر الاحق وعرضه فى edt3

PHP كود :
edt3.Text:=SearchInArray(edt1.Text,Arr)[1]; 



مصفوفه لعمل Index لملف Text - NOna - 17-02-2009

هذا الكود أعطاني فقط حرف قبل وحرف بعد وليس سطر

إذا وجدنا داله لرقم السطر ممكن عن طريقها نعرض محتوى السطر
فهل يوجد داله ل LineNumber


مصفوفه لعمل Index لملف Text - AL-MOB4RM3G - 18-02-2009

NOna كتب :هذا الكود أعطاني فقط حرف قبل وحرف بعد وليس سطر

إذا وجدنا داله لرقم السطر ممكن عن طريقها نعرض محتوى السطر
فهل يوجد داله ل LineNumber

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

انا في الحقيقة لم اجرب الموضوع
لكن ممرت به مر الكرام... يعني على السريع...
ووجد سؤالك هذا ...

قلت ممكن تقصدين ب linenumber التالي ...؟

PHP كود :
listbox1.ItemIndex[0]; 

هذه تعطي رقم السطر...
وفي الكود اعلى هو السطر الأول...
ويمكن تغيّير الى

PHP كود :
listbox1.ItemIndex[1]; 

حتى يصير السطر الثاني وو الى اخره...

ان كان هذا ما تبحثين عنه فلحمد لله
وان لم يكن هذا هو ... فسامحوني على المشاركة :eek:

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


مصفوفه لعمل Index لملف Text - hanipino - 21-02-2009

انجزت هذا الاجراء الذى يعمل تقريبا نفس عمل الدالة ExtractStrings مع امكانية منع اضافة حرف معين او كلمة + عدم تكرار المدخلات .

PHP كود :
procedure ExtractStrings2(Str:string;Separ:TSysCharSet; NotAdd:array Of string;Past:TStrings);
var
P:Pchar;
S:String;
 
begin
   P
:=PChar(Str);
   while (
P^ <> #0) do
   
begin
      
if not (P^ in Separ) then
         begin
          S
:=(S+P^);
          
Inc(P);
         
end
      
else
         
begin
          
if not(MatchText(S,NotAdd))and(Past.IndexOf(S)<0) then
          Past
.Add(S);
          
inc(P);
          
S:='';
         
end;
   
end;
   if 
not (MatchText(S,NotAdd))and(Past.IndexOf(S)<0) then
   Past
.Add(S);
 
end; 

الاستدعاء مثلا :

PHP كود :
ExtractStrings2('Hanipino: ,  delphi;     . delphi;  4',
                 [
':',',',' '],
                 [
'','.','4'],Lst1.Items); 

المخرجات :

كود :
Hanipino delphi;

شىء جميل ان نحاول صنع دوال مثل الدوال الموجودة بطرق اخرى .