October 18, 2017

wetransfer'e üye olmak istemediğimden Excel dosyasını göremedim ama sanırım daha önce baktığımız .ct dosyası sayfası yeterli olmalı. Tembellik ettim ve VuEntity yapısını tamamlamadım ama gerisi senin için kolay olmalı: 4 bayt için int veya uint, 2 bayt için short veya ushort, 1 bayt için byte veya ubyte, vs.

import std.stdio;
import std.string;
import std.exception;

// Bkz: https://pmc.editing.wiki/doku.php?id=falcon4:file_formats:ct_file

align(1)
struct VuEntity {
align(1):
   ushort id;
   ushort collisionType;
   float collisionRadius;
   byte[8] classInfo;
   // vs....
   // Bütün türleri yazmak istemediğimden bu türün büyüklüğünü
   // belgede belirtilen 60'a tamamlıyorum
   byte[44] doldurma;
}

// Denetleyelim
static assert (VuEntity.sizeof == 60);

align(1)
struct Falcon4Entity {
align(1):
   VuEntity vuClassData;
   short[7] visType;
   short vehicleDataIndex;
   byte dataType;
   uint dataPtr;
}

// Denetleyelim
static assert ((Falcon4Entity[2]).sizeof == 81 * 2);

Falcon4Entity[] oku(string dosyaİsmi) {
   auto dosya = File(dosyaİsmi, "rb");

   short adet;
   auto okunanAdet = dosya.rawRead((&adet)[0..1]);
   enforce(okunanAdet.length == 1, "HATA: Adet değerini okuyamadım");

   writefln("%s adet nesne okuyorum", adet);

   auto entries = new Falcon4Entity[](adet);
   auto okunanEntries = dosya.rawRead(entries);
   enforce(okunanEntries.length == adet,
           format("HATA: %s yerine yalnızca %s nesne okudum", adet, okunanEntries.length));
   return entries;
}

int main(string[] args) {
   if (args.length != 2) {
       stderr.writefln("Kullanım: %s <dosya ismi>", args[0]);
       return 1;
   }

   Falcon4Entity[] entries = oku(args[1]);

   writefln("Elimde %s adet nesne var: %s", entries.length, entries);

   return 0;
}

Ancak, daha önce de konuştuğumuz endianness konusu hâlâ geçerli. Bu tür bir okuma ancak okuyan bilgisayar dosyayla uyuştuğunda doğrudur.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 18, 2017

Alıntı (cos00kun):

>

kodlamada bazı kavramlara uzak olsamda

align(1)'ler, üyelerin (ve struct nesnelerinin) 1 bayta hizalanacaklarını belirliyor. Bu arada, kodu hiç denemedim; içinde her tür hata olabilir. :)

Alıntı:

>

D konuşacağız ancak kafanızı çok ağırtırım haberiniz olsun

Burada amaç zaten D konuşmak. :)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 18, 2017

Ali hocam şöyle bir hata mesajı aldım

https://i.hizliresim.com/g92RQZ.png (https://hizliresim.com/g92RQZ)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 19, 2017

Tabi şuna benzer şekilde çalıştırman gerekiyor ;-)

'$ ./dosyalama FALCON4.ct'

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 19, 2017

Alıntı (erdem):

>

Tabi şuna benzer şekilde çalıştırman gerekiyor ;-)

'$ ./dosyalama FALCON4.ct'

Neden FALCON4.ct ekle çalıştırmamız grektiğini anlamadım ancak bunu program içinden çağıramazmıyızki ? Ben herhangi bir IDE ile programı yazdığımda sorun vermezmi bu durum..

Bu arada gtkd dökümanlarınızıda okumaya başlıyorum ancak D dili ve eklentilerini yani IDE leri, kütüphaneleri vesaire kurması okadar çok problemliki windowsta.. ayarlaması bir dert kurması bir dert hepsini :( ancak gördüğüm kadarıyla D dilinin kolay ve basit kodalanabilirliğini bu kütüphanedede görebiliyorum... her ne kadar henüz D ile gtkd yi tam örtüştürememiş olsamda bu pazar IDE ve kütüphane kurma olayını tam olarak çözmeyi umud etmekteyim..

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 19, 2017

Alıntı (cos00kun):

>

Alıntı (erdem):

>

Tabi şuna benzer şekilde çalıştırman gerekiyor ;-)

'$ ./dosyalama FALCON4.ct'

Neden FALCON4.ct ekle çalıştırmamız grektiğini anlamadım ancak bunu program içinden çağıramazmıyızki ?

Olur tabi ilk gösterdiğim örnekteki gibi bir dosya adı verebilirsin.

Alıntı (cos00kun):

>

'$ ./dosyalama FALCON4.ct'
her ne kadar henüz D ile gtkd yi tam örtüştürememiş olsamda bu pazar IDE ve kütüphane kurma olayını tam olarak çözmeyi umud etmekteyim..

Bu verdiğim bağlantıdaki kütüphane hep Linux için. Bende de windows olmadığı için gtkd'yi derleyeyim.

Normalde gtkd'yi indirdikten sonra bir yarım saat kadar derlemek gerekiyor. Ama benim verdiğim bağlantıdakiler 32 ya da 64 bit Linux için hazır derlenmiş.

Denemek için sanal makinede ya da normal olarak Ubuntu kullanabilirsin. Başka pencereli kütüphaneler de var DWT vs.. Ama ben pek deneyemedim.

Ya da direkt Gtkd'yi kullanmak istersen (benim paylaştığım sürüm biraz yerelleştirilmiş) buradan indirebilirsin:

https://gtkd.org/download.html

Geliştirme ortamı olarak ben Emacs kullanıyorum. Şöyle bir kaç tane geliştirme ortamına bakmıştım. VS Code, Atom, Sublime vs.

IDE deyince benim aklıma Android Studio gibi ağır hantal yazılımlar geliyor. 8GB tavsiye edilen bellek ihtiyacı var sanırım. Bunlarla kod yazmaya çalışmak da direksiyonu zor dönen ağır bir kamyon kullanmaya benzetilebilir.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 19, 2017

Ben Gtkt nin windows runtimesini kurdum... Bazı ayarlarla dmdnin senkronize olması gerekiyor ancak bu D dili ile ilgili Kendi D derleyicisi haric hiç bir programı Windowsta daha sorunsuzca kurabilmiş değilim :)
IDElerden tutunda kütüphanelere kadar.. Sanki D dili sadece Linux için yazılmış.. Boş bir zamanımda yani bu pazar bu konuları halledeceğim inşAllah..

Emacs bence mükemmel bir program ancak ben hep IDE li ortamlara alıştığım için şimdilik biraz zor geliyor kullanması bana.. Ama deneyeceğim eski bir Dos kullanıcısı olarak :)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 20, 2017

@cos00kun visual studio 2015'in ucretsiz surumunu(community surumu) indirip bir visual studio eklentisi olan visualD(http://rainers.github.io/visuald/visuald/StartPage.html) kurabilirsin eger windows da isen. Ben oyle yapiyorum D projelerimde windows'da. Tamamlama, renklendirme ve debug destegi var. Setuplar(bildigin next, next , next) sonrasi bende sorunsuz calismisti.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 20, 2017

Emacs in D diline desteği varmı ? yada auto-complate gibi kodu yazarken tanıyıp tamamlama gibi ??

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 20, 2017

Visual studio community var ve kullanıyorum visuald eklentisiyle beraber... ancak visual studio dışında farklı daha basit ama etkili bir IDE arıyorum D için çünkü zaman zaman linuxada geçtiğimde yabancılık çekmemek için her iki platformdada üretim yapacak tek program arıyorum.. sorun edilecek bir konu değil benim için aslında.. Şu anda sizin bahsettiğiniz gibi yapıyorum. Teşekkürler desteğin için kerdemdemir..

Bu arada C++ de bayağı yol almamdan dolayı D ile ilerlemem çok ama çok hızlı oluyor.. daha önce D dilinde anlayamadığım boşluk okumaları vesaire gibi konular dahil bayağı hızlı şekilde ilerliyorum bakalım..

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]