Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi'den Python'a Parametre Gönderme
#1
Arkadaşlar merhaba
Aşağıdaki gibi basit bir yöntemle python scripti oluşturuyorum 

procedure TForm1.Button1Click(Sender: TObject);
var
 deg1,deg2 :string;
begin
  memo1.Clear;
  deg1:='print("senin adin '+edit1.Text+ '")';
  deg2:='print("senin soyadin '+edit2.Text+ '")';

  memo1.Lines.Add(deg1);
  memo1.Lines.Add(deg2);
  memo1.Lines.Add('input("bekle")');

  memo1.Lines.SaveToFile('C:\deneme.py');
  ShellExecute(Handle, 'open',
                       'C:\deneme.py', nil, nil, SW_SHOWNORMAL);
end;

print("senin adin Delphi")
print("senin soyadin Can")
input("bekle")
şeklinde *.py dosyası oluşuyor ve çalışıyor yalnız, stringlerde Türkçe karakter olursa dosya oluşturuluyor ama karakterleri düzgün basmadığı için script çalışmıyor.

Tavsiyelerinizi dinlemek isterim. 
(win7 sp1 - Rio 10.3.1 CE)
Cevapla
#2
Merhaba,
İsterseniz birde aşağıdaki şekilde deneyin.
procedure TForm1.Button1Click(Sender: TObject);
var
deg1,deg2 :string;
st : TStringStream;
begin
 memo1.Clear;
 deg1:='print("senin adin '+edit1.Text+ '")';
 deg2:='print("senin soyadin '+edit2.Text+ '")';

 memo1.Lines.Add(deg1);
 memo1.Lines.Add(deg2);
 memo1.Lines.Add('input("bekle")');

 st := TStringStream.Create('', TEncoding.UTF8);
 try
   Memo1.Lines.SaveToStream(st);
   st.SaveToFile('C:\deneme.py');
 finally
   st.Free;
 end;

 ShellExecute(Handle, 'open',
                      'C:\deneme.py', nil, nil, SW_SHOWNORMAL);
end;
Cevapla
#3
Hocam ilginiz için teşekkür ederim ama maalesef sonuç değişmedi bende
print("senin adin DELPH�")  #DELPHİ
print("senin soyadin �CAN") #ŞCAN
input("bekle")
Cevapla
#4
(03-07-2019, Saat: 11:13)Hayati Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Hocam ilginiz için teşekkür ederim ama maalesef sonuç değişmedi bende
print("senin adin DELPH�")  #DELPHİ
print("senin soyadin �CAN") #ŞCAN
input("bekle")

var
  satir1, satir2: string;
 kod: TStringList;
begin
 try
   kod := TStringList.Create;
   satir1 := 'print("senin adin ' + Edit1.Text + '")';
   satir2 := 'print("senin soyadin ' + Edit2.Text + '")';

   kod.Add(satir1);
   kod.Add(satir2);
   kod.Add('input("bekle...!");');

   kod.SaveToFile('d:\pythoncode.py', TEncoding.UTF8);
 finally
   FreeAndNil(kod);
 end;

Şu şekilde dener misiniz?
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Cevapla
#5
TEncoding.UTF8 ifadesini TEncoding.ASCII olarak değiştirip denermisiniz.
Cevapla
#6
(03-07-2019, Saat: 11:41)delphi.developer Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.TEncoding.UTF8 ifadesini TEncoding.ASCII olarak değiştirip denermisiniz.

Denedim ŞŞŞ -> SSS olarak bastı TEncoding.UTF8 işimi gördü tekrar teşekkürler.

(03-07-2019, Saat: 11:35)Halil Han Badem Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(03-07-2019, Saat: 11:13)Hayati Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Hocam ilginiz için teşekkür ederim ama maalesef sonuç değişmedi bende
print("senin adin DELPH�")  #DELPHİ
print("senin soyadin �CAN") #ŞCAN
input("bekle")

var
  satir1, satir2: string;
 kod: TStringList;
begin
 try
   kod := TStringList.Create;
   satir1 := 'print("senin adin ' + Edit1.Text + '")';
   satir2 := 'print("senin soyadin ' + Edit2.Text + '")';

   kod.Add(satir1);
   kod.Add(satir2);
   kod.Add('input(bekle...!);');

   kod.SaveToFile('d:\pythoncode.py', TEncoding.UTF8);
 finally
   FreeAndNil(kod);
 end;

Şu şekilde dener misiniz?
Halil Hocam size de çok teşekkür ederim kesinlikle çalışıyor. Küçük bir düzletme gerekti sadece, elinize sağlık XML ile çözme yoluna gidiyordum yoksa
kod.Add('input("bekle")'); 
Cevapla
#7
@Hayati, yaptığınız küçük düzeltmeyi yazarsanız konuyu sonradan okuyacaklara faydası olur.  Rolleyes
Cevapla
#8
(03-07-2019, Saat: 16:24)edo Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.@Hayati, yaptığınız küçük düzeltmeyi yazarsanız konuyu sonradan okuyacaklara faydası olur.  Rolleyes

Son mesajımda belirttim hocam, en altta.

Halil Hoca 
kod.Add('input(bekle...!);');
demiş

input stringini çift tırnak içine aldım sadece
kod.Add('input("bekle")'); 

Saygılar.
Cevapla
#9
Evet ben görememişim sanırım, kusura bakmayın Blush  Ama bu şekilde kesinlikle daha görünür ve anlaşılır oldu  Angel

@Halil Han Badem dosyaya nasıl yazılacağını göstermiş. Artık dosyaya doğru metni basma kısmında top sizde  Wink
Cevapla
#10
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

gibi şeylerde var.
Topluluk mopluluk yok :/
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi Date - Sql Datetime HuseyinF 4 85 1 saat önce
Son Yorum: adelphiforumz
  Delphi Test Otomasyonu baslaner 3 90 3 saat önce
Son Yorum: edo
  DBGrid1 den Excel Veri Gönderme OZCANK 0 85 13-07-2019, Saat: 14:03
Son Yorum: OZCANK
  delphi'de Raporlama harezmi 5 293 16-06-2019, Saat: 01:39
Son Yorum: mcuyan
  Parça Parça veri gönderme onurakman 1 202 08-06-2019, Saat: 18:08
Son Yorum: masteryoda



Konuyu Okuyanlar: 1 Ziyaretçi