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

نسخة كاملة : مصفوفه لعمل Index لملف Text
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
جربى هذه الدالة .

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]; 
هذا الكود أعطاني فقط حرف قبل وحرف بعد وليس سطر

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

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

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

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

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

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

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

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

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

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

بارك الله فيكم وبكم
والسلام عليكم ورحمة الله
انجزت هذا الاجراء الذى يعمل تقريبا نفس عمل الدالة 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;

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