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

نسخة كاملة : كيف أقدر أقرأ Text كلمة كلمة وكل كلمة تطبع في سطر
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
[COLOR="Navy"][FONT="Comic Sans MS"]السلام عليكم


كيف أقدر أقرأ Textfile كلمة كلمة وكل كلمة تطبع في سطر
سمعت ان في (Procudure or method) تقدر تسوي هذا الشي أحد يفدر يساعدني

Note: I use Delphi version 2007
ـ تحباتي
NOna[/COLOR]
السلام عليكم
على حسب ما فهمت.
[صورة: 507718629.jpg]

PHP كود :
Function MotParMot(Str:String):String;
Const 
Cha = ' ';
var
  
I,y:Integer;
  
Mot:String;
  
Sl:TStringList;
begin
  Y
:=0; Result:='';
  
Trim(Str);
  
Str:=Str+Cha;
  
Sl:=TStringList.Create;
  for 
I:= Y to length(Str)do
  if 
Str[i]in[Cha] then
   begin
    Mot
:=Copy(Str,Y+1,I-Y);
    
Sl.Add(Mot);
    
Y:=I;
   
end;
 
Result:=Sl.CommaText;
 
Sl.Free;
end; 

PHP كود :
LST1.Items.CommaText:=MotParMot(Edt1.Text); 
الكود الذي وضعه الاخ hanipino صحيح لكن النص الذي يتم تحويله هو نص عادي String موجود في سطر واحد
يستحسن مراعات حتى النصوص متعددة الأسطر أكثر من سطر TstringList
إقتباس :يستحسن مراعات حتى النصوص متعددة الأسطر أكثر من سطر TstringList

يعمل بشكل عادى مع النصوص متعددة الأسطر .
مثلا :
PHP كود :
Mmo1.Lines.LoadFromFile('C:\Mot.txt');
 
LST1.Items.CommaText:=MotParMot(Mmo1.Text); 

باءضافة هذا الكود فى اعلى الدالة .. تتحسن نوعا ما المخرجات .
PHP كود :
for i:= 0 to length(Str) do
   
Str:=StringReplace(Str, '  ', ' ', [rfReplaceAll]); 
hanipino كتب :يعمل بشكل عادى مع النصوص متعددة الأسطر .
اخي العزيز هذا الكود لتجاهل الفراغين مع بعض و جعلها فراغا واحدا
لكن لنفترض أنه يوجد بين الكلمة و أخرى أكثر من فراغين إذن بقي المشكل قائم
و الحل لتعميم أكثر من فراغ هو كالتالي :
نضيف الكود التالي و هو
PHP كود :
if Mot <> '' then 
 Sl
.Add(Mot); 
بدلا من
PHP كود :
Sl.Add(Mot); 
إقتباس :لكن لنفترض أنه يوجد بين الكلمة و أخرى أكثر من فراغين إذن بقي المشكل قائم
فراغين او 3 او 4 ... لا يوجد اى مشكل .
بسبب ان الكود موجود فى عدة حلقات و بالتالى يقضى على كل الفراغات .
اخى mourad39

[صورة: 916sr2gfh.jpg]

لا اعتقد انك جربت الكود ب هذه الاضافة
PHP كود :
if Mot <> '' then  
 Sl
.Add(Mot); 
لان المخرجات كانت متدهورة .
أخي hanipino
أنا مبتدئة في الدلفي
حاولي في هذا الكود لكن ما اشتغل معي أنا عملت الأتي
PHP كود :
if not OpenDialog1.Execute then Exit;
  
Memo1.Clear;
  
AssignFile(myfile,OpenDialog1.FileName);
  
Reset(MyFile);
    while 
not Eof(MyFile) do
     
begin
     Readln
(MyFile,Text1);
.
.
.
.

 
end;
     
CloseFile(MyFile);
end; 
الله اعلم هذه هى احسن طريقة .

PHP كود :
ExtractStrings([' '],
                [
' ',',','.'],
                
Pchar(Memo1.Text),
                
Memo2.Lines); 

[صورة: sanstitreof4.jpg]

دالة طايبة Big Grin

starideas

أخي الكريم لقد حاولت تتطبيق هذا المثال ولكن لم اعرف اوزع الكود في مكانه
لكم جزيل الشكر
وجود 2 ميموا و زر .
فى حدث الضغط على زر . اكتب الكود اعلاه .