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

نسخة كاملة : الدالة post
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
لدي مشروع وهو عبارة عن واجهة دلفي بها memo 2 وbutton ما هي الدالة التي استخدمها لكي اتمكن من قراءة النص في memo1 والتعديل عليه مثلا اضهار # بعد كل كلمة من النص وتظهر النتيجة في memo2 هل استخدم الدالة post او get.
انت تقصدين pos وليس post
اضنه مشروع كمبيلاتور ابحث عن analyseur lexical flex
يمكنك استخدام دالة الاستبدال
PHP كود :
:= StringReplace(text, ' ',  '#',
                          [
rfReplaceAll, rfIgnoreCase]); 
الفكرة تكون بوضع جدول فيه جميع الكلمات الدلالية مثل if then begin end while repeat.....
وبعدها تقومين بهذه الحلقة
من i=1 الى نهاية الجدول
استبدال الكلمة[i] ب الكلمة[i]+#
اخي onexite لقد جربت الكود الدي كتبه على الشكل التالي ولكن تضهر لي رسالة الخطا **** ان تفيدني اكثر انا مبتداة بالبرمجة
memo1.lines:=Memo2.lines StringReplace(text
,'#', ' ',
; [rfReplaceAll, rfIgnoreCase])
yassmine300 كتب :اخي onexite لقد جربت الكود الدي كتبه على الشكل التالي ولكن تضهر لي رسالة الخطا **** ان تفيدني اكثر انا مبتداة بالبرمجة
memo1.lines:=Memo2.lines StringReplace(text
,'#', ' ',
; [rfReplaceAll, rfIgnoreCase])


[صورة: v2KnzO.png]

الكلمات المحجوزة غير كاملة اكمليها انت

PHP كود :
procedure TForm2.Button1Click(Sender: TObject);
  const
  
//mots réservés
  
mots  : array[0..11]of string =('.','int','write',':','var','begin','array','procedure','function','end',',',';' );
var 
i:Byte; text:string;
begin
text
:=Memo1.Text;
 for 
i := 0 to High(mots) do
text:=StringReplace(text,mots[i], mots[i]+'#',[rfReplaceAll, rfIgnoreCase]);
Memo2.Text:=text;

end; 
هل يوجد حل اخر بدون استخدام mots réservés اي بمعنى ادراج # بعد كل 'فراغ' و ';' من اي نص.
[صورة: MxIOfp.png]

هذا سيفي بالغرض

PHP كود :
procedure TForm2.StartClick(Sender: TObject);
var 
mystr,Position:string;
  
I: Integer;
begin
Memo2
.Text:='';
mystr:=Memo1.Text;
 for 
I := 0 to Length(mystr)-1 do
 if (
mystr[i]=' ') or (mystr[i]=';')  then
 begin
 Memo2
.Text:=Memo2.Text+mystr[i]+'#' ;
 
Position:=Position+' , '+IntToStr(i+1) ;
 
end else Memo2.Text:=Memo2.Text+mystr[i] ;


Memo3.Text:=Position;
end;