فصل كلمتين موجودان في حقل
#4
السلام عليكم...

إذا كان الاسم يتكون فقط من الاسم الأول و اللقب و بينهما فراغ فيمكن استعمال الدالة Pos لإيجاد الفراغ و فصل الجزأين.
كمثال: اكتب الإجراء التالي في القسم implementation:
كود :
procedure SeparateNameParts(AFullName: string; var AFirstName, ALstName: string); var SpcPos: Integer; begin AFullName := Trim(AFullName); if AFullName = '' then begin AFirstName := ''; ALstName := ''; end else begin SpcPos := Pos(' ', AFullName); if SpcPos = 0 then begin AFirstName := AFullName; ALstName := ''; end else begin AFirstName := Copy(AFullName, 1, SpcPos - 1); ALstName := Copy(AFullName, SpcPos + 1, Length(AFullName) - SpcPos); end; end; end;

و بافتراض أن لدي 3 مكونات TEdit (حيث Edit1 للاسم الكامل، و Edit2 للاسم الأول، و Edit3 للقب) فإننا نستدعي الدالة السابقة هكذا:
كود :
procedure TForm1.Button1Click(Sender: TObject); var FirstName, LastName: string; begin SeparateNameParts(Edit1.Text, FirstName, LastName); Edit2.Text := FirstName; Edit3.Text := LastName; end;

*** لكن المشكلة - كما أشار أخونا makhlouf - أن هناك العديد من الأسماء المركبة (الاسم الأول أو اللقب) مثل نور الدين و نجم الدين و نور الهدى... إلخ. بعض الناس يكتب الجزأين متلاصقين (نورالدين) و البعض يكتبهما منفصلين بفراغ (نور الدين) و أحياناً وجود الفراغ يكون إجبارياً كما في نجم الدين (لا يمكننا كتابته هكذا: نجمالدين، دون فراغ بين الجزأين).

*** نصيحتي لصاحب السؤال: إذا كانت الأسماء ستخزن في جدول قاعدة بيانات فاجعل للاسم أكثر من خانة (حسب حاجة برنامجك) مثلاً حقل للاسم و حقل للقب (الاسم الثنائي) أو حقل للاسم و حقل لاسم الأب و حقل للقب (الاسم الثلاثي) أو حقل للاسم و حقل لاسم الأب و حقل لاسم الجد و حقل للقب (الاسم الرباعي) و طبعاً سيكون لديك خانات مقابلة لها في نوافذ برنامجك.
و يمكنك بسهولة الحصول على الاسم الكامل (كنص واحد) عن طريق إنشاء استعلام (Query في Access أو View في SQL Server). مثلاً نفرض أن اسم الجدول هو Students و حقل الاسم الأول هو FirstName و حقل اسم الأب هو FatherName و حقل اللقب هو LastName. إذن ستكون جملة الاستعلام كالتالي:
كود :
SELECT Students.*, Student.FirstName + ' ' + Student.FatherName + ' ' + Student.LastName AS FullName FROM Student
حيث ستعيد لك هذه الجملة جميع الحقول الموجودة في الجدول بالإضافة إلى الحقل FullName (أو أي اسم ستسميه) لتستعمله في العرض في برنامجك.

نرجو الاستفادة و السلام.
الرد


الردود في هذا الموضوع
فصل كلمتين موجودان في حقل - بواسطة FARID - 14-04-2013, 11:08 PM
فصل كلمتين موجودان في حقل - بواسطة NOURI - 15-04-2013, 11:19 AM
فصل كلمتين موجودان في حقل - بواسطة makhlouf - 15-04-2013, 11:20 AM
فصل كلمتين موجودان في حقل - بواسطة Najy Ibraheem - 15-04-2013, 02:16 PM
فصل كلمتين موجودان في حقل - بواسطة m.rabee - 16-04-2013, 11:26 AM
فصل كلمتين موجودان في حقل - بواسطة FARID - 16-04-2013, 10:58 PM
فصل كلمتين موجودان في حقل - بواسطة m.rabee - 22-04-2013, 06:25 PM
فصل كلمتين موجودان في حقل - بواسطة m.rabee - 22-04-2013, 06:39 PM
فصل كلمتين موجودان في حقل - بواسطة m.rabee - 22-04-2013, 07:07 PM
فصل كلمتين موجودان في حقل - بواسطة m.rabee - 22-04-2013, 07:13 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم