delphi4arab منتديات دلفي للعرب
تعديل الفراغات بين الكلمات في جملة - نسخة قابلة للطباعة

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

الصفحات: 1 2


تعديل الفراغات بين الكلمات في جملة - alouma - 16-02-2012

السلام عليكم

كيف كتابة كود يجعل الفراغات بين كلمات جملة مدخلة في edit بمقدار فراغ واحد
فمثلا لو أدخل المستعمل كلمة وترك فراغين أو أكثر (مسافة) وعند الضغط على زر يرجع مقدار الفراغ إلى مسافة واحدة

وشكراً


تعديل الفراغات بين الكلمات في جملة - لؤي - 17-02-2012

و عليكم السلام

موضوع ذات صلة:
http://www.delphi4arab.net/forum/showthread.php?tid=4561
يمكنك إستعمال خاصية commatext في Tstringlist ثم توظف الكلمات المختارة كما تشاء

بالتوفيق


تعديل الفراغات بين الكلمات في جملة - abdelmalek - 17-02-2012

وعليكم السلام ورحمة الله وبركاته
إقتباس :فمثلا لو أدخل المستعمل كلمة وترك فراغين أو أكثر (مسافة) وعند الضغط على زر يرجع مقدار الفراغ إلى مسافة واحدة
اضن انه من الاحسن ان تجعل الـEdit لا تقبل مسافتين متتاليتين من الاول .
تفضل هذا الكود الدي يمنع من إدخال مسافتين متتاليتين :
PHP كود :
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 
if Edit1.Text <> '' then
    
if (edit1.Text[Length(edit1.Text)] = #32) and (Key=#32) then
        
Key:=#0;
end; 
شرح الكود :
عندما يضغط المستخدم على مفتاح من لوحة تقوم الEdit بختبار ماذا ضغط المستخدم إذا ضغط مفتاح المسافة تدهب تتاكد بان النص قبل الضغط كان لا توجد به مسافة في الاخير .....
#32 تعني ' '
#0 تعني null كانه لم يضغط شيئ
راجع : Table Ascii

ملاحظة : يمكنك تطوير الكود السابق
بالتوفيق ,,


تعديل الفراغات بين الكلمات في جملة - alouma - 17-02-2012

شكرا جزيلا

هل من الممكن أن توضح وتشرح لي الخاصية commatext وTstringlist

abdelmalek كتب :ضن انه من الاحسن ان تجعل الـEdit لا تقبل مسافتين متتاليتين من الاول .

طريقة مميزة جزاك الله خيرا
لكن بفرض أننا نسخنا من مكان آخر نص ووضعناه في edit وكان في هذا النص فراغات أكثر من اللازم
ما الحل؟

لدي فكرة لكن لم أستطع تنفيذها وهي تقسيم النص إلى كلمات حسب الفراغات ووضعه في جدول
ومن ثم إعادة تركيبه مع حذف جميع الفراغات في البداية والنهاية لكل كلمة بالدالة Trim
هل من الممكن فعل هذا؟

وبارك الله فيكم


تعديل الفراغات بين الكلمات في جملة - لؤي - 17-02-2012

PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
Var
  
T: TextFile;
  
L,P: String;
  
S: TStringList;
begin
  AssignFile
(T,'C:\Fichier.txt');
  
Reset(T);
  
S := TStringList.Create;
  
Readln(T,L);
  
S.CommaText := L;
  
P:=S[0];
  
showmessage ('كلمة رقم 1'+'='+P);
  
P:=S[1];
  
showmessage ('كلمة رقم 2'+'='+P);
  
CloseFile(T);
end; 

لاحظ ما يعطيك إياه showmessage


تعديل الفراغات بين الكلمات في جملة - alouma - 17-02-2012

بارك الله فيك
طريقة رائعة لتقسيم الجملة
مشكور جدا
وحاولوا معي توظيفها في سؤالي


تعديل الفراغات بين الكلمات في جملة - alouma - 17-02-2012

ممكن شرح لهذه الكلمات:
المتغيرات:
TextFile
TStringList

الدوال:
AssignFile
Reset
CloseFile

الخصائص:
Create
CommaText


مع العلم أن البرنامج بقي محتفظا بالكلمات الأولى فقط عند تغيير الكلمات


تعديل الفراغات بين الكلمات في جملة - kachwahed - 17-02-2012

وعليكم السلام ورحمة الله وبركاته
البحث والاستبدال StringReplace فراغين بواحد.



تعديل الفراغات بين الكلمات في جملة - alouma - 18-02-2012

السلام عليكم

مازلت أتخبط حول حل هذا التمرين

لكن ساعدني أحد الأصدقاء وأعطاني كود بلغة سي بلس بلس


PHP كود :
private void button1_Click(object sender, EventArgs e)
        {
            
string res = "";
            
textBox1.Text = "_\t___    _ _\nnnn";
            if (
textBox1.Text!="")
            {
                
textBox1.Text = textBox1.Text.Replace("\t", " ");
                
textBox1.Text = textBox1.Text.Replace("\n", " ");
                
string[] str = textBox1.Text.Split(' ');
                foreach (
string partie in str)
                {
                    if (
partie!="")
                    {
                        
res += partie + " ";
                    }
                }
                
MessageBox.Show(res.Trim());
            }
        } 
هل من الممكن ترجمته في دلفي

مع العلم أن split تعني تقسيم الجملة حسب الفراغات


تعديل الفراغات بين الكلمات في جملة - mohfa - 18-02-2012

على السريع :

كود :
edit1.Text:=StringReplace(edit1.Text,' ', ' ', [rfReplaceAll]);