Forum: Ders Arası RSS
C++'ta kullanılan System(); Fonksiyonu Karşılığı Nedir?
Sayfa:  1  2  sonraki 
Ali #1
Kullanıcı başlığı: Python / Java / C,C++  / D
Üye Ock 2011 tarihinden beri · 84 mesaj · Konum: Orjin
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: C++'ta kullanılan System(); Fonksiyonu Karşılığı Nedir?
Yani biraz aradimda yanlis aradim sanirim kaynaga ulasamadim.

Bildiginiz gibi

C++ icin

#include <iostream>
#include <cstdlib>
 
int main()
{
    system("linux bash komutum ornegin");
}

şeklinde bir kullanım var.

Bunu D ile ilişkilendirmek istiyorum.

bash zenity ya da Py TK ile yazdigim kodlari C ve C++ dilindeki gibi bir system fonksiyonu varsa ona atamak istiyorum. Bunu nasıl sağlarım?
Ali
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
std.process içinde system(). C'den biraz daha kullanışlı: işlettiği programın dönüş değerini olduğu gibi döndürüyor. (C'de ise o değerin WEXITSTATUS makrosundan geçirilmesi gerekir.)

Yine aynı modülde shell() var: işlettiği programın standart çıkışını döndürüyor.

system()'ın benzeri olan execv, execve, execvp, execvpe de var.

Ali
Ali #3
Kullanıcı başlığı: Python / Java / C,C++  / D
Üye Ock 2011 tarihinden beri · 84 mesaj · Konum: Orjin
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Dediginizi basit bir ornekle yapinca oldu

Merakim su

ben bash kodlarini calistirabiliyorum

import std.stdio;
import std.process;
 
void main()
{
    system("zenity --info");
}

ama python kodlarını da çalıştırabilir miyim?

.py dosyasını

python dosya.py

seklinde cagirarak degil

print ("Selam")

şeklinde
Ali
Kadir Can #4
Üye Haz 2010 tarihinden beri · 413 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Python yorumlayıcısını kullanmadan olmaz gibi geliyor.
acehreli (Moderatör) #5
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Python/C API ile C (ve C++) programlarından Python kodları çağrılabiliyor. Onun D'de kullanılabilmesi için o kütüphanenin D ilintilerinin yazılmış olması gerekir.

Hızlıca araştırdım ve bunun tersini yapan, yani Python'dan D kodlarını çağırmayı sağlayan pyd'yi buldum:

  http://dsource.org/projects/pyd

Ne yazık ki çok eski olduğu için herhalde ancak D1 ile çalışıyordur. O sayfada tam istediğimiz gibi D'den Python'u çağırmaya yarayan ama yine çok eski olan şu modülü buldum:

  http://dsource.org/projects/pyd/browser/trunk/infrastructu…

Tabii ki hiç deneyimim yok. :)

Ali
Ali #6
Kullanıcı başlığı: Python / Java / C,C++  / D
Üye Ock 2011 tarihinden beri · 84 mesaj · Konum: Orjin
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Tesekkur ederim hocam (:

GtkD'ye biraz yabanciyim acikcasi.

Dershane guncellenirse biraz ogrenebilirim.

Ama o ana kadar ki uygulamalarda ya zenity ya da tkinter kullanayim diyordum.

Paylastiginiz 2. linkteki python.d header file'ına baktımda öldüm sandım kaç satır o :o inceleyecektim birde

@Kadir CAN

bende dedigin gibi denedim ama yine python yorumlayıcısını

python komutu ile cagiriyorsun.

import std.stdio;
import std.process;
 
void main()
{
    system("python a = 13 print a");
}

Hata vermeden derleniyor

ancak ./deneme

şeklinde çağırdığımda python

ile alakadar şu hatayı veriyor

ali@ali:~/Masaüstü$ dmd a.d
ali@ali:~/Masaüstü$ ./a
  File "a", line 1
SyntaxError: Non-ASCII character '\x98' in file a on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
ali@ali:~/Masaüstü$

Ali
acehreli (Moderatör) #7
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
CWSuskun:
Paylastiginiz 2. linkteki python.d header file'ına baktımda öldüm sandım kaç satır o :o inceleyecektim birde

Ama onların çoğu basit işlev ve yapı bildirimleri. Okuyacak çok az şey var. :)

SyntaxError: Non-ASCII character '\x98' in file a on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

Sanki Python dosyasının kodlaması ile ilgili. Söyledikleri sayfadaki gibi bir "# -*- coding:" satırını eklemek işe yarıyor mu?

Veya orada BOM'dan (byte order mark) bahsediliyor. Dosyayı kaydederken UTF-8 olarak mı kaydediyorsun? Veya metin düzenleyiciye BOM'u ekle veya ekleme diyebiliyor musun?

Ali
Ali #8
Kullanıcı başlığı: Python / Java / C,C++  / D
Üye Ock 2011 tarihinden beri · 84 mesaj · Konum: Orjin
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Evet abi python'un kendi dil algilama kodunu da kattim

degisik secenklerde

utf-8 gibi yani kaydettim olmadi

hatta

#usr/bin/python env

vs. yazip denedim

sadece d ile degil

c, c++ ile yine boyle
Ali
Kadir Can #9
Üye Haz 2010 tarihinden beri · 413 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
CWSuskun;
Oradaki hata daha farklı.Sen python yorumlayıcısını çağırırken ona bir dosya vereceğini garanti ediyorsun.Doğal olarak o da a adlı dosyayı istiyor.Ama sen komut yürütmek istiyorsun.Hata bence burada.
Bu mesaj Kadir Can tarafından değiştirildi; zaman: 2011-06-28, 03:14.
Ali #10
Kullanıcı başlığı: Python / Java / C,C++  / D
Üye Ock 2011 tarihinden beri · 84 mesaj · Konum: Orjin
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Baska turlu nasil cagircagimi bilemedim :(
Ali
Bu mesaj Ali tarafından değiştirildi; zaman: 2011-06-28, 03:19.
acehreli (Moderatör) #11
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Güzel gördün Kadir Can! :)

CWSuskun, -c seçeneği imiş:

    system("python -c 'a = 13; print a'");

Acaba sende ayrıca 'a' isminde bir dosya mı var? Python onu buluyor ve onun kodlamasını mı beğenmiyor?

Ali
Ali #12
Kullanıcı başlığı: Python / Java / C,C++  / D
Üye Ock 2011 tarihinden beri · 84 mesaj · Konum: Orjin
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
calistirmayi ogrendik abi calisiyor tek hatasi girinti hatasi sanirim syntax'ta hata buldu (:

  File "<string>", line 1
    a = 13 print a
               ^
SyntaxError: invalid syntax
Ali
Kadir Can #13
Üye Haz 2010 tarihinden beri · 413 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #11
Teşekkürler Ali Bey.
Yalnız komut satırında( Windows )
python -c 'a=13 print a'
komutunu verince çıktı dönmüyor.Sanırım sadece a=13 kısmını yürütüyor.
Bu mesaj Kadir Can tarafından değiştirildi; zaman: 2011-06-28, 08:54.
acehreli (Moderatör) #14
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Noktalı virgülün gücüne saygı duyuuun! :-p

Ali
Kadir Can #15
Üye Haz 2010 tarihinden beri · 413 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Noktalı virgülün gücü sorunu çözdü. :D
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Sayfa:  1  2  sonraki 
Forum: Ders Arası RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-18, 17:20:20 (UTC -08:00)