Merhaba Arkadaşlar,
Editbox ıcınde girilen bilgideki en sondakı boslugun konumu yani soldan kacıncı karakterde oldugunu anlayabiliceğim önerebiliceğiniz kısa bir yol varmıdır ?
Aslında İsim ve Soyisim bilgisinden sadece soyadı bölümünden en baştaki 3 karakter koparmak ıstıyorum pos ıle alıyorum ama 3 parcalı olunca sıkıntı oluyor.
var
SL: TStringList;
begin
SL := TStringList.Create;
try
SL.Delimiter := ' ';
SL.DelimitedText := 'Ali Veli 49 elli';
// Bu şekilde kullandıktan sonra örneğin SL.Strings[1]'in değeri Ali, SL.Strings[2]'nin değeri 49 vs. olur.
finally
SL.Free;
end;
Bir ara bana da lazim olmuştu. Mantik olarak yaziyi tersten yazdirdim. boylece soyad en basa gecti. boylece istediğim veriyi alabilmistim.
SimaWB benden once yazmis. O yontemi bilmiyordum. Teşekkürler.
Geri dönüşleriniz için çok sağolun arkadaşlar. İhtiyacı olana kullandığım şeklini paylaşabilirim.
Kimin ne zaman ihtiyacı olacağı belli olmaz. Siz paylaşın lütfen; muhakkak birisinin işine yaracaktır
var
SL:TStringList;
begin
DemirBasno:= txtKitaptur.Properties.Items[txtKitaptur.ItemIndex].Value; //KitapTur
SL:=TStringList.Create; //Yazarın soyismi
try
SL.Delimiter:=' ';
SL.DelimitedText:=txtYazari.Text;
if SL.Count>2 then
DemirBasno:= DemirBasNo+'/'+LeftStr(SL.Strings[SL.Count-1],3);
else
DemirBasno:= DemirBasNo+'/'+LeftStr(SL.Strings[1],3);
finally
SL.Free;
end;
İşime yarayan bölümü ise Ad-Soyad Textbox ıcın Soyadı bolumunun ılk 3 karakterıne ıhtıyacım vardı. Girilen değerin boslukları sayarak eger 3 parcadan oluşuyor ise sondakı boslukdan sonra 3 karakter al eger yok ise ilk boslukdan 3 karakter al dıyerek devam et.
(07-03-2017, Saat: 12:31)kasparov58 Adlı Kullanıcıdan Alıntı: [ -> ]SL:TStringList;
begin
DemirBasno:= txtKitaptur.Properties.Items[txtKitaptur.ItemIndex].Value; //KitapTur
SL:=TStringList.Create; //Yazarın soyismi
try
SL.Delimiter:=' ';
SL.DelimitedText:=txtYazari.Text;
if SL.Count>2 then
DemirBasno:= DemirBasNo+'/'+LeftStr(SL.Strings[2],3);
else
DemirBasno:= DemirBasNo+'/'+LeftStr(SL.Strings[1],3);
finally
SL.Free;
end;
İşime yarayan bölümü ise Ad-Soyad Textbox ıcın Soyadı bolumunun ılk 3 karakterıne ıhtıyacım vardı. Girilen değerin boslukları sayarak eger 3 parcadan oluşuyor ise sondakı boslukdan sonra 3 karakter al eger yok ise ilk boslukdan 3 karakter al dıyerek devam et.
eğer dört yada daha fazla parçadan oluşur ise ne olacak. SL.Strings[2] yerine SL.Strings[SL.Count-1] yazarak kullanırsanız daha doğru olacaktır.
SL:=TStringList.Create; //Yazarın soyismi
try
SL.Delimiter:=' ';
SL.DelimitedText:=txtYazari.Text;
if SL.Count>0 then
DemirBasno:= DemirBasNo+'/'+LeftStr(SL.Strings[SL.Count-1],3);
finally
SL.Free;
end;
(07-03-2017, Saat: 13:54)AhmetBi Adlı Kullanıcıdan Alıntı: [ -> ]eğer dört yada daha fazla parçadan oluşur ise ne olacak. SL.Strings[2] yerine SL.Strings[SL.Count-1] yazarak kullanırsanız daha doğru olacaktır.
O zaman hep aynı değeri elde etmeyecek mi? Metinden 2 parça kullanıyor, senin yaptığın gibi olursa hep tek parçanın değerini okuyacak gibi görünüyor.
(07-03-2017, Saat: 13:54)AhmetBi Adlı Kullanıcıdan Alıntı: [ -> ] (07-03-2017, Saat: 12:31)kasparov58 Adlı Kullanıcıdan Alıntı: [ -> ]SL:TStringList;
begin
DemirBasno:= txtKitaptur.Properties.Items[txtKitaptur.ItemIndex].Value; //KitapTur
SL:=TStringList.Create; //Yazarın soyismi
try
SL.Delimiter:=' ';
SL.DelimitedText:=txtYazari.Text;
if SL.Count>2 then
DemirBasno:= DemirBasNo+'/'+LeftStr(SL.Strings[2],3);
else
DemirBasno:= DemirBasNo+'/'+LeftStr(SL.Strings[1],3);
finally
SL.Free;
end;
İşime yarayan bölümü ise Ad-Soyad Textbox ıcın Soyadı bolumunun ılk 3 karakterıne ıhtıyacım vardı. Girilen değerin boslukları sayarak eger 3 parcadan oluşuyor ise sondakı boslukdan sonra 3 karakter al eger yok ise ilk boslukdan 3 karakter al dıyerek devam et.
eğer dört yada daha fazla parçadan oluşur ise ne olacak. SL.Strings[2] yerine SL.Strings[SL.Count-1] yazarak kullanırsanız daha doğru olacaktır.
SL:=TStringList.Create; //Yazarın soyismi
try
SL.Delimiter:=' ';
SL.DelimitedText:=txtYazari.Text;
if SL.Count>0 then
DemirBasno:= DemirBasNo+'/'+LeftStr(SL.Strings[SL.Count-1],3);
finally
SL.Free;
end;
Dönüşünüz için teşekkür ederim.Doğru halini paylaştım.