Text dosyası Birleştirme ve Güncelleme

Katılım
3 Aralık 2007
Mesajlar
31
Excel Vers. ve Dili
2003
Merhaba,
3 adet text dosyam var (A.txt, B.txt, C.txt) ve her text dosyasında farklı veriler bulunuyor (Örnek: "deneme1", "deneme2", "deneme3" yazıyor olsun). Bir excel dosyasında komut yazıp; Başlat ve Bitir butonu olsun. Excel de "Başlat" butonuna bastığımda her 50 sn de bir bu 3 text dosyasını açsın içindeki verileri alsın ve "D.txt" dosyasını yaratıp bu 3 text dosyasındaki metinleri peşpeşe bu 4. text dosyası içine yazsın (önce A.txt, B.txt ve en son C.txt teki veriyi). Bu yazma işlemi her 50 sn de bir tekrarlasın. Her seferinde D.txt i tekrar yaratıp üzerine yazacak, eski veriler önemli değil. Excelde "Bitir" butonuna bastığımda bu 50 sn deki bir denetimi ve D.txt dosyasını yaratmayı sonlandırsın. Bunu basit olarak excelde VBA komutu ile yapabilirmiyiz. (Not: A.txt, B.txt, C.txt dosyalrı C://Belgelerim de, yaratılacak D.txt ise C://myfile ın içinde, excel komut dosyası ise masaüstümde olmalı)
Teşekkürler.
 

mancubus

Destek Ekibi
Destek Ekibi
Katılım
6 Ocak 2010
Mesajlar
2,224
Excel Vers. ve Dili
İŞ: 2021 Win Eng
.....
....
....
 
Son düzenleme:
Katılım
3 Aralık 2007
Mesajlar
31
Excel Vers. ve Dili
2003
Kod için teşekkür ederim. Text dosyasındakiler düşük kb lı veriler. Bunları farklı bilgisayralarda farklı yerlerde üretilip dropboxla bir bilgisayara gelecek. Tek bilgisayradan da ftp ile 50 sn de bir internete upload edeceğim (tek dosyada birleştirip). Örnek dosyalarım ekte. Text dosyaları içeriği çok önemli değil. Bu şekilde çalışacaktır.
 

Ekli dosyalar

  • 7 bayt Görüntüleme: 9
  • 7 bayt Görüntüleme: 3
  • 7 bayt Görüntüleme: 3
  • 25 bayt Görüntüleme: 3
  • 15.5 KB Görüntüleme: 4

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,853
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Merhaba,
3 adet text dosyam var (A.txt, B.txt, C.txt) ve her text dosyasında farklı veriler bulunuyor (Örnek: "deneme1", "deneme2", "deneme3" yazıyor olsun). Bir excel dosyasında komut yazıp; Başlat ve Bitir butonu olsun. Excel de "Başlat" butonuna bastığımda her 50 sn de bir bu 3 text dosyasını açsın içindeki verileri alsın ve "D.txt" dosyasını yaratıp bu 3 text dosyasındaki metinleri peşpeşe bu 4. text dosyası içine yazsın (önce A.txt, B.txt ve en son C.txt teki veriyi). Bu yazma işlemi her 50 sn de bir tekrarlasın. Her seferinde D.txt i tekrar yaratıp üzerine yazacak, eski veriler önemli değil. Excelde "Bitir" butonuna bastığımda bu 50 sn deki bir denetimi ve D.txt dosyasını yaratmayı sonlandırsın. Bunu basit olarak excelde VBA komutu ile yapabilirmiyiz. (Not: A.txt, B.txt, C.txt dosyalrı C://Belgelerim de, yaratılacak D.txt ise C://myfile ın içinde, excel komut dosyası ise masaüstümde olmalı)
Teşekkürler.
Örnek dosyanızı keşke önceden ekleseydiniz.

kod:

Kod:
Dim saat

Sub durdur()
On Error Resume Next
Application.OnTime saat, "veri_al", , False
End Sub
Sub calistir()
veri_al
End Sub

Sub veri_al()
yol1 = CreateObject("wscript.Shell").SpecialFolders("Desktop") & "\aaa" ' text dosyaların bulunduğu klasör
yol2 = CreateObject("wscript.Shell").SpecialFolders("Desktop") & "\bbb" ' kayıt yapılacak klasör
dosyaadi = yol2 & "\d.txt"

Open dosyaadi For Output As #2

For Each Dosya In CreateObject("Scripting.FileSystemObject").GetFolder(yol1).Files

Open Dosya For Input As #1
Do While Not EOF(1)
Line Input #1, a

Print #2, a
Loop
Close #1

Next

Close #2

saat = Now + TimeValue("00:00:50")
Application.OnTime saat, "veri_al"
End Sub
 

Ekli dosyalar

Katılım
3 Aralık 2007
Mesajlar
31
Excel Vers. ve Dili
2003
Evet, istediğim gibi çalışıyor. Fakat ufak bir sorun çıktı. "aaa" klasöründeki tüm dosyaları alıp "bbb/d.txt" e yazıyor. Örneğin "ddd/A.doc" ta varsa alıp d.txt e yazıyor (yapmak istediğim sistemde bu "aaa" klasörde başka uzantılı dosyalarda bulunması gerekiyor).
Sadece sonu .txt olanları alıp, "d.txt"`e yazmasını sağlayan bir kontrol fonksiyonu ekleyebilirmiyiz?
Teşekkürler.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,853
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Evet, istediğim gibi çalışıyor. Fakat ufak bir sorun çıktı. "aaa" klasöründeki tüm dosyaları alıp "bbb/d.txt" e yazıyor. Örneğin "ddd/A.doc" ta varsa alıp d.txt e yazıyor (yapmak istediğim sistemde bu "aaa" klasörde başka uzantılı dosyalarda bulunması gerekiyor).
Sadece sonu .txt olanları alıp, "d.txt"`e yazmasını sağlayan bir kontrol fonksiyonu ekleyebilirmiyiz?
Teşekkürler.
kod:

Kod:
Sub veri_al()
yol1 = CreateObject("wscript.Shell").SpecialFolders("Desktop") & "\aaa" ' text dosyaların bulunduğu klasör
yol2 = CreateObject("wscript.Shell").SpecialFolders("Desktop") & "\bbb" ' kayıt yapılacak klasör
dosyaadi = yol2 & "\d.txt"


[COLOR="red"]Dim fL As Object
Set fL = CreateObject("Scripting.FileSystemObject")[/COLOR]

Open dosyaadi For Output As #2

For Each dosya In [COLOR="red"]fL.[/COLOR]GetFolder(yol1).Files
[COLOR="red"]If fL.GetExtensionName(dosya) = "txt" Then[/COLOR]

Open dosya For Input As #1
Do While Not EOF(1)
Line Input #1, a

Print #2, a
Loop
Close #1
[COLOR="Red"]End If
[/COLOR]
Next

Close #2

saat = Now + TimeValue("00:00:50")

Application.OnTime saat, "veri_al"
End Sub
 
Üst