#5) halily » 27 Tem 2022 19:22
aşağıdaki dosyayı inceler misiniz?
Not : karışıklık olmasın diye veri alınacak dosyaları
DATA
klasörünü oluşturup oraya koydum
- Kod: Tümünü seç
Sub VeriAlADO()
t1 = Timer
AnaKlsr = ThisWorkbook.Path & "\DATA\"
Dim dzBoyt As Variant
ReDim dzBoyt(1 To 12, 1 To 2)
dzBoyt(1, 1) = 1: dzBoyt(1, 2) = 10
dzBoyt(2, 1) = 12: dzBoyt(2, 2) = 8
dzBoyt(3, 1) = 21: dzBoyt(3, 2) = 31
dzBoyt(4, 1) = 52: dzBoyt(4, 2) = 8
dzBoyt(5, 1) = 59: dzBoyt(5, 2) = 10
dzBoyt(6, 1) = 68: dzBoyt(6, 2) = 12
dzBoyt(7, 1) = 79: dzBoyt(7, 2) = 8
dzBoyt(8, 1) = 86: dzBoyt(8, 2) = 6
dzBoyt(9, 1) = 91: dzBoyt(9, 2) = 10
dzBoyt(10, 1) = 101: dzBoyt(10, 2) = 3
dzBoyt(11, 1) = 103: dzBoyt(11, 2) = 4
dzBoyt(12, 1) = 106: dzBoyt(12, 2) = 10
Dim s As Object ' ADODB.Stream
Set s = CreateObject("adodb.Stream")
s.Charset = "ISO-8859-9" '"utf-8"
s.Open
Set FSO = CreateObject("Scripting.FileSystemObject")
Set xRs = CreateObject("ADODB.Recordset")
With xRs
For Aln = 1 To 12
.Fields.Append "Aln" & Aln - 1, 8
Next
.Open
End With
With FSO
Set sht = ThisWorkbook.Sheets("sayfa2")
' sht.Cells.Clear
If .FolderExists(AnaKlsr) Then
For Each f In .GetFolder(AnaKlsr).Files
' Debug.Print f
s.LoadFromFile (f)
Dim txt As String
txt = s.ReadText
DzStr = Split(txt, vbNewLine)
For x = 2 To UBound(DzStr)
xMtn = ""
For y = 1 To 12
xMtn = xMtn & "æ|@" & Mid(DzStr(x), dzBoyt(y, 1), dzBoyt(y, 2)) & " "
Next y
' Debug.Print Mid(xMtn, 4)
TmpDz = Split(Mid(xMtn, 4), "æ|@")
xRs.AddNew
For xAln = 0 To 11
xRs(xAln) = TmpDz(xAln)
Next
'Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11), _
Array(TmpDz) 'Mid(DzStr(x), dzBoyt(y, 1), dzBoyt(y, 2))
Next x
Next f
End If
End With
SonStr = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row + 1
xRs.MoveFirst
sht.Range("A" & SonStr).CopyFromRecordset xRs
s.Close
Debug.Print "stream", Timer - t1
MsgBox "işlem tamam"
End Sub
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.