PDA

View Full Version : جدا کردن حروف ؟؟



fire-wizard
جمعه 09 شهریور 1386, 15:05 عصر
با عرض سلام و خسته نباشید خدمت دوستان.

یک سوال برام پیش اومده .
میخوام یک شی Edit box بزارم توی پرژه و کاربر توی اون یک جمله بنویسه به این صورت
Name1|Name2|Name3 بعد یک دکمه بزارم روی فورم که اگه روش کلیک کرد درون سه تا Lable که ایجاد کردم این اسم ها ذخیره بشه مثلا : Lable 1 =Name1 بشه Lable 2 =Name2 بشه و Lable 3 =Name3 بشه یعنی در اصل بیاد و اسم ها رو از کاراکتر (|) جدا کنه و در Lable ها ذخیره بکنه اونها رو .

با تشکر.

Delphi-Man
جمعه 09 شهریور 1386, 16:09 عصر
البته راه های زیادی برای این کار هست، می تونی از این کد استفاده کنی:


procedure TForm1.Button1Click(Sender: TObject);
var i,found:integer;str:string;labels:array [1..3] of string;
begin
if (edit1.Text<>'') then begin
str:='';
found:=0;
for i:=1 to length(edit1.Text) do begin
if (copy(edit1.Text,i,1)='|') then begin
found:=found+1;
labels[found]:=str;
str:='';
end else begin
str:=str+copy(edit1.Text,i,1);
end;
end;
labels[found+1]:=str;
{ DISPLAY VALUE }
label1.caption:=labels[1];
label2.caption:=labels[2];
label3.caption:=labels[3];
end;
end;
می تونی هر چه قدر که خواستی یعنی بیشتر از سه تا string دریافت کنی در آرایه labels ذخیره می شه...
تعداد string هایی که کاربر وارد کرده در found ذخیره میشه...

Hamid.Kad
جمعه 09 شهریور 1386, 16:14 عصر
با تشکر از جناب delphi-man

میتونید توابع Pos, Delete, Copy رو توی help دلفی ببینید. مشکلتون رو حل میکنه

Zahraii
شنبه 10 شهریور 1386, 13:16 عصر
از تابع ExtractStrings در یونیت Classes نیز می تونی استفاده کنی

hossein taghi zadeh
شنبه 10 شهریور 1386, 14:22 عصر
با سلام

این هم یک پروسیجر کاملتر


Procedure SplitStr(Const Sender: TStrings; Const Str: String);
Const
Nul = '';
Sep = '|';
Var
L, Len: Integer;
Begin
Len := Length(Str);
L := Pos(Sep, Str);

If L = 0 Then
Sender.Add(Trim(Str))
Else
Begin
If Trim(Copy(Str, 1, L - 1)) <> Nul Then
Sender.Add(Trim(Copy(Str, 1, L - 1)));

If Trim(Copy(Str, L + 1, Len)) <> Nul Then
SplitStr(Sender, Copy(Str, L + 1, Len));
End;
End;

Mahmood_M
چهارشنبه 14 شهریور 1386, 04:34 صبح
فکر کنم مقاله زیر مفید باشه ...

---------------------
دستکاری رشته ها (http://barnamenevis.org/forum/showthread.php?t=70145)
---------------------

موفق باشید ...

manvaputra
پنج شنبه 15 شهریور 1386, 21:12 عصر
با سلام با چند کد ساده و استفاده از عنصر Tstrings که یک عنصر غیر ویژال ولی قدرتمند تو دلفیه می تونی اینکارو بکنی مثال رو برات گذاشتم فقط چند خطه اصلا هم پیچیده نیست:




procedure TForm1.Button1Click(Sender: TObject);
var s:tstrings;
begin
s:=TStringList.Create;
ExtractStrings(['|'],[' '],pchar(edit1.Text),s);
label1.Caption:=s[0];
label2.Caption:=s[1];
label3.Caption:=s[2];
s.Free;
end;