Delphide Serilot Girişi hk. Yardım

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
sodofb
Üye
Mesajlar: 4
Kayıt: 05 Ara 2011 09:59

Delphide Serilot Girişi hk. Yardım

Mesaj gönderen sodofb »

Merhaba arkadaşlar. Delphide yapmaya çalıştığım programın içinde olması gereken seri lot kodunda sorun yaşıyorum. Aşağıdaki kodu denedim fakat seri 9-10 basamaktan fazla olunca "-572589576" gibi sonuç veriyor ama benim 18 basamak kullanmam gerekir. Bu konuda yardımcı olurmusunuz ? Şimdiden teşekkür ederim...

Kod: Tümünü seç

var
bas,son:int64;
i:int32;
begin

form2.ADOTable2.Edit;
bas:=StrToInt64(edit1.Text);
son:=StrToInt64(edit2.Text);
for i := bas to son do  cxdbmemo1.Lines.Add(IntToStr(I))

end;
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: Delphide Serilot Girişi hk. Yardım

Mesaj gönderen vkamadan »

Merhaba ,
viewtopic.php?f=19&t=2060 burdaki @husonet in yazdığı çok faydalı fonksiyonu kullanarak basamaktan bağımsız bir şekilde alphanumeric olarak arttırım yapabilirsiniz.
AAAA--> AAAB , A0001--> A0002 vb..
Volkan KAMADAN
www.polisoft.com.tr
sodofb
Üye
Mesajlar: 4
Kayıt: 05 Ara 2011 09:59

Re: Delphide Serilot Girişi hk. Yardım

Mesaj gönderen sodofb »

Cevabın için teşekkürler ama bu fonksiyondada yapmak isdedigim olmuyor. Yani for döngüsündeki i integerin herhangi bir seriden örneğin 2509001125063330 arttırmaya çalıştığım zaman - sonuçlu sayı alıyorum. Amacım 16 basamaklı seri başı ve seri sonunu sıralamak.
örnek;
edit1.text(seribaşı):2509001125063330
edit2.text(serisonu):2509001125063335
button1.click

memo1.textdeki sonuç;
2509001125063330
2509001125063331
2509001125063332
2509001125063333
2509001125063334
2509001125063335

ama bir türlü bu sonucu yaptıramadım.
Aldığım sonuçlar farklı anlamsız - sayılar..
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Delphide Serilot Girişi hk. Yardım

Mesaj gönderen SimaWB »

Kod: Tümünü seç

while baslangic < son+1 do
  begin
    memo1.Lines.Add(IntToStr(bas));
    Inc(bas);
  end;
There's no place like 127.0.0.1
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Delphide Serilot Girişi hk. Yardım

Mesaj gönderen thelvaci »

Sanırım sorun 64 bitlik bir veriyi 32 bitlik bir değişkene atamanızdan kaynaklanıyor. Dolayısı ile veri doğal olarak kırpılacaktır. Bir döngüye girmeniz icap etmiş ve for döngüsü tercih etmişsiniz, Int64 bir değişken ile döngüye girmeye kalktığınızda ise muhtemeldir ki; "For loop control variable must have ordinal type" hata mesajını almışsınızdır, bu sebeple bir 32 bit değişken tercih ettiniz sanırım. Ama 32 bitlik değişkene 64 bitlik bir veri aktaramazsınız siz de takdir edersiniz ki. Dolayısı ile döngünüzü; for ile değil de while ile yaparsanız ve değişkeninizi de 32 bit değil de 64 bit yaparsanız sorununuz çözülecektir.
sodofb
Üye
Mesajlar: 4
Kayıt: 05 Ara 2011 09:59

Re: Delphide Serilot Girişi hk. Yardım

Mesaj gönderen sodofb »

SimaWB yazdı:

Kod: Tümünü seç

while baslangic < son+1 do
  begin
    memo1.Lines.Add(IntToStr(bas));
    Inc(bas);
  end;
Ilginiz icin tesekkurler arkadaslar. Sorunum sayenizde cozuldu.
Cevapla