Text Dosyasından Karakter Silerek Metin Eklemek

Katılım
1 Mart 2007
Mesajlar
94
Excel Vers. ve Dili
Excel 2010 Eng
Merhabalar forum içerisinde text dosyası düzenleme yazma ile ilgili bir çok örnek inceledim, fakat kendi istediğim şeyler için yeterli bilgiye kendi açımdan sahip olamadım.

Yapmak istediğim işlem txt dosyasının içerisindeki mesela " işaretini silinmesi ve dosya içerisindeki sayısal verilerin yanına istediğim bir metnin eklenmesi.

İçerisinde " işareti içerisine alınarak yazılmış sayısal veriler var

Örnek
Dosya.txt içerisinde

"123456" "250"
"123457" "200"
"123458" "150"

gibi 300.000 veya 250.000 adet satırdan oluşmakta.

Bu dosyayı VBA ile açarak dosya içerisindeki " işaretlerini sildikten sonra

123456 metin 250 metin2
123456 metin 200 metin2
123458 metin 150 metin2

şekline çevirip yine txt dosyası olarak nasıl kayıt edebilirim?

Teşekkürler
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,680
Excel Vers. ve Dili
Excel 2019 Türkçe
Text dosyanızın küçük bir örneğini eklerseniz, çabuk ve net yanıt bulabilirsiniz.
 
Katılım
1 Mart 2007
Mesajlar
94
Excel Vers. ve Dili
Excel 2010 Eng
Teşekkürler Hamitcan

Tabiki ekliyorum.

Text.txt dosyası değiştirmek istediğim dosya.
Text2.txt işlem yapıldıktan sonra şekil olarak olmasını istediğim dosya.
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,680
Excel Vers. ve Dili
Excel 2019 Türkçe
Aşağıdaki şekilde dener misiniz ?
Kod:
Sub Makro1()
Application.DisplayAlerts = False
    yol = "C:\"
    Workbooks.OpenText Filename:= _
        yol & "Text.txt", Origin:=857, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=True, OtherChar:="""", FieldInfo:=Array(Array(1, _
        1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)), TrailingMinusNumbers:=True
    Columns("A:A").Delete Shift:=xlToLeft
    son = [a65536].End(3).Row
    Range("b1:b" & son) = "metin1"
    Range("d1:d" & son) = "metin2"
    ChDir yol
    ActiveWorkbook.SaveAs Filename:=yol & "Text2.txt", FileFormat:=xlText, CreateBackup:=False
Application.DisplayAlerts = True
End Sub
 
Katılım
1 Mart 2007
Mesajlar
94
Excel Vers. ve Dili
Excel 2010 Eng
Evet bu kod " işaretlerini sildi ve text2 dosyası olarak kayıt etti. Fakat verileri sheet üzerinden geçirmek yerine VBA üzerinden direk text dosyasına yazdırabilirmiyiz? Çünkü benim gerçekte dönüşümünü istediğim text dosyalarındaki verilerim 300.000 400.000 satır olabilir. Ayrıca ikinci oluşan text dosyasında aralarda TAB boşluğu yerine bir karakte boşluk bırakabilirmiyiz?
Uğraştırıyorum kusura bakmayın:yardim:
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,286
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Verileriniz bu iki sütunla sabit olacak mı? Yani, 1234561 ve 50 gibi.
 
Katılım
1 Mart 2007
Mesajlar
94
Excel Vers. ve Dili
Excel 2010 Eng
Tekrar Merhaba

Mesela

Sub Veriler ( )
Open "C:\Test3.TXT" For Output As #1
Print #1, ""Metin1"; " "; "Metin2"; " "; "Metin3"
Close
End Sub

kodu ile Test3.txt dosyası içerisine bu metinler sırası ile yazdırılıyor.

Merak ettiğim yine buna benzer bir yöntem ile istemiş olduğum işlem yapılabilirmi.
Yani bir txt dosyasındaki 1. satırda yer alan ilk rakam ile ikinci rakam arasına istemiş olduğum bir metni ekleyemezmiyim.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,286
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
İki sütun için aşağıdaki proseduru uygulayın.

Kod:
Sub Repair()

a$ = ThisWorkbook.Path & "\text.txt"
b$ = ThisWorkbook.Path & "\sonuc.txt"

Open a For Input As #1
Open b For Output As #2

    While Not EOF(1)
        Input #1, d1, d2
        Print #2, d1; " metin1 "; d2; " metin2"
        DoEvents
    Wend

Close #1
Close #2

MsgBox "İşlem tamamlandı..", vbInformation
End Sub
 
Son düzenleme:
Katılım
1 Mart 2007
Mesajlar
94
Excel Vers. ve Dili
Excel 2010 Eng
While Not EOF(1)
Input #1, d1, d2
Print #2, d1; " metin1 "; d2; " metin2"
DoEvents
Wend
Zeki Bey öğrenmek için soruyorum yukarıdaki kod hangi işlemi yapıyorda " işaretlerini siliyor. eğer d1 d2 den kasıt sayısal veriler ise kenarında " karakteri olmayan satırlar için boşluk bırakmakta mesela.

Kısacası sizi fazla yormadan bu kontrollerle ilgili döküman nereden bulabilirim. forum içerisinde açıklama yapan bir konu göremedim. Kitap olabilir internetteki txt kontrolünü açıklayan bir makale gibi...
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,286
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Bu, temel dosyalama konusuna giriyor. Bununla ilgili makale yok sanırım. İlerleyen günlerde eklmeye çalışırım.

Kısaca, "Input" ile okurken sadece veriler alınıyor.
 
Katılım
1 Mart 2007
Mesajlar
94
Excel Vers. ve Dili
Excel 2010 Eng
Teşekkür ederim dört gözle beklicem :)
 
Üst