Yorumları: 61
Konuları: 13
Kayıt Tarihi: 17-10-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 478 Acemi
03-07-2017, Saat: 00:57
(Son Düzenleme: 03-07-2017, Saat: 08:07, Düzenleyen: DelphiCan.)
Merhaba arkadaşlar,
iki tane dinamik dizi birleştirmek istiyorum Delphi 7 ile,
bytes: array[0..105] of Byte = (
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00
);
Burdaki byte dizisini başına eklemek istiyorum
$5a, $02, $20, $70, $11, $15, $20, $26,
Delphi de dizi fonksiyonlarında append veya extend diğer programlama dillerindeki gibi yok sanırım, yada ben bulamadım 
Herkese teşekürler şimdiden.
Yorumları: 453
Konuları: 14
Kayıt Tarihi: 07-09-2016
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.1
- Delphi XE7
- Delphi XE2
- Delphi 7
Rep Puanı: 1.833 Programcı
03-07-2017, Saat: 09:33
(Son Düzenleme: 03-07-2017, Saat: 09:36, Düzenleyen: edo.)
İk array'in adı bytes, ikinicinin adı bytes2 ise bytes2'yi bytes'ın üstüne eklemek için bytes'ın elementlerinin indekslerini bytes2'nin element sayısı kadar sayısı kadar arttırıp bytes2'nin elemanlarını da en başa kopyalayabilirsiniz.
Generics ile aşağıdaki gibi kendi çözümlerinizi geliştirebilirsiniz:
https://stackoverflow.com/questions/5755...amic-array
Yorumları: 4.224
Konuları: 379
Kayıt Tarihi: 07-07-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 16.987 Üstad
03-07-2017, Saat: 10:06
(Son Düzenleme: 03-07-2017, Saat: 10:08, Düzenleyen: TescilsizUzman.)
Merhaba,
bytes: array[0..105] of Byte kısmında sabit olarak 106 adet dizi elemanı rezerve edilmiş. Oysaki, bytes değişkeninde 98 adet dizi değeri atanmış.
Dizi tanımlama ile dizi içerik sayısı uyuşmadığından derleme anında bir hata oluşacaktır. Doğal olarak kod ile sonradan 8 elemanlı bir kümeyi bu diziye eklemek mümkün olmayacaktır.
Çözüm olarak;
1- Tanımlama aşağıdaki gibi olmalı,
var
bytes: array of Byte;
const
bytes1: array [0 .. 97] of byte = ($00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
$00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00);
bytes2: array [0 .. 7] of byte = ($5A, $02, $20, $70, $11, $15, $20, $26);
2- İşlem yapmadan önce SetLength(); metodu ile dizi boyutu set edilmeli,
SetLength(bytes, Length(bytes1) + Length(bytes2));
3- Son olarak, Move procedure'ü veya benzer bir döngü ile bytes1 ve bytes2 içeriğini bytes dizisinde birleştirebilirsiniz.
DelphiCan'dır!
Yorumları: 1.572
Konuları: 88
Kayıt Tarihi: 09-08-2016
Rep Puanı: 13.841 Üstad
Move ile ilgili burada bir kaç örnek verilmişti.
There's no place like 127.0.0.1
Yorumları: 61
Konuları: 13
Kayıt Tarihi: 17-10-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 478 Acemi
Herkese Çok teşekür ederim cevap verdiğiniz için.
|