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...
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;
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..
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
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.