السلام عليكم...
إذا كان الاسم يتكون فقط من الاسم الأول و اللقب و بينهما فراغ فيمكن استعمال الدالة 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 (أو أي اسم ستسميه) لتستعمله في العرض في برنامجك.
نرجو الاستفادة و السلام.