Gå til innhold

Program for å splitte tekstfiler ved linjeskift


qdos

Anbefalte innlegg

Har en tekstfil på over 2GB, og som skal importeres i en SQL-base ved bruk av Access. Ettersom Access har en maksimal databasestørrelse på 2GB, får jeg ikke en gang startet denne importen.

 

Trenger derfor et program som splitter filen i mindre deler, men slutter/begynner ved et gitt antall linjer. Det finnes fullt av programmer som gjør dette ved å splitte på filstørrelse, men jeg finner ingen som gjør dette på linjer. De få av programmene som hevder å gjøre dette, viser seg å ikke fungere når alt kommer til alt.

 

Er det noen som vet om programmer, eller metoder, som virker på så store filer?

Lenke til kommentar
Videoannonse
Annonse

Lage en rutine selv?

- Les inn kilden linje for linje, skriv lest linje til ny fil, lukk og start ny fil etter n- skrevne linjer.

 

Sub TextSplitter()

Dim fsIN, fsOut As IO.FileStream
Dim sr As IO.StreamReader
Dim sw As IO.StreamWriter
Dim OutCount As Integer

fsIN = New IO.FileStream( _
"infile.txt", IO.FileMode.Open, IO.FileAccess.Read _
)

sr = New IO.StreamReader(fsIN, System.Text.Encoding.Default)

Do
Dim Line As String
Dim LineCount As Integer

Line = sr.ReadLine()
If Line Is Nothing Then Exit Do

If fsOut Is Nothing Then
OutCount += 1

fsOut = New IO.FileStream( _
"outfile" & OutCount & ".txt", _
IO.FileMode.CreateNew, IO.FileAccess.Write _
)

sw = New IO.StreamWriter(fsOut, System.Text.Encoding.Default)
LineCount = 0
End If

sw.WriteLine(Line)
LineCount += 1

If LineCount = 20000 Then
sw.Close()
fsOut = Nothing
End If
Loop

If fsOut IsNot Nothing Then
sw.Close()
End If

fsIN.Close()

End Sub

http://www.thescripts.com/forum/thread605945.html

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...