یوسف زالی
سه شنبه 02 مهر 1392, 12:43 عصر
سلام. در اين پست چند تا نکته ي کوچيک در مورد اين شي مي گذارم و اميدوارم به درد دوستان بخوره.
1- استفاده از اين شي براي ليستي از مقادير رشته اي جفت جفت
2- استفاده براي Split کردن يک رشته
3- استفاده براي تهيه ليست بدون تکرار
4- استفاده براي سورت کردن يک سري از اعداد
5- استفاده در مواقعي که نياز داريم اگر رشته تغييري کرد اتفاقي بيفتد
6- استفاده در ارسال پارامتر هاي رشته اي تعداد بالا به متد يا گرفتن خروجي از متد
------------------------------------------------------------------------
1- مقادير رو به اين صورت وارد کنيد:
N1=Data1
N2=Data2
N3=Data3
.
.
و به اين صورت اونها رو بخونيد:
ST.Names[i]
ST.ValueFromIndex[i]
به همين راحتي!
از اين خاصيت مي تونيد براي توليد فايل هايي مثل INI يا جفت هاي پارامتر و ... و جدا کردن اونها از هم استفاده کنيد.
2- متني داريد شبيه اين:
salam;in teste;yousef zalli;
براي جداکردنش:
ST.Text := StringReplace(TXT, ';', #13#10, [rfReplaceAll]);
:))
3- مقدار Duplicate اين شي رو تنظيم کنيد! خيلي ها از وجود اين پراپرتي بي خبرند.
4- نمونه کد رو ببينيد:
var
i, x: integer;
st: TStringList;
begin
st := TStringList.Create;
st.Sorted := true;
for i := 1 to 30 do
begin
x := RandomRange(1, 1000);
st.Add(Format('%20d', [x]));
end;
ShowMessage(st.Text);
for i := 0 to 29 do
begin
x := StrToInt(Trim(st[i]));
ShowMessage(IntToStr(x));
end;
st.Free;
end;
5- براي اين مورد هم به جاي استفاده از رشته، از يک StringList استفاده کنيد. اين شي رويدادي داره به نام OnChange!!!
6- مثال گوياست:
procedure Split(TXT: string; st: TStrings);
begin
st.Text := StringReplace(TXT, ';', #13#10, [rfReplaceAll])
end;
procedure TForm1.Button1Click(Sender: TObject);
var
x: TStringList;
i: integer;
begin
x := TStringList.Create;
Split('salam; in yek test ast; yousef;', x);
for i := 0 to x.Count -1 do
ShowMessage(x[i]);
x.Free;
end;
فعلا همین!
1- استفاده از اين شي براي ليستي از مقادير رشته اي جفت جفت
2- استفاده براي Split کردن يک رشته
3- استفاده براي تهيه ليست بدون تکرار
4- استفاده براي سورت کردن يک سري از اعداد
5- استفاده در مواقعي که نياز داريم اگر رشته تغييري کرد اتفاقي بيفتد
6- استفاده در ارسال پارامتر هاي رشته اي تعداد بالا به متد يا گرفتن خروجي از متد
------------------------------------------------------------------------
1- مقادير رو به اين صورت وارد کنيد:
N1=Data1
N2=Data2
N3=Data3
.
.
و به اين صورت اونها رو بخونيد:
ST.Names[i]
ST.ValueFromIndex[i]
به همين راحتي!
از اين خاصيت مي تونيد براي توليد فايل هايي مثل INI يا جفت هاي پارامتر و ... و جدا کردن اونها از هم استفاده کنيد.
2- متني داريد شبيه اين:
salam;in teste;yousef zalli;
براي جداکردنش:
ST.Text := StringReplace(TXT, ';', #13#10, [rfReplaceAll]);
:))
3- مقدار Duplicate اين شي رو تنظيم کنيد! خيلي ها از وجود اين پراپرتي بي خبرند.
4- نمونه کد رو ببينيد:
var
i, x: integer;
st: TStringList;
begin
st := TStringList.Create;
st.Sorted := true;
for i := 1 to 30 do
begin
x := RandomRange(1, 1000);
st.Add(Format('%20d', [x]));
end;
ShowMessage(st.Text);
for i := 0 to 29 do
begin
x := StrToInt(Trim(st[i]));
ShowMessage(IntToStr(x));
end;
st.Free;
end;
5- براي اين مورد هم به جاي استفاده از رشته، از يک StringList استفاده کنيد. اين شي رويدادي داره به نام OnChange!!!
6- مثال گوياست:
procedure Split(TXT: string; st: TStrings);
begin
st.Text := StringReplace(TXT, ';', #13#10, [rfReplaceAll])
end;
procedure TForm1.Button1Click(Sender: TObject);
var
x: TStringList;
i: integer;
begin
x := TStringList.Create;
Split('salam; in yek test ast; yousef;', x);
for i := 0 to x.Count -1 do
ShowMessage(x[i]);
x.Free;
end;
فعلا همین!