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

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

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

وشكراً
و عليكم السلام

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

بالتوفيق
وعليكم السلام ورحمة الله وبركاته
إقتباس :فمثلا لو أدخل المستعمل كلمة وترك فراغين أو أكثر (مسافة) وعند الضغط على زر يرجع مقدار الفراغ إلى مسافة واحدة
اضن انه من الاحسن ان تجعل الـ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

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

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

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

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

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

وبارك الله فيكم
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
بارك الله فيك
طريقة رائعة لتقسيم الجملة
مشكور جدا
وحاولوا معي توظيفها في سؤالي
ممكن شرح لهذه الكلمات:
المتغيرات:
TextFile
TStringList

الدوال:
AssignFile
Reset
CloseFile

الخصائص:
Create
CommaText


مع العلم أن البرنامج بقي محتفظا بالكلمات الأولى فقط عند تغيير الكلمات
وعليكم السلام ورحمة الله وبركاته
البحث والاستبدال StringReplace فراغين بواحد.
السلام عليكم

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

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


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 تعني تقسيم الجملة حسب الفراغات
على السريع :

كود :
edit1.Text:=StringReplace(edit1.Text,' ', ' ', [rfReplaceAll]);
الصفحات : 1 2