txt dosyasından gerekli olan satırı alma

Katılım
28 Nisan 2005
Mesajlar
36
Excel Vers. ve Dili
Office 2003 - Türkçe
Elimde çok büyük bir txt dosyası var. Office ve Not defteri ile açamıyorum. Bundan dolayıda işlem yapmıyorum.

Dosyanın içerisinde her satırda TC Kimlik Numarası ile başlayan ve belirli bir düzen içerisine yazılmış olan veriler var.

İhtiyacım olan kişinin TC Kimlik Numarasını yazdığım zaman dosyanın içersinden ilgili kişi ile ilgili satırı (784 karakter) getirmesini istiyorum.

Teşekkürler...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,591
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Txt dosyanızın küçük bir örneğini eklermisiniz.
 
Katılım
28 Nisan 2005
Mesajlar
36
Excel Vers. ve Dili
Office 2003 - Türkçe
Örnek txt dosya

txt dosyasının bir benzeri ektedir.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,591
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Örneğinizdeki satırları excele nasıl almak istiyorsunuz formatını eklermisiniz.
 
Katılım
28 Nisan 2005
Mesajlar
36
Excel Vers. ve Dili
Office 2003 - Türkçe
Veri Formatı

Satırdaki tüm bilgileri yazı halinde tek bir hücrede bile alsam yeterli olur. Ama daha fazlası mümkünse...

Sıra No Aralığı Uzunluğu Alan Tipi Alan Adı
1 01-11 11 numerik TC KİMLİK NUMARASI
2 12-61 50 alfabetik ADI
3 62-111 50 alfabetik SOYADI

gibi devam ediyor...

İlginize teşekkür ederim.
 
Katılım
15 Eylül 2004
Mesajlar
23
Kod:
Sub KimlikNoBul()
Dim Data As String, Satir As String
Data = InputBox("TC Kimlik Numarasını Girin", "Giriş")
If Data = "" Then Exit Sub
Open "C:\Download\Ornek.txt" For Input As #1
While Not EOF(1)
    Line Input #1, Satir
    If InStr(1, Satir, Data, vbTextCompare) Then MsgBox Satir: Close #1: Exit Sub
Wend
Close #1
MsgBox "Aradığınız Kimlik Numarası bulunamadı"
End Sub
 
Katılım
28 Nisan 2005
Mesajlar
36
Excel Vers. ve Dili
Office 2003 - Türkçe
Düzeltme isteği

TheBest' Alıntı:
Kod:
Sub KimlikNoBul()
Dim Data As String, Satir As String
Data = InputBox("TC Kimlik Numarasını Girin", "Giriş")
If Data = "" Then Exit Sub
Open "C:\Download\Ornek.txt" For Input As #1
While Not EOF(1)
    Line Input #1, Satir
    If InStr(1, Satir, Data, vbTextCompare) Then MsgBox Satir: Close #1: Exit Sub
Wend
Close #1
MsgBox "Aradığınız Kimlik Numarası bulunamadı"
End Sub
Çok teşekkür ederim. İstediğim bilgiyi getirme işine yaradı ve çalışıyor.
Ek iki adet düzenleme noktasında daha yardıma iihtiyacım var.

1. TC kimlik numarasını InputBox'a girmek yerine A1 gibi bir hücredeki veriyi getirme işlemi nasıl olur. Ya da çok daha iyisi aktif hücreiçeriğini arayıp getirmesi...
2. Gelen bilgi MsgBox'a değide B1 gibi bir hücreye nasıl yazdırılır.

İlginize teşekkür ederim.
 
Katılım
28 Nisan 2005
Mesajlar
36
Excel Vers. ve Dili
Office 2003 - Türkçe
Kod:
Sub KimlikNoBul()
Dim Data As String, Satir As String
Data = InputBox("TC Kimlik Numarasını Girin", "Giriş", ActiveCell.FormulaR1C1)
If Data = "" Then Exit Sub
Open "C:\ornek.txt" For Input As #1
While Not EOF(1)
    Line Input #1, Satir
    If InStr(1, Satir, Data, vbTextCompare) Then Range("A1").Select: ActiveCell.FormulaR1C1 = Satir: Close #1: Exit Sub
Wend
Close #1
MsgBox "Aradığınız Kimlik Numarası bulunamadı"
End Sub
Önceki mesajdaki sorularımı kodu bu şekile getirerek çözdüm.

Ama çok yavaş işlem yapıyor. Yavaş olmasının sebebi ornek.txt dosyasındaki ilk 11 değer de aramaması olabilir mi?

Dosya büyüklüğü değiştirmem mümkün değil çünkü açamıyorum...
 
Katılım
25 Temmuz 2006
Mesajlar
2
merhaba
Benımde aynı yonde acıl bır sorunum var
çalışma sayfasının birinde faturalar tarıh acıklama mıktar ve kod gıbı sıralanmıs sekılde diger çalışma sayfasına aynı kodda olan satırları nasıl kopyalarım
bu sorun benım yıllarca kafamda ve onumde lutfen yardımcı olun

Selamlar
Erdogan
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın Serhan,

Bir de tüm dosyayı Access e almayı niçin düşünmediniz.

iyi çalışmalar :D
 
Katılım
28 Nisan 2005
Mesajlar
36
Excel Vers. ve Dili
Office 2003 - Türkçe
Access ve ben

modalı' Alıntı:
Sayın Serhan,

Bir de tüm dosyayı Access e almayı niçin düşünmediniz.

iyi çalışmalar :D
Son derece basit. Henüz Access'e hakim değilim. Okumaya devam ediyorum...
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın serhan,
Boş bir access uygulaması açın, dosya sekmesinden dış veri al ı tıklayın, oradan al ı tıklayın, al penceresinden dosya türünü text olarak ayarlayın ve text dosyasının yerini bulup üstüne tıklayıp okeyleyyin. Şıkan pencereni sol altında gelişmiş düğümesi var onu tıklayın, şıkan tablodan alanların ilk başlama karakteri ve boyutu var yukarıda verdiğiniz gibi onu ayarlayın alan adlarını istediğiniz şekilde düzenleyin ve tamama basın, tüm tablonuz accesse gelmiş olur. Ondan sonra bu tabloyu ister accessde ister excel de kullanabilirsiniz.

Eğer satırlarınız 65000 den az ise Excel içinden de aynı işi yaptırabilirsiniz. Veri sekmesinden dış veri al tıklayıp text dosyasını seçin öıkan pencereden bir adım ileriye yürüyün, alanlarınızı dikey oku mousla sürükleyerek ayarlayın ve tamamı tıklayın

Gönderdiğiniz text dosyasının excele alınmış şeklini ekliyorum.


iyi çalışmalar :D
 
Katılım
28 Nisan 2005
Mesajlar
36
Excel Vers. ve Dili
Office 2003 - Türkçe
Access Denemesi ve Sonuçları

Sayın madalı,

İlginize teşekkür ederim. İşlemleri yaptım. Verilerin sınırlarını istediğim bir şekilde belirledim. Ve işlem yapmaya başladı. Ama sonunu getiremedi. Makinem kilitlendi...

Buna neden olan ise dosya boyutu... Küçük olan 192 MB büyük olan ise 839 MB...

Dosya boyutu sebebiyle anahtar kayıttan arama yapıp dosyayı açmadan ilgili satırı getirmesi... Yardımlar sayesinde ortaya çıkan yukarıdaki excel kodu ile bunu yavaşta olsa halledebildim.

İyi çalışmalar...
 
Üst