Selamlar,
Girilen telefon numarasına en başarılı nasıl optimize edebilirim.
Telefon numarası nasıl girilirse girilsin, 5554443322 şeklinde çıktı alacak bir fonksiyon yazmam gerekiyor
Örnek veri girişleri şu şekilde olabilir
00905554443322,
+905554443322,
905554443322,
0554443322,
Sadece Türkiye mi? Eğer öyle ise son 10 haneyi alabilirsin.
(30-12-2016, Saat: 16:44)yhackup Adlı Kullanıcıdan Alıntı: [ -> ]Selamlar,
Girilen telefon numarasına en başarılı nasıl optimize edebilirim.
Telefon numarası nasıl girilirse girilsin, 5554443322 şeklinde çıktı alacak bir fonksiyon yazmam gerekiyor
Örnek veri girişleri şu şekilde olabilir
00905554443322,
+905554443322,
905554443322,
0554443322,
uses System.StrUtils;
var
FTmp : String;
begin
FTmp := '00905554443322';
FTmp := RightStr(FTmp, 10); // Sağdan sola 10 karakter al.
end;
(30-12-2016, Saat: 17:01)barutali Adlı Kullanıcıdan Alıntı: [ -> ] (30-12-2016, Saat: 16:44)yhackup Adlı Kullanıcıdan Alıntı: [ -> ]Selamlar,
Girilen telefon numarasına en başarılı nasıl optimize edebilirim.
Telefon numarası nasıl girilirse girilsin, 5554443322 şeklinde çıktı alacak bir fonksiyon yazmam gerekiyor
Örnek veri girişleri şu şekilde olabilir
00905554443322,
+905554443322,
905554443322,
0554443322,
uses System.StrUtils;
var
FTmp : String;
begin
FTmp := '00905554443322';
FTmp := RightStr(FTmp, 10); // Sağdan sola 10 karakter al.
end;
Bende böyle bir fonksiyon yapmıştım
Kulağımı tersten tutmuşum. - RightStr(FTmp, 10); // Sağdan sola 10 karakter al.- bu fonksiyonu bilmiyordum
function TForm2.PhoneOpt(Phone: string): string;
var
i,s:integer;
begin
Phone := Trim(StringReplace(Phone, '+', '', [rfReplaceAll]));
if (Length(Phone) < 11) then Result := Phone;
s := Length(Phone)-1;
if (Length(Phone) > 10 ) then
begin
for I := 0 to 9 do
begin
Result := Phone.Chars[s]+ Result;
Dec(s);
end;
end;
end;
Ya 444 0 375 türk telekom ararsa ne yapacaksınız
Şahsi fikrimdir ki gelen numarayı uzunluğunu bulman ve case ile senaryoya göre çıktı vermen
(30-12-2016, Saat: 17:31)esrehmaan Adlı Kullanıcıdan Alıntı: [ -> ]Ya 444 0 375 türk telekom ararsa ne yapacaksınız
Şahsi fikrimdir ki gelen numarayı uzunluğunu bulman ve case ile senaryoya göre çıktı vermen
trim ve replace o işleri hallediyor yazdım onları
çünkü +90545xxx şeklinde giren de oluyor
(30-12-2016, Saat: 17:52)esrehmaan Adlı Kullanıcıdan Alıntı: [ -> ] (30-12-2016, Saat: 17:41)yhackup Adlı Kullanıcıdan Alıntı: [ -> ]trim ve replace o işleri hallediyor yazdım onları
çünkü +90545xxx şeklinde giren de oluyor
function NumaraDuzelt(GelenNo : string) : String;
begin
Case length(Gelenno) of
1..10 : result:=Gelenno ;
11..200: result:=RightStr(GelenNo,10);
End
bu daha basit zaar
Öyle Görünüyor ellaaam peki gelen numara içerisinden rakam dışında olanları tek seferde nasıl silerim örneğin kullanıcı 4442525? gibi girdi veya 444.25.25 gibi numara dışındaki herşeyi temizyeyeyim
İyi akşamlar. Numara türkiye için kullanacaksan bir combobox koy, içerisine operatör numaralarını yaz. Karşısınada umberedit koy maxlength belirle.
uses System.SysUtils, System.Character;
function Filter(const Input: string; const Keep: TFunc<Char, Boolean>): string;
var
C: Char;
N: Integer;
begin
SetLength(Result, Length(Input));
N := 0;
for C in Input do
if Keep ( C ) then
begin
inc(N);
Result[N] := C;
end;
SetLength(Result, N);
end;
function IsNotLetter(C: Char): Boolean;
begin
Result := not C.IsLetter;
end;
function NumaraDuzelt(GelenNo : string) : String;
begin
Case length(Gelenno) of
1..10 : result:=Filter(Gelenno, IsNotLetter) ;
11..200: result:=RightStr(Filter(GelenNo, IsNotLetter),10);
End
End;
Buda öyle Ellamm