Jump to page: 1 2
Thread overview
kaynak dosyada terminal komutlarını çalıştırmak
Jun 02, 2020
cos00kun
Jun 02, 2020
cos00kun
Jun 04, 2020
kerdemdemir
Jun 04, 2020
cos00kun
Jun 04, 2020
kerdemdemir
Jun 04, 2020
cos00kun
Jun 04, 2020
kerdemdemir
Jun 04, 2020
cos00kun
Jun 04, 2020
cos00kun
Jun 04, 2020
cos00kun
Jun 04, 2020
cos00kun
Jun 05, 2020
cos00kun
Jun 04, 2020
cos00kun
June 02, 2020

Merhabalar. Windows ve Linux terminal işlemlerinde D dili ile denemeler yapmaya devam ediyorum.
C++ dilinde bazı terminal ve işletim sistem komutlarını kaynak dosyadan çaıştırabiliyorduk;

#include < conio.h>
 ...
 main()
 {
     ...
     clrscr(); // veya system("CLS")

gibi.. böylece program çalışırken terminal ekranını siliyordu.. Aynı şekilde D dilindede C kütüphanelerini kullanmadan bunu sağlayan olanaklar var mı )

Not: Eğer derdimi tam anlatamadıysam diye bir açıklama yapayım.. terminal ekranında 2020 bir matris alan içerisinde ekranın sürekli tazelendiği ve bu matrisin 10*10 kısmında yani ortasında bir x işareti olan ve sağa/sola yukarı ve aşağıya ok tuşlarına bastıkça bu x işaretinin hareket edeceği küçük bir programcık yapmaya çalışıyorum.. Burada ekranımı 'char ekran[][] '... şeklinde matrisleyebilirim ama sorun ekran temizleme kısmında ve tazeleme kısmında oluyor.. Bu programcığıbir zamanlar C++ ile 1 günlük basit bir çalışmayla net şekilde başardığımı hatırlıyorum ama amaç D olanakları ile yapmak :) *

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

June 02, 2020

o boş zamanı bulun ben anlamam! :-p
Dediğiniz gibi yapıyorum ama konforlu olmuyor.. Yinede boş zamanınızda en azından linuxta da aynı windows ortamındaki "'windows.h'" kütüphanesinde tanımlanmış olan clrs() tarzı fonksiyonları öğrenmek isterim..
şimdi öncelikle hedefim çerçeve içinde hareket yönlerini geliştirme.. Daha sonra bir çerçevede fizik kurallarına göre hareket eden topçuklar (şimdilik karakter " * " ) arasında bizim kontrolümüzdeki bir topun onlara çarpmasını engelleme.. daha sonra bunları işlevlerden çıkartıp sınıf, yapı gibi gelişmiş ortama taşıma en sonunda da eğer becerebilirsem SFMLD ortamında bu basit oyunu geliştirme olacak.. eğer baktım SFMLD yi hala kurup çalıştırmayı başaramadım olmadı daha basit bir kütüphane ile deneyeceğim.. Bakalım hayırlısı..

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

June 02, 2020

Bu konuda konuşacak çok kavram var ama şu anda yazacak zamanım yok. Özetle: Bu dillerin yaşadıkları ortamlarda terminal diye bir kavram olmadığından bu olanağı da sunmazlar. (C++'ın kendisinde de yoktur; çalıştığın ortamda bulunan bir kütüphanenin olanağı o.)

Bu günlük önerim şu: Ekranı silip tekrardan çizmek yerine çizilecek şeyleri tekrardan yazdır. Eski çizilenler yukarıya kaysınlar. Yani ekranlarını alt alta çizdir. Sonra pencerenin boyutlarını elinle değiştirip sanki clrsrc() işletilmiş gibi görünmesini sağla.

Bugünlük öyle. Yarın başka öneriler gelebilir. :)

Ali

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

June 04, 2020

Ben yanlis anliyor olabilirmiyim acaba yapmak istedigin sunun gibi birsey mi ?

bool CloseSocket(string uniqStreamName)
{
import std.process : spawnProcess, executeShell;
//ivir zivir
string command = "kill -9 $(ps aux | grep -i " ~ uniqStreamName ~ " | awk '{ print $2 }')";
executeShell(command);
//ivir zivir devam
}

Ben D'nin icinden shell komutlari cagiriyorum. Acaba bu dedigini yapan bir shell komutu varmidir onu cagirsan olur mu?

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

June 04, 2020

Benim yazdigim D kodu idi,

Sen baslikta "terminal komutlari" yazinca bende linux shell komutlari diye algiladim. Ve D dilinde nasil kill ve ps aux gibi komutlari calistirdigimi gosteryim dedim.

Simdi anladim linux komutu calistirmak istemedigini sonra bir daha baktim internete sunu buldum :

https://dlang.org/phobos/core_stdc_stdlib.html
nothrow @nogc @system int system(scope const char* string);

Bu isini gorur helhalde.

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

June 04, 2020

Alıntı (kerdemdemir):

>

Ben yanlis anliyor olabilirmiyim acaba yapmak istedigin sunun gibi birsey mi ?

bool CloseSocket(string uniqStreamName)
{
    import std.process : spawnProcess, executeShell;
    //ivir zivir
    string command = "kill -9 $(ps aux | grep  -i " ~ uniqStreamName ~ " | awk '{ print $2 }')";
    executeShell(command);
    //ivir zivir devam
}

Ben D'nin icinden shell komutlari cagiriyorum. Acaba bu dedigini yapan bir shell komutu varmidir onu cagirsan olur mu?

Yukardıdaki işlemin ne yaptığını ve hangi dilde yazıldığını bilmiyorum ama hemen hemen amacım o diyebiliriz anlattıklarına göre.. benim tam olarak demek istediğim şu; D programı satır satır bir şeyler yazdı diyelim program çalıştığında şimdi ben bu terminalde çalışmış ve aşağı doğu akmış satırlarda atıyorum tuşa bastıkça bir üst satıra veya alt satıra cursor'u konumlandırmasını istiyorum program çalışırken. veya program çalışırken bu satırlardan sonra bir anda terminal ekranınını tamemen silsin ve ilk satıra gelsin istiyorum cursorun konumusunu. Mesela C++ de ekran temizleme işlemini

#include < conio.h>
 ...
 main()
 {
     ...
     clrscr(); // veya system("CLS")

kütüphanesini kullanarak yapabiliyoruz. işte ben de windows veya linuxta bu olanağı yakalama peşindeyim

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

June 04, 2020

Erdem kardeşim sağolasın. Ancak D dili seviyem henüz o noktada olmadığından verdiğin linkteki kullanımları çözemedim..
orada core.stdc.stdlib modülünden bahsediyor anladığım kadarıyla. O modülün kullanımıyla ilgili basit bir örnek yazarsan belki anlayabilirim.

import core.stdc.stdlib; // attım bunu belkide başka birşeydir

void main() {
.. // nothrow @nogc @system int system(scope const char* string); nerede ve nasıl kullanacağız ???
...
}

gibi gibi..

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

June 04, 2020

Su işini görür mü acaba?

import core.stdc.stdlib;

void main()
{
   system("clear");
}

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

June 04, 2020

Alıntı (kerdemdemir):

>

Su işini görür mü acaba?

> import core.stdc.stdlib;
>
> void main()
> {
>     system("clear");
> }
> ```

>

Erdem denemedim evde deneyeceğim ama eğer çalışırsa aradığım tam da bu :)
Bu arada ıssız adadaki 2 kişiye bir üçüncü arkadaşın katılması güzel  :-D
Ben Cuma, Adanın gediklisi Robinson Crusoe.. :-p  :-p

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

Ali hocam her zamanki gibi akıcı, anlaşılır ve detaylıca bir öğrenciye ders anlatırmış gibi üşenmeden anlatmışsın.. Sağol var ol :blush:

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

« First   ‹ Prev
1 2