Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > EXCEL-Soruları > Makro-VBA
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Makro-VBA Makro veya VBA ile ilgili sorularınızı buraya gönderebilirsiniz.
Dosya ekleyebilirsiniz

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 18-07-2008, 10:09   #1
geren36
 
Giriş: 25/05/2007
Şehir: istanbul
Mesaj: 165
Excel Vers. ve Dili:
türkçe vista işletim sistemi excel2007 türkçe
Varsayılan iki tane [ .txt ] dosyasındaki verilerin karşılaştırılması

Herkese kolay gelsin,

elimizde iki tane ( .txt ) dosyası vardır. Bunların içindeki bilgileri biribilerinde aratıp, farkları üçüncü bir ( .txt ) dosyasına yazdırmak istiyorum. Tüm dosyalar ( c:\ ) nin altında konumlandırılmıştır.

Diğer bir anlatımla, (bir.txt) dosyasındaki verileri sırasıyla (iki.txt) dosyasında aratıp farkları (farklar.txt) dosyasına; (iki.txt) dosyasındaki verileri (bir.txt) dosyasında aratıp farkları (farklar.txt) dosyasına nasıl yazdıracağız acaba ?

Orijinal dosyaların her birinde 165000 kadar kayıt vardır. Bu nedenle buradaki önemli husus, ( .txt ) dosyalarındaki verilerin excel' e yazdırılmadan sonuca ulaşılmasıdır.

Örnek dosyalar ve sonuçta ulaşılmak istenen netice dosyası da ektekidir..

teşekkürler..
Eklenmiş Dosyalar
Dosya Türü: txt farklar.txt (28 Byte, 29 Görüntülenme)
Dosya Türü: txt bir.txt (36 Byte, 26 Görüntülenme)
Dosya Türü: txt iki.txt (25 Byte, 26 Görüntülenme)
geren36 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 18-07-2008, 10:23   #2
omerceri
 
omerceri kullanıcısının avatarı
 
Giriş: 06/02/2005
Şehir: Gökova/Akyaka
Mesaj: 1,474
Varsayılan

Accessli bir çözüm istermisiniz
__________________
(Excel 2003 - Türkçe)
omerceri Çevrimdışı   Alıntı Yaparak Cevapla
Eski 18-07-2008, 10:26   #3
geren36
 
Giriş: 25/05/2007
Şehir: istanbul
Mesaj: 165
Excel Vers. ve Dili:
türkçe vista işletim sistemi excel2007 türkçe
Varsayılan

teşekkürler ancak excel VBA ile olması gerekiyor..
geren36 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 18-07-2008, 15:31   #4
Haluk
Özel Üye
 
Giriş: 07/07/2004
Şehir: Türkiye
Mesaj: 5,371
Excel Vers. ve Dili:
Office 2010 - İngilizce
Varsayılan

Ben sizin anlattıklarınızdan anladığım kadarıyla, aşağıdaki gibi bir sorgu ile birşeyler yapmaya çalıştım ama, sizin örnek dosyaları kullanırken numerik ve string data tiplerinde tam beklediğim sonucu vermedi...

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub Test()
    'Haluk ®
    '18/07/2008
    Dim FilePath As String
    Dim MyFile1 As String, MyFile2 As String
    Dim Conn As Object, RS As Object
    FilePath = "C:\"
    MyFile1 = "bir.txt"
    MyFile2 = "iki.txt"
    Set Conn = CreateObject("ADODB.Connection")
    Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & FilePath & ";Extended Properties=""text;HDR=No;IMEX=1;"""
    Set RS = CreateObject("ADODB.RECORDSET")
    RS.Open "select * from " & MyFile1 & " union select * from " & MyFile2, Conn, 3, 1, 1
    Open "C:\Farklar.txt" For Output As #1
        While Not RS.EOF
            Print #1, RS(0)
        RS.MoveNext
        Wend
    Close #1
    RS.Close
    Conn.Close
End Sub
__________________
Kod anlatılmaz,yazılır ! 🇹🇷

Bu mesaj en son " 18-07-2008 " tarihinde saat 22:24 itibariyle Haluk tarafından düzenlenmiştir....
Haluk Çevrimdışı   Alıntı Yaparak Cevapla
Eski 18-07-2008, 16:12   #5
Haluk
Özel Üye
 
Giriş: 07/07/2004
Şehir: Türkiye
Mesaj: 5,371
Excel Vers. ve Dili:
Office 2010 - İngilizce
Varsayılan

Registery'de aşağıdaki değişikliği yapınca, durum düzeldi....

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engi nes\Text\ImportMixedTypes = "Text"

Çıkan sonuç:

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
1
2
3
4
5
6
7
8
9
g
h
j
o
p
r
t
__________________
Kod anlatılmaz,yazılır ! 🇹🇷
Haluk Çevrimdışı   Alıntı Yaparak Cevapla
Eski 20-07-2008, 11:28   #6
omerceri
 
omerceri kullanıcısının avatarı
 
Giriş: 06/02/2005
Şehir: Gökova/Akyaka
Mesaj: 1,474
Varsayılan

Sayın Haluk
Aşağıdaki gibi bir sgl ifadesini excelde doğrudan txt dosyasına uygulama olanağı varmı ?

SELECT Bir.Alan1
FROM Bir LEFT JOIN Iki ON Bir.Alan1 = Iki.Alan1
WHERE (((Iki.Alan1) Is Null));
UNION SELECT Iki.Alan1
FROM Iki LEFT JOIN Bir ON Iki.Alan1 = Bir.Alan1
WHERE (((Bir.Alan1) Is Null));
__________________
(Excel 2003 - Türkçe)
omerceri Çevrimdışı   Alıntı Yaparak Cevapla
Eski 20-07-2008, 15:50   #7
Haluk
Özel Üye
 
Giriş: 07/07/2004
Şehir: Türkiye
Mesaj: 5,371
Excel Vers. ve Dili:
Office 2010 - İngilizce
Varsayılan

Sayın Ömer bey;

Bildiğiniz gibi, SQL komutlarının hepsi Excel ortamında kullanılamıyor.... örneğin "minus" gibi.

Bende şu anda zaten Ofis kurulu olmadığı için deneme şansım yok. Yazdığınız kodu, deneme yanılma yöntemiyle Excel ortamında test etmekten başka çıkar yok, bence...
__________________
Kod anlatılmaz,yazılır ! 🇹🇷
Haluk Çevrimdışı   Alıntı Yaparak Cevapla
Eski 21-07-2008, 09:03   #8
geren36
 
Giriş: 25/05/2007
Şehir: istanbul
Mesaj: 165
Excel Vers. ve Dili:
türkçe vista işletim sistemi excel2007 türkçe
Varsayılan

ilginize teşekkürler Sn. Haluk,

ancak ( fark.txt ) dosyasında oluşturduğunuz dize, ( bir.txt ) ve (iki.txt) dosyasında yer alan verilerin tek dosyaya toplanmış hali olmuş..


benim varmak istediğim sonuç ise şöyle olmalı :

1
3
5
7
9
h
t
r
p
o

görüleceği üzere ( 1, 3, 5, 7, h, p, o ) bir.txt' de dosyasında bulunan ancak iki.txt dosyasında bulunmayan; ( 9, t, r ) ise iki.txt dosyasında bulunan ancak bir.txt dosyasında bulunmayan kayıtlardır.

bu sonuca ulaşacak şekilde yardımcı olabilirseniz memnun olurum.

Bir de "registery" de bahsettiğiniz düzenlemeyi nasıl yapacağımı bilemiyorum. Bu konuda da yardım rica ederim..

teşekkürler, iyi çalışmalar..
geren36 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 21-07-2008, 09:33   #9
Haluk
Özel Üye
 
Giriş: 07/07/2004
Şehir: Türkiye
Mesaj: 5,371
Excel Vers. ve Dili:
Office 2010 - İngilizce
Varsayılan

Hmmm.... yanlış anlamışım. Ortak olanlar olmayacak demek ki....

Belki de yukarıda sayın omerceri' nin yazdığı gibi bir şey olacaktır.
__________________
Kod anlatılmaz,yazılır ! 🇹🇷
Haluk Çevrimdışı   Alıntı Yaparak Cevapla
Eski 21-07-2008, 10:14   #10
Haluk
Özel Üye
 
Giriş: 07/07/2004
Şehir: Türkiye
Mesaj: 5,371
Excel Vers. ve Dili:
Office 2010 - İngilizce
Varsayılan

Sayın geren36;

Bir de aşağıda hazırladığım kodu deneyin, istedeğiniz olacak mı ?

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub Test()
    'Haluk ®
    '21/07/08
    Dim TxtFile1 As String, TxtFile2 As String
    TxtFile1 = "C:\bir.txt"
    TxtFile2 = "C:\iki.txt"
    If Dir("C:\Farklar.txt") <> "" Then Kill "C:\Farklar.txt"
    Call CheckFiles(TxtFile1, TxtFile2)
    Call CheckFiles(TxtFile2, TxtFile1)
End Sub
'
Sub CheckFiles(File1 As String, File2 As String)
    Dim MyCheck As Boolean
    Open File1 For Input As #1
    Do While Not EOF(1)
        Line Input #1, Data1
        Open File2 For Input As #2
        Do While Not EOF(2)
            MyCheck = False
            Line Input #2, Data2
            If Data2 = Data1 Then
                MyCheck = True
                Exit Do
            End If
        Loop
        Close #2
        If MyCheck = False Then
            Open "C:\Farklar.txt" For Append As #3
                Print #3, Data1
            Close #3
        End If
    Loop
    Close #1
End Sub
__________________
Kod anlatılmaz,yazılır ! 🇹🇷

Bu mesaj en son " 21-07-2008 " tarihinde saat 10:58 itibariyle Haluk tarafından düzenlenmiştir....
Haluk Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 06:50


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Web Tasarım -- Beylikdüzü mali müşavir - Beylikdüzü mali müşavir - Lingerie - Dyeing Machine - Karton Bardak- Karton Bardak- Çorlu Dil Konuşma Terapisti- Çorlu Dil Konuşma Terapisti- Çorlu Konuşma Terapisti- Çorlu Konuşma Terapisti- Çorlu Özel Eğitim- Site Yönetimi- Pronet Tekirdağ- Çorlu Kamera- Pronet Edirne- Pronet Çorlu- Çorlu Araç Takip- Çorlu Su Arıtma- Gebze Emlak- Rampa- Rotary- Çorlu İnternet Sitesi- Çorlu Sürücü Kursu- Çorlu Sürücü Kursu- Şişli Avukat- Edirne Serbest Muhasebeci- Çorlu Etüt- İstanbul Botanik- Çorlu Sigorta- Kağıt Bardak- Kağıt Bardak- Kaplan Tekstil- Çorlu Perde- Çorlu Perde- Çorlu Havuz- Çorlu Havuz- Makina- Danışmazlar- Çorlu Perde Yıkama- Çorlu Perde Yıkama- Okul Danışmanlık- Çorlu Ayakkabı- İzmit Sigorta- ADR'li taşıma kabı imalatı- Mekanik Tesisat- Çorlu Grafik Tasarım-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden