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 ?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.