.txt (1,000,000satır14 kolon) veritabanından bilgi okumak ve yeniden düzenlemek

Katılım
3 Aralık 2005
Mesajlar
29
15 adet birbirinden ayrı ve farklı içinde 14 kolon ve min 60.000 max 65.000 satır veri bulunan "son1.txt","son2.txt" … şeklinde veritabanım var
veriler birbirinden ";" noktalı virgül ile ayrılmış ondalık hanesi bulunan sayısal ifadelerdir. Ondalık ayracıda "virgül" ile dir.
yapmam gereken işlem
her dosyanın sıra ile ;
ilk 7 satırı silinecek
ilk 12 sütunu silinecek
ondalık ayracı olan "virgül", "nokta" ile değiştirilecek. Örnek :123,0017--------123.0017 şekline dönecek
son olarak
satırsayısı-7 (baştan itibaren eksilen) sütün sayısı 2 ye düşen bu 15 adet txt dosyasındaki veriler bir txt dosyası içine son.txt olarak sıra ile alt alta eklenecek
son1.txt,son2.txt…………..son15.txt----> son.txt içine sıra ile alt alta yazdırılmış olacak

bu problemime benzer bir şeyi uzun zaman önce makro ile çözdüm ancak şu an tüm kaynaklarımdan uzakta bir afrika ülkesindeyim
ve konuya hakimiyetim eskisi gibi değil
bu konuda yardımcı olabilirseniz çok mutlu olurum.
şimdiden teşekkürler
 
Katılım
3 Aralık 2005
Mesajlar
29
kodu yazdım

Sub veri()
Dim i, j, s As Integer
Application.ScreenUpdating = False

Sheets("veri").Select
For i = 1 To 15
With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\sontxt\son" & i & ".txt", Destination:=Range("A1"))
.Name = "son1.txt"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 857
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With

Rows("1:7").Select
Selection.Delete Shift:=xlUp
Columns("A:L").Select
Selection.Delete Shift:=xlToLeft
Cells.Select
Cells.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False


Open "C:\sontxt\son.txt" For Append As #1
s = Cells(65536, 1).End(xlUp).Row
For j = 1 To s

Write #1, Cells(j, 1).Value; Cells(j, 2).Value

Next j

Close #1
Cells.Select
Selection.Delete Shift:=xlUp

Next i
End Sub
 
Üst