06. august 2004 - 15:06Der er
7 kommentarer og 2 løsninger
Slette linie i et andet tekst dokument
Jeg har et Word dokument som via lidt VBA code henter første linie i en anden txt-fil og indsætter den ved et bogmærke. Nu vil jeg gerne have slettet den linie jeg henter i txt-filen. Hvordan gør jeg det ?
Læs hele filen ind i et array, en linie pr. post i arrayet
Overskriv filen med dit array, skriv en post i arrayet i hver linie, og spring den post over, der svarer til den linie du ikke vil have med
Meget impelt uden array: Slet linie 2 i en fil med 3 linier:
Læs linier:
Filnummer = FreeFile Open "C:\Fil.txt" For Input As #Filnummer Line Input #Filnummer, MinString1 'Putter 1. linie ind i MinString1 Line Input #Filnummer, MinString2 'Putter 2. linie ind i MinString2 Line Input #Filnummer, MinString3 'Putter 3. linie ind i MinString3 Close #Filnummer
Skriv linier: Filnummer = FreeFile Open "C:\Fil.txt" For Output As #Filnummer Print #Filnummer, Minstring1 'Skriver indholdet af MinString1 til linie 1 Print #Filnummer, MinString3 'Skriver indholdet af MinString3 til linie 2 Close #Filnummer
I stedet for MinString1 MinString2 MinString3 bruger du bare et array, det er nok lettere
Dim strArray() as string Dim Filnummer as Long Dim i as long
'Læs:
Filnummer = FreeFile Open "C:\Fil.txt" For Input As #Filnummer While not eof (Filnummer) redim preserve strArray(i) Line Input #Filnummer, strArray(i) i = i+1 Loop Close #Filnummer
'Skriv pånær fx. linie 726
Filnummer = FreeFile Open "C:\Fil.txt" For Output As #Filnummer For i = lbound(strarray) to Ubound(strarray) if i = 725 then i = i+1 '(springer linie 726 over) Print #Filnummer, strarray(i) Next i Close #Filnummer
Måske skal dit loop gå til Ubound(strarray) -1, for den sidste post vil altid være tom, sådan som jeg har kodet det herover. Ikke at det betyder noget, du får bare en blank linie i bunden af din textfil. Men det kan jo gøres på 117 andre måder.
Ovenstående er et dynamisk array, der skifter størrelse hele tiden
Mere normalt er måske et statisk array:
Dim StatiskArray(4) as string
Det har i ovenstående 4 pladser, fra index 0-3. Du kan ikek ændrer størrelsen på et statisk array
Synes godt om
Ny brugerNybegynder
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.