Avatar billede renehansen Nybegynder
26. september 2003 - 17:38 Der er 9 kommentarer og
1 løsning

opdeling af en tekstfil ?

Hej.

Nogen her der har en ide til at lave et eller andet form for script der kan opdele en tekstfil på 11MB.

Ideen er at den skal opdele filen i filer af en given max. størrelse. eks. 500 kb. på en sådanne måde at den ikke deler en linie men stopper inden den tager den linie der bryder grænsen.

eks.
------------------
dette er en test
dette er en test
dette er en test <<< her deles filen >>>
------------------
dette er en test
dette er en test
dette er en test
------------------

håber i kan hjælpe.
Avatar billede renehansen Nybegynder
26. september 2003 - 17:39 #1
Selve filen er en txt, og skal lagres som en txt.
Avatar billede nmh Nybegynder
26. september 2003 - 17:47 #2
Du skal blot åbne filen som en tekstfil, og så blive ved med at læse hele linier. Det er der en ordre til. Du skal løbende opsamle liniernes længde i en variabel af type Long, og samtidig gemme de læste linier en ny tekstfil. Når du har læst 500*1024*1024 tegn lukker du din nye fil, og begynder på en ny.
Desværre har jeg ikke en VB-håndbog ved hånden, så jeg kan gøre det mere detaljeret.

Du ville måske være lige så glad for et VBscript, der laver denne opdeling?
Avatar billede nmh Nybegynder
26. september 2003 - 17:48 #3
Jeg kommer med et forslag engang i aften eller i morgen.
Avatar billede tubber Juniormester
26. september 2003 - 18:38 #4
følger lige med :)
Avatar billede martin_moth Mester
26. september 2003 - 20:12 #5
Det er vist 5. gang jeg ser nogen bruge ordet "script" om VB6 i dag. VB6 er ikke script! - script kompileres hver gang det afvikles (fx. i en browser eller på en server), og VB6 er et programmeringssprog, der kompileres en gang (fx. til en .exe)

Javascript (www.eksperten.dk/kat/10) og VBScript (www.eksperten.dk/kat/297) er eksempler på scriptsprog, Delphi (www.eksperten.dk/kat/7) og VB6 (www.eksperten.dk/kat/7) er eksempler på almindelig programmeringssprog

Blot i forsøg på at begrænse sprogforvirring, og god weekend til alle :o)
Avatar billede renehansen Nybegynder
26. september 2003 - 22:32 #6
martin du har ganske ret, og siden du ved så meget om programmering, hvad enten det er script eller programmeringsprog.
hvor er din løsning ???  ;)

nmh. om det er script eller vb programmering er mere eller mindere underordnet, da jeg kan tyde dem begge, men ikke er så hardcore endnu til at se løsningen. (self. pga af at det er nemmere at tyde end at skabe ;) )

tubber. be my guest. :)
Avatar billede nmh Nybegynder
27. september 2003 - 00:14 #7
Her er så en VBscript løsning. Nedenstående skal gemmes med filnavnet SplitFil.vbs. Scriptet skal blot ligge i det underkatalog, hvor filen, der skal splittes, ligger.
Jeg har testet med en lille fil, og har sat filstørrelsen for de små filer til 50.

Option Explicit
dim StorFil, LilleFil, fil, filsystem, streamInd, streamUd
dim Max, FilNr
dim txtlinie, N, L

StorFil="Tekstfil.txt" 'Her skrives navnet på filen, der skal splittes
Fil="TxtFil" 'De små filer vil nu hedde TxtFil1.txt, TxtFil2.txt...

Max=50 'Grænse for, hvornår der skiftes til ny udskriftsfil
FilNr=1


set filsystem=CreateObject("Scripting.FileSystemObject")
set streamInd=Filsystem.OpenTextFile(StorFil)

Sub NyFil
  LilleFil=Fil & filNr & ".txt"
  set streamUd=FilSystem.OpenTextFile(LilleFil,8,true)
end sub

NyFil
while not streamInd.AtEndOfStream
  txtlinie=streamInd.readline
  L=Len(txtlinie)+2 'LF og CR tælles med
  if N+L<=Max then
    streamUd.writeline(txtlinie)
    N=N+L
  else
    streamUd.close
    FilNr=FilNr+1
    NyFil
    streamUd.writeline(txtlinie)
    N=L
  end if
wend
streamUd.close
streamInd.close
Msgbox "Den store filen blev splittet i " & FilNr & " filer"
Avatar billede martin_moth Mester
27. september 2003 - 11:54 #8
renehansen: Håber du kan se at det bare var et forsøg på at være venlig - og en kommentar, ikke et svar :o)
Avatar billede renehansen Nybegynder
30. september 2003 - 08:42 #9
Martin, hehe jada jeg er jo heller ikke sur, havde bare håbet på at du måske kunne komme med en god ide. ;)

nmh, tak for svaret, det ser fint ud og jeg er sikker på vi nok skal få det flettet sammen med vores funktioner her, manglede bare lige lidt ide´er til den her.
Avatar billede nmh Nybegynder
30. september 2003 - 09:04 #10
selv tak, det var så lidt. Takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester