Forum: Ders Arası RSS
Terminal Renk komutları
nurullahisrgan #1
Üye Ock 2015 tarihinden beri · 76 mesaj · Konum: Mardin, Nusaybin
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Terminal Renk komutları
Merhaba... D dilinde yazdığımız konsol uygulamalarını renklendirme yolu var mıdır? C ve C++ dilinde \e[32m diye renklendirme oluyordu. Ancak D dilinde olmuyor... Bu renkelendirme işlerini nasıl yapabiliriz?
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4412 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Bunlar terminalle ilgili kodlar olduğundan çıkışa yazdırılmaları yeterli olmalı ve her dilde çalışmalı. Küçücük bir örnekle gösterir misin.

Anlaşılan, Windows ve Linux terminalleri bu konuda farklıymış:

  http://stackoverflow.com/questions/9350842/how-do-i-print-…

Sen hangi ortamda çalışıyordun?

Ali
canalpay (Moderatör) #3
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Belki çözüm bunun için direk bir kütüphane kullanmak olabilir.

Kullanmadım ama şu kullanılabilir gibi duruyor :https://github.com/robik/ConsoleD (Orada nasıl yapıldığına da bakabilirsin.)

Konsola daha çok iş yaptırmak istiyorsan ncurses kütüphanesini kullanabilirsin. D için yazılan ilinti(binding) çalışıyor olmalı: https://github.com/D-Programming-Deimos/ncurses
Avatar
Salih Dinçer #4
Üye Ock 2012 tarihinden beri · 1889 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #2
Robik'in D Console'u işinizi görebilir:

https://github.com/robik/ConsoleD
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
nurullahisrgan #5
Üye Ock 2015 tarihinden beri · 76 mesaj · Konum: Mardin, Nusaybin
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Merhaba, Linux-Ubuntu üzerinde çalışıyorum. C ve C++ dillerinde örnek kod yazarak göstereyim. Bu kodlar terminal ekranını renklendiriyor. İlk örnek:

#include "stdio.h"
 
int main()
{
    printf("\e[33m Merhaba Dünya... \e[00m");
}

#include <iostream>
 
int main()
{
    std::cout<<"\e[31m\e[03m Merhaba Dünya \e[00m"<<std::endl;
}

Birinci örnek, yalnızca sarı rengini kullanıyor. İkinci örnek ise italik yazı tipi ve kırmızı rengini kullanıyor. Aynı kodu D dilinde yazmaya kalktığımda ise;

import std.stdio;
 
void main()
{
    writeln("\e[33m Merhaba Dünya... \e[00m");
}

Aldığım hata şöyle:

deneme.d(5): Error: undefined escape sequence \e
deneme.d(5): Error: undefined escape sequence \e

Böyle renklendirmenin bir yolu var mı D dilinde... C ve C++ kodları g++ derleyicisi ile derlenmiştir.
Avatar
emreongun #6
Üye Şub 2013 tarihinden beri · 1 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
O hatanın bulunduğu satır:
writeln("\e[33m Merhaba Dünya... \e[00m");
\e yazan yerde \ karakteri özel anlam taşır. \ Karakteri yazdırılmak istendiğinde iki kez ard arda kullanılmalı. Şöyle:
writeln("\\e[33m Merhaba Dünya... \\e[00m");
Bu mesaj emreongun tarafından değiştirildi; zaman: 2015-10-21, 08:09.
acehreli (Moderatör) #7
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4412 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
\e'nin doğru olduğundan emin misin? Bir belgeye göre \x1b olması gerekiyor:

  https://en.wikipedia.org/wiki/ANSI_escape_code#Colors

Yani, şu çalışıyor:
    writeln("\x1b[33m Merhaba Dünya... \x1b[00m");
Ali
nurullahisrgan #8
Üye Ock 2015 tarihinden beri · 76 mesaj · Konum: Mardin, Nusaybin
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
acehreli:
\e'nin doğru olduğundan emin misin? Bir belgeye göre \x1b olması gerekiyor:

  https://en.wikipedia.org/wiki/ANSI_escape_code#Colors

Yani, şu çalışıyor:
    writeln("\x1b[33m Merhaba Dünya... \x1b[00m");
Ali

\e C ve C++ ta olduğu için öyle kullanıyordum. \x1b de oluyormuş, teşekkürler...
acehreli (Moderatör) #9
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4412 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Konuyu gereksizce uzatmış gibi oluyorum ama \e'nin C ve C++'ta nasıl çalıştıklarını anlamıyorum çünkü standart değiller:

  http://en.cppreference.com/w/cpp/language/escape

Yani, tabii ki çalışması iyi ama ben olsam C ve C++ programlarında da \e'ye güvenmezdim. :)

Ali
nurullahisrgan #10
Üye Ock 2015 tarihinden beri · 76 mesaj · Konum: Mardin, Nusaybin
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
acehreli:
Konuyu gereksizce uzatmış gibi oluyorum ama \e'nin C ve C++'ta nasıl çalıştıklarını anlamıyorum çünkü standart değiller:

  http://en.cppreference.com/w/cpp/language/escape

Yani, tabii ki çalışması iyi ama ben olsam C ve C++ programlarında da \e'ye güvenmezdim. :)

Ali

Zor sordunuz.. Şahsen bu işlerden pek anlamıyorum. Ubuntu'da .bashrc gibi dosyalarda bile \e kullanılıyor. ConsoleD'yi de bugün inceleyeceğim. Hafif olarak kodlamalarda \E görmüştüm.
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:
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-06-24, 22:27:31 (UTC -07:00)