String parcalara ayırma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

String parcalara ayırma

Mesaj gönderen greenegitim »

Merhaba arkadaşlar elimde excelde karışık yaklaşık 20000 tane telefon numarası var
Aşağıdaki örnek ayraç X numaraların başına ve sonuna da ben X ekledim ve excelden adres tablomdaki telefon alanına yükledim yapmak istediğim
tablo sonuna kadar döngü açıp her kayıtaki X-1 kadar da döngü açıp tel1 tel2 tel3 gibi alanlara bu numaraları ayrıştırmak.
X5321111111X5350000000X2120000000X
X1111111X8808080X
X05325323232X8830000X8888888X
örnekteki ilk kayıtın sonucu şu şekilde olması lazım
telefon alanında X5321111111X5350000000X2120000000X
Tel1 alanında 5321111111
tel 2 alanında 5350000000
tel3 alanında 2120000000

X ler arasındaki kısımları nasıl alabilirim.
Mücadele güzelleştirir!
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: String parcalara ayırma

Mesaj gönderen csunguray »

Kod: Tümünü seç

var
  StrList1: TStringList;
  Sayac: Integer;
begin
  StrList1 := TStringList.Create;
  try
    // X harfleri değiştiriliyor 
    StrList1.Text := StringReplace('X5321111111X5350000000X2120000000X', 'X', #13#10, [rfReplaceAll, rfIgnoreCase]);
    for Sayac := 0 to StrList1.Count - 1 do
    begin
      if StrList1[Sayac] > '' then
      begin
        ShowMessage('Telefon: ' + StrList1[Sayac]);
      end;
    end;
  finally
    StrList1.Free;
  end;
end;
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: String parcalara ayırma

Mesaj gönderen SimaWB »

TStringList'in Delimiter ve DelimitedText özelliklerini kullanabilirsin. Örneğin;

Kod: Tümünü seç

  sl := TStringList.Create;
  sl.Delimiter :='X';
  sl.DelimitedText := 'X5321111111X5350000000X2120000000X';
Böylece sl.Strings[Index] şeklinde telefon numaralarına ulaşabilirsin. Tek dikkat etmen gereken; başta ve sonda X olduğu için TStringList'in ilk ve son elemanı boş olacaktır.
There's no place like 127.0.0.1
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: String parcalara ayırma

Mesaj gönderen greenegitim »

teşekür ederim csunguray hocam kod işimi gördü.
Mücadele güzelleştirir!
Cevapla