السلام عليكم ورحمة الله وبركاته
أنا أستفسر عن كيفية تقطيع جملة من خلال الفراغات التي فيها
مثلا "الدلفي هو عالمي وأنا أحبه" فتقوم بتقطيع الجملة إلى
الدلفي
هو
عالمي
وأنا
أحبه
أرجو الإفادة فأنا لا أعرف دالة التقطيع في الدلفي
السلام عليكم ورحمة الله وبركاته
أنا أستفسر عن كيفية تقطيع جملة من خلال الفراغات التي فيها
مثلا "الدلفي هو عالمي وأنا أحبه" فتقوم بتقطيع الجملة إلى
الدلفي
هو
عالمي
وأنا
أحبه
أرجو الإفادة فأنا لا أعرف دالة التقطيع في الدلفي
وعليكــم السـلام ورحمة الله وبركاتـه..
لا أعرف دالة من أجل ذلك ولكن إذا قمنا بالبحث من خلال posEx نستطيع تحديد الفراغات وبالتالي تحديد الكلمات
uses StrUtils; procedure TForm1.Button1Click(Sender: TObject); var S, S1, S2 : String; i_begin, i_end: Integer; begin //example S:= 'hello every one'; S1:= ' '; // here is begin S:= S+' '; i_begin:= 0; i_end:= posex(S1, S, 1); S2:= Copy(S, i_begin+1, i_end-1); ShowMessage(S2); i_begin:= i_end; while i_end>0 do begin i_end:= posex(S1, S, i_begin+1); S2:= Copy(S, i_begin+1, i_end - i_begin); ShowMessage(S2); i_begin:= i_end; end; end; end.
لكود ليس كاملا ولكني يمكن تطويره من أجل ذلك أتمنى لك التوفيق
هناك العديد من الحلول ابسطها هو :
var
words: TStringList;
{*
هنا يتم التعامل مع ال AnsiString
اذا اردت التعامل مع اللغات من مثل العربية فيجب التعامل مع ال Unicode او ال WideString
*}
s: string;// الكلمة التي تريد تقطيعها
i: integer;
begin
s:='Delphi is my world and i like it';
words := TStringList.Create;
try
words.text := StringReplace(s, ' ', #13#10, [rfReplaceAll]);//هنا يتم التقطيع على اساس الفراغ
for i := 0 to pred(words.count) do // حساب الكلمات
memo1.Lines.Add(words); // ===> الناتج
finally
words.free;
end;
end;
end.كما قلت توجد الكثير من الحلول
تم تعديل هذه المشاركة بواسطة mohfa في 20 يونيو 2009 في 20:47
شكرا للإخوة على الردود لقد قمت بتجريب الكود الاول والثاني وهما يعملان بكفاءة عالية
وشكرا مرة أخرى