Konuyu Oyla:
  • Derecelendirme: 1/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi & FTP txt veri işleme
#1
iyi günler,


Delphi de, bir FTP hesabındaki txt dosyasının içindekini memo da gösterme ve memo da yazılanı tekrar txt dosyasına upload etme gibi işlemleri nasıl gerçekleştirebilirim ?


herhangi bir kaynak ve kod bulmakta zorlandım da  Confused
#2
Indy, Synapse, ICS vs. sınırsız kaynak-örnek var. Siz 1 adım atın, biz 10 adım geliriz Wink
There's no place like 127.0.0.1
WWW
#3
(26-09-2018, Saat: 13:13)SimaWB Adlı Kullanıcıdan Alıntı: Indy, Synapse, ICS vs. sınırsız kaynak-örnek var. Siz 1 adım atın, biz 10 adım geliriz Wink

çok teşekkür ederim değerli hocam  Smile Blush

şuanda ;

https://www.youtube.com/watch?v=f7N6GRb6BfE

https://www.youtube.com/watch?v=m_3yJnSqex8

videolarına ulaştım ve deniyordum  Smile

bir çok yerde daha yardıma ihtiyacım olduğunu şimdiden belirteyim  Shy Smile
#4
Aşagıdaki procedure içini görür.
Delphican sitesinden alarak kendime göre ayarlamıştım.
Delphican 'a teşekkür ederim.

txt dosyayı kendi makinana indirin ve oran açabilirsin.
procedure VersiyonKontrol;
var
 FTPAdres,KaynakDizin,Name,Pass,KaynakDosya,HedefDosya : String;
begin
 FTPAdres := 'ftp.xxxxxxxxx.com.tr'; //  veri çekilecek ftp adresi
 KaynakDizin := '/';
 Name := 'kul@xxxxxxxxx.com.tr'; // ftp bağlanma izni olan kullanıcı
 Pass := '??????';
 KaynakDosya := 'siteversiyon.txt'; // sitede bulunan txt dosya adı
 HedefDosya  :=  'c:\siteversiyon.txt';  // kendi makinanda kaydedecegin yer


 if FTPDosyaAl(KaynakDosya, HedefDosya, FTPAdres, KaynakDizin, Name, Pass ) then
 begin
 sitememo.Lines.LoadFromFile( 'c:\siteversiyon.txt'); 
 end; //


function FTPDosyaAl(SrcDosya, DesDosya:TFileName; Ftp, RemoteDir, Login, Pass : String ):Boolean;
begin // Uses IdFTP, IdFTPCommon
 ftp1:=TidFTP.Create(nil);
 IDAntiFreeze := TIDAntiFreeze.Create(NIL); // büyük dosyalar inerken donmasın diye
 Result := False;
 Ftp1.Host := Ftp;
 Ftp1.Username := Login;
 Ftp1.Password := Pass;
 Ftp1.Passive := True;
 Ftp1.Connect;

 if Ftp1.Connected then
 begin
   Ftp1.ChangeDir(RemoteDir);
   Try
     Ftp1.TransferType := ftBinary; // Uses IdFTPCommon
     Ftp1.Get(SrcDosya, DesDosya, True);
   Finally
     Result := True;
   end;
   Ftp1.Quit;
 end;
end;
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
#5
(26-09-2018, Saat: 13:18)cinarbil Adlı Kullanıcıdan Alıntı: Aşagıdaki procedure içini görür.
Delphican sitesinden alarak kendime göre ayarlamıştım.
Delphican 'a teşekkür ederim.

txt dosyayı kendi makinana indirin ve oran açabilirsin.
procedure VersiyonKontrol;
var
 FTPAdres,KaynakDizin,Name,Pass,KaynakDosya,HedefDosya : String;
begin
 FTPAdres := 'ftp.xxxxxxxxx.com.tr'; //  veri çekilecek ftp adresi
 KaynakDizin := '/';
 Name := 'kul@xxxxxxxxx.com.tr'; // ftp bağlanma izni olan kullanıcı
 Pass := '??????';
 KaynakDosya := 'siteversiyon.txt'; // sitede bulunan txt dosya adı
 HedefDosya  :=  'c:\siteversiyon.txt';  // kendi makinanda kaydedecegin yer


 if FTPDosyaAl(KaynakDosya, HedefDosya, FTPAdres, KaynakDizin, Name, Pass ) then
 begin
 sitememo.Lines.LoadFromFile( 'c:\siteversiyon.txt'); 
 end; //


function FTPDosyaAl(SrcDosya, DesDosya:TFileName; Ftp, RemoteDir, Login, Pass : String ):Boolean;
begin // Uses IdFTP, IdFTPCommon
 ftp1:=TidFTP.Create(nil);
 IDAntiFreeze := TIDAntiFreeze.Create(NIL); // büyük dosyalar inerken donmasın diye
 Result := False;
 Ftp1.Host := Ftp;
 Ftp1.Username := Login;
 Ftp1.Password := Pass;
 Ftp1.Passive := True;
 Ftp1.Connect;

 if Ftp1.Connected then
 begin
   Ftp1.ChangeDir(RemoteDir);
   Try
     Ftp1.TransferType := ftBinary; // Uses IdFTPCommon
     Ftp1.Get(SrcDosya, DesDosya, True);
   Finally
     Result := True;
   end;
   Ftp1.Quit;
 end;
end;

öncelikle teşekkür ederim ve daha açık bir kullanım açıklaması sunarmısınız sanırım bilgim yetmiyor da  Shy
#6
Formun  kod bölümünde uses satırına 
IdFTP, IdFTPCommon,IdAntiFreeze   ekleyin

public bölümüne 
function FTPDosyaAl(SrcDosya, DesDosya:TFileName; Ftp, RemoteDir, Login, Pass : String ):Boolean;

ekleyin

sonra  forma bir buton ekleyin ve onClick olayına kodu yapıştırın
  

procedure Tgiris_frm.Button1Click(Sender: TObject);
var
 FTPAdres,KaynakDizin,Name,Pass,KaynakDosya,HedefDosya : String;
begin
 FTPAdres := 'ftp.xxxxxxxxx.com.tr'; //  veri çekilecek ftp adresi
 KaynakDizin := '/';
 Name := 'kul@xxxxxxxxx.com.tr'; // ftp bağlanma izni olan kullanıcı
 Pass := '??????';
 KaynakDosya := 'siteversiyon.txt'; // sitede bulunan txt dosya adı
 HedefDosya  :=  'c:\siteversiyon.txt';  // kendi makinanda kaydedecegin yer
 
 // başarı ile ftp alırsa  
 if FTPDosyaAl(KaynakDosya, HedefDosya, FTPAdres, KaynakDizin, Name, Pass ) then
 begin
 sitememo.Lines.LoadFromFile( 'c:\siteversiyon.txt');  // buradaki sitememo sizin memo bileşin adı olacak
 end; //


end;

formun son End.  satırından önce kodları yapıştırın

function FTPDosyaAl(SrcDosya, DesDosya:TFileName; Ftp, RemoteDir, Login, Pass : String ):Boolean;
begin // Uses IdFTP, IdFTPCommon
ftp1:=TidFTP.Create(nil);
IDAntiFreeze := TIDAntiFreeze.Create(NIL); // büyük dosyalar inerken donmasın diye
Result := False;
Ftp1.Host := Ftp;
Ftp1.Username := Login;
Ftp1.Password := Pass;
Ftp1.Passive := True;
Ftp1.Connect;

if Ftp1.Connected then
begin
  Ftp1.ChangeDir(RemoteDir);
  Try
    Ftp1.TransferType := ftBinary; // Uses IdFTPCommon
    Ftp1.Get(SrcDosya, DesDosya, True);
  Finally
    Result := True;
  end;
  Ftp1.Quit;
end;
end;
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
#7
Bu kadar yardımseverliğe karşıyım açıkçası !
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
#8
(26-09-2018, Saat: 14:45)cinarbil Adlı Kullanıcıdan Alıntı: Formun  kod bölümünde uses satırına 
IdFTP, IdFTPCommon,IdAntiFreeze   ekleyin

public bölümüne 
function FTPDosyaAl(SrcDosya, DesDosya:TFileName; Ftp, RemoteDir, Login, Pass : String ):Boolean;

ekleyin

sonra  forma bir buton ekleyin ve onClick olayına kodu yapıştırın
  

procedure Tgiris_frm.Button1Click(Sender: TObject);
var
 FTPAdres,KaynakDizin,Name,Pass,KaynakDosya,HedefDosya : String;
begin
 FTPAdres := 'ftp.xxxxxxxxx.com.tr'; //  veri çekilecek ftp adresi
 KaynakDizin := '/';
 Name := 'kul@xxxxxxxxx.com.tr'; // ftp bağlanma izni olan kullanıcı
 Pass := '??????';
 KaynakDosya := 'siteversiyon.txt'; // sitede bulunan txt dosya adı
 HedefDosya  :=  'c:\siteversiyon.txt';  // kendi makinanda kaydedecegin yer
 
 // başarı ile ftp alırsa  
 if FTPDosyaAl(KaynakDosya, HedefDosya, FTPAdres, KaynakDizin, Name, Pass ) then
 begin
 sitememo.Lines.LoadFromFile( 'c:\siteversiyon.txt');  // buradaki sitememo sizin memo bileşin adı olacak
 end; //


end;

formun son End.  satırından önce kodları yapıştırın

function FTPDosyaAl(SrcDosya, DesDosya:TFileName; Ftp, RemoteDir, Login, Pass : String ):Boolean;
begin // Uses IdFTP, IdFTPCommon
ftp1:=TidFTP.Create(nil);
IDAntiFreeze := TIDAntiFreeze.Create(NIL); // büyük dosyalar inerken donmasın diye
Result := False;
Ftp1.Host := Ftp;
Ftp1.Username := Login;
Ftp1.Password := Pass;
Ftp1.Passive := True;
Ftp1.Connect;

if Ftp1.Connected then
begin
  Ftp1.ChangeDir(RemoteDir);
  Try
    Ftp1.TransferType := ftBinary; // Uses IdFTPCommon
    Ftp1.Get(SrcDosya, DesDosya, True);
  Finally
    Result := True;
  end;
  Ftp1.Quit;
end;
end;

çok teşekkür ederim yardımınız ve anlatımınız için çok yardımcı oldunuz  Shy Shy

(26-09-2018, Saat: 14:58)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Bu kadar yardımseverliğe karşıyım açıkçası !

olaylara iyi yönden bakmak yardımseverliği arttırır bu da her zaman iyi yöne yöneltir düşüncesindeyim böylece bu düzen hep böyle devam eder.  Shy Blush

yardım etmeleri açıkcası ilgi ve alakayı ikiye katlar ( azı çoğu olmaz ) nitekim katladığını da belirtmek isterim hocam.
#9
Delphi öğrenmeye çalışan birçok kişinin sıkıntısı zaten bu ya yeteri kadar yardım alamamak. Bu şekilde bu dilin ülkemizde kullanımının azalmasına da etkisi var. Delphi hakkında ülkemizde kurs veren bir kurum kalmadı varsa bile bir elin parmaklarını bulmaz. Youtube bakıyorsunuz C#, Java, Python, C++ vb gibi dillerle alakalı tonla video ve örnek uygulamalar var Türkçe olarak. Delphi'nin popülerliğini kazanmasını istiyorsak bu işi bilenlerin paylaşımdan kaçmak yerine ipin ucundan tutmaları gerektiği düşüncesindeyim. İngilizce kaynak zaten bu konuda var. Farklı ülkelerde ve dillerde daha detaylı paylaşımlar var ama bizim ülkemizde yok. Bilgiyi saklama bizim en büyük sıkıntımız zaten. Hep olaya para kazanma mantığıyla bakıyoruz. Paylaşıma destek veren ve yardımı esirgemeyen herkese şimdiden teşekkür ederim. cinarbil arkadaşımızı da konuya verdiği destekten dolayı teşekkür ederim.
#10
Bizim milletimizin kötü bir alışkanlığı hazırcılık ve tembellik. Yukarda sorulan sorular zor sorular değil ki başvurabileceğin anahtar kelimelerde verildi zaten. Araştırmadan geliştirme olmuyor. Ne kadar çok araştırırsan o kadar çok gelişirsin. Anahtar kelimeler vererek seni araştırmaya sevketmek sana çok yardımcı olur ufkunu açar.
Hayırlı akşamlar.
İmam Süleyman Yakub <--> Molla Mustafa Mansur
Evlatlarım!
Cismanımız TÜRK ruhumuz ise İSLAM.
Bu yolda daim olalım her an.


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi ile geliştirdiğiniz uygulamalar neler? - İki Ödüllü Mr.Developer 23 18.649 21-09-2026, Saat: 15:51
Son Yorum: bajerli
  yapay zeka delphi kl007 9 1.227 26-02-2026, Saat: 09:12
Son Yorum: mrmarman
  Win 11 ve Delphi 7 Minimize sorunu. enigma 7 1.087 11-02-2026, Saat: 10:27
Son Yorum: RAD Coder
Question Delphi formunu nasıl otomatik tam ekran yapabilirim ? erdemklt0 2 670 23-01-2026, Saat: 10:02
Son Yorum: csunguray
  Delphi SLL kullanım sorunu Bay_Y 12 2.195 22-12-2025, Saat: 18:11
Son Yorum: Bay_Y



Konuyu Okuyanlar: 1 Ziyaretçi