Category Archives: C#

Response is encoded and may need to be decoded before inspection.


FiddlerResponse

What if we make a request using webclient and result was not readable so I tried make same request via Fiddler and response was as mentioned above ,it means  your response was compressed (gzip) so you should decompress it.I tried several solutions but consequence was only remove this line from my request body.

webclient.Headers["Accept-Encoding"] = "gzip, deflate";

iTextSharp ilə PDF – Azərbaycan hərfləri


iText şirkətinə ait iTextSharp ilə ASP.NET və ya Windows layihələrinizdə PDF üzərində yazma işləri üçün istifadə olunan kitabxanadır.Layihədə istifadə edərkən Azərbaycan hərfləri ilə PDF yazma zamanı unicode problemi yaradırdı.Unicode üçün bir neçə həll təklif olunsa da bizim hərflər üçün təsirli olmadı.Aşağdakı həllə baxaq.

public const string Font = "c:/windows/fonts/arial.ttf";
static BaseFont baseFont = BaseFont.CreateFont(Font, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
readonly iTextSharp.text.Font font = new iTextSharp.text.Font(baseFont, 12);

ƏS`də olan arial.ttf şritfi oxuyuruq və iTextSharp`ın CreateFont metodunu istifadə edirik.Əgər düzünə tək sətrlik yazıdırsa BaseFont.IDENTITY_H kimi təyin edin,əgər mətin verticaldırsa onda IDENTITY_V olaraq yazın.Sonda isə Font sinifini istifadə edib yaratdığımız BaseFont`u və mətn ölçüsünü (bu misalda 12) yazırıq.

C# SQLite istifadəsi və Skype loglarını silmək


Salam

Bu məqalədə C# ilə SQLite bazasına bağlanıb sql sorğusu [silmə sorğusu] işlədəcəyik.Bu baza Skype programının bazasına bağlandıqdan sonra isə Skype loglarını siləciyik.Beləliklə həm SQLite bazasına bağlanmaq və sorğu işlətmək həmdə Skype logları ilə işləməyi görəciyik.

İlk əvvəl SQLite burdan yükləyirik.Layihənin Reference bölməsinə System.Data.SQLite.dll əlavə edirik məndə dll yerləşmə yolu C:\Program Files (x86)\SQLite.NET\bin idi,daha sonra layihəmizə using System.Data.SQLite; kitabxanasını əlavə edirik.

SQLite Reference

SQLite ilə işləməyə hazır mühit yarandı aşağdakı private fields yaradırıq.

private SQLiteConnection sql_con;
private SQLiteCommand sql_cmd;
private SQLiteDataAdapter DB;
private DataSet DS = new DataSet();
private DataTable DT = new DataTable();

Skype bazası Windows 7 ƏS`də
C:\Users\PC_İSTİFADƏÇİ_ADI\AppData\Roaming\Skype\SKYPE_İSTİFADƏÇİ_ADI
kataloqunda yerləşir,kataloqda main.db bizə lazım olan bazadır.Bu bazaya qoşulmaq üçün funksiya yazırıq :

private void SetConnection()
{
sql_con = new SQLiteConnection
("Data Source=C:\\Users\\oalili\\AppData\\Roaming\\Skype\\onerelili\\main.db;Version=3;New=False;Compress=True;");
}

Sorgumuzu işlətmək üçün SorgunuIslet funksiyası yaradıb sorugumuzu işlədirik.

private void SorgunuIslet(string txtSorgu)
{
SetConnection(); // yuxarda yaratdığımız funksiya
sql_con.Open(); // bağlantını açırıq.
sql_cmd = sql_con.CreateCommand(); // Sorgu yaradiriq.
sql_cmd.CommandText = txtSorgu; // Sorgu cumlesini txtSorgu`a menimsedirik.
sql_cmd.ExecuteNonQuery(); // Sorgunu isledirik.
sql_con.Close(); // Baglantini bagliyiriq.
}

Nəticəni görmək üçün Form1`ə dataGridview componenti əlavə edirik və Form1_Load eventin`ə əlavə edəcəyimiz DataYukle() adında method yazırıq.

private void DataYukle()
{
SetConnection();
sql_con.Open();
sql_cmd = sql_con.CreateCommand();
string CommandText = "select * from Messages"; // Skype logları bu cədvəldə yerləşir.
DB = new SQLiteDataAdapter(CommandText, sql_con);
DS.Reset();
DB.Fill(DS);
DT = DS.Tables[0];
dataGridView1.DataSource = DT;
sql_con.Close();
}

Programı çalıştırdığımızda Messages cədvəlini və yazışmaları görəciyik.

Csharp_Skype_Log

Bura qədər logları çəkdik indi isə logları silmək üçün Form1`ə button əlavə edirik və evetin`ə əlavə edəcəyimiz SilSorgu adında method yazırıq.

private void SilSorgu()
{
string SQLSorguTxt = "DELETE FROM MESSAGES";
SorgunuIslet(SQLSorguTxt);
}

button1_Click eventin`ə SilSorgu(); əlavə etməyi unutmayın.Programı çalıştırıb silməyi yoxladıqda loglar silinəcək.

Qeyd :
1.main.db bazasına baxmaq üçün Mozilla Firefox ait tətbiq olan SQLite Manager ilə baxa bilərsiz.
2.Conversations adlı cədvəl son danışdıqlarınız (Recent) siyhaısını özündə saxlayır.Messages və Conversations cədvəllərindəki məlumatları silsək həm loglar ilə bərabər son danışdıqlarınız siyahısıda silinəcək.

C# Google Translate istifadə edərək mətn səsləndirmək


Bunu Google Translate API ilədə etmək olar,2 sətrlik kod üçün APİ istifadə etmək istəmədim 🙂  Hal-hazırda Google Translate`də Azərbaycan dili səsləndirməsi olmadığı üçün Türkçə səsləndirmədən istifadə edəcəm.

Form üzərinə 1 textbox,1 button və 1 Medial Player əlavə edirik.Buttonun click eventinə aşağdakı kodları yazırıq.

string metn = textBox1.Text;
axWindowsMediaPlayer1.URL = "http://translate.google.com/translate_tts?ie=UTF-8&q=" + textBox1.Text + "&tl=tr&total=1&idx=0&prev=input";

C# Məlumatı şifrələmə və həll etmə [Base64]


Aşağdakı funksiyaları istifadə edərək məlumatı şifrəliyirik daha sonra həll edirik.

 static public string Sifrele(string melumat)
 {
 byte[] melumatByte = System.Text.ASCIIEncoding.ASCII.GetBytes(melumat);
 // base64 şifrələmə
 string sifrelenmisMelumat = System.Convert.ToBase64String(melumatByte);
 return sifrelenmisMelumat;
 }

static public string Hellet(string hellmel)
 {
 byte[] hellByte = System.Convert.FromBase64String(hellmel);
 string Melumathell = System.Text.ASCIIEncoding.ASCII.GetString(hellByte);
 return Melumathell;
 }

Kodları burdan yükləyə bilərsiz.

C# Combobox içərsini sorğu ilə doldurmaq


Form üzərində combobox var və biz bunu sql serverə sorğu göndərərək gələn nəticəni combobox içərsində göstərmək istəyirik aşağdakı yolu izliyirik,əvvəlcə verilənlərbazasına bağlanırıq sorğumuzu işlədirik və gələn nəticəni SqlDataReader ilə oxuyuruq və combobox`un içərsinə mənimsədirik.

 SqlCommand cmd = new SqlCommand("select * from CədvəlAdı WHERE ID ='1'", con);
 SqlDataReader oxu;
 oxu = cmd.ExecuteReader();
 if (oxu != null)
 {
 while (oxu.Read())
 {
 combobox1.Items.Add(oxu["Adlar"].ToString()); //Burda hansı column dəğərləri gələcə o column adını yazırıq.
 }
 oxu.Close();
 }

C# ilə Mətni səsləndirmək


Əvvəlcə Microsoft Speech Object Library referanslardan əlavə edirik.Daha sonra kitabxananı əlavə edirik.Forma 1 textbox və button əlavə edirik və eventinə aşağdakı kodları əlavə edirik.

using SpeechLib;
//
    private void button1_Click(object sender, EventArgs e)
        {
            string metn = textBox1.Text;
            SpVoice ses = new SpVoice();
            ses.Speak(metn, SpeechVoiceSpeakFlags.SVSFDefault);
        }

Kodlari burdan endirə bilərsiz.