Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Telefon Optimize
#1
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,
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
WWW
Cevapla
#2
Sadece Türkiye mi? Eğer öyle ise son 10 haneyi alabilirsin.
Ağlarsa kablosuz ağlar, gerisi yerel ağlar...
Cevapla
#3
(30-12-2016, Saat: 16:44)yhackup Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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;

Amatör Küme Bilgisayar Programcısı
WWW
Cevapla
#4
(30-12-2016, Saat: 17:01)barutali Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(30-12-2016, Saat: 16:44)yhackup Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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 Smile  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;
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
WWW
Cevapla
#5
Ya 444 0 375 türk telekom ararsa ne yapacaksınız Smile

Şahsi fikrimdir ki gelen numarayı uzunluğunu bulman ve case ile senaryoya göre çıktı vermen
Alıntı:
yarumdan ayrildum gözlerum nemli nemli 

rakı haramdur diye çay içtum demli demli...Heart 
Cevapla
#6
(30-12-2016, Saat: 17:31)esrehmaan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Ya 444 0 375 türk telekom ararsa ne yapacaksınız Smile

Ş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ı Wink
çünkü +90545xxx şeklinde giren de oluyor
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
WWW
Cevapla
#7
(30-12-2016, Saat: 17:41)yhackup Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(30-12-2016, Saat: 17:31)esrehmaan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Ya 444 0 375  türk telekom ararsa ne yapacaksınız Smile

Ş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ı Wink
çü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 Smile
Alıntı:
yarumdan ayrildum gözlerum nemli nemli 

rakı haramdur diye çay içtum demli demli...Heart 
Cevapla
#8
(30-12-2016, Saat: 17:52)esrehmaan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(30-12-2016, Saat: 17:41)yhackup Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.trim ve replace o işleri hallediyor yazdım onları Wink
çü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 Smile

Ö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
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
WWW
Cevapla
#9
İ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.
WWW
Cevapla
#10

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   Smile
Alıntı:
yarumdan ayrildum gözlerum nemli nemli 

rakı haramdur diye çay içtum demli demli...Heart 
Cevapla




Konuyu Okuyanlar: 1 Ziyaretçi