Bekijk de onderstaande video om te zien hoe je onze site als een web app op je startscherm installeert.
Opmerking: Deze functie is mogelijk niet beschikbaar in sommige browsers.
Onthoudt je regel nummer, sluit je textfile, open je textfile en lees tot regelnummer min één. Piece of cake.Hallo forummers,
Ik kan met de code
line input#1, regel
vanaf een positie in een txt een regel naar beneden en dan weer verder met uitlezen. Hoe ga ik een regel omhoog?
Groeten,
Bas
Option Compare Database
Option Explicit
Public Function Inlezen(strFilename As String) As Variant
[COLOR="SeaGreen"]'returnvalue is een array[/COLOR].
Dim intFile As Integer
Dim strLine As String
Dim intArray As Integer
Dim astrArray() As String [COLOR="SeaGreen"]'Lege array wordt geinitieerd[/COLOR]
intFile = FreeFile[COLOR="seagreen"] 'Eerste lege filedescriptor wordt opgehaald. Kan 1 zijn maar ook 23[/COLOR]
Open strFilename For Input As #intFile [COLOR="seagreen"]'File openen[/COLOR]
intArray = 0 [COLOR="seagreen"]'array elementen initieren[/COLOR]
Do While Not EOF(intFile)
Line Input #intFile, strLine [COLOR="seagreen"]'regel inlezen in variabele[/COLOR]
intArray = intArray + 1
ReDim Preserve astrArray(intArray)[COLOR="seagreen"] 'redimensioneren van bestaande array. Preserve: met behoud van de bestaande inhoud[/COLOR]
astrArray(intArray) = strLine [COLOR="seagreen"]'Vullen van array[/COLOR]
Loop
Close #intFile
Inlezen = astrArray [COLOR="seagreen"]'returnvalue is een array[/COLOR]
End Function
Public Sub RunMe()
[COLOR="seagreen"]'Deze procedure run je in het immediate window.[/COLOR]
Dim astrGevuldeArray() As String
Dim intTeller As Integer
astrGevuldeArray = Inlezen("c:\temp\Module_basUtil.txt") [COLOR="seagreen"]'Aanroepen inlees functie[/COLOR]
For intTeller = 0 To UBound(astrGevuldeArray, 1) [COLOR="seagreen"]'Array doorlopen tot maximum aantal elementen (ubound)[/COLOR]
Debug.Print astrGevuldeArray(intTeller) [COLOR="seagreen"]'Print resultaat in immediate window[/COLOR]
Next intTeller
Debug.Print intTeller & " aantal regels"
End Sub
snb heeft hier gebruik gemaakt van het Split commando die tekst in een array zet mbv een scheidingsteken. Dat scheidingsteken is hier een vbCrLf (carriage return/line feed) ofwel een enter. De code is erg compact en zal zeer waarschijnlijk sneller zijn dan mijn versie. Als je iets meer moet doen dan alleen een tekstbestand inlezen in een array dan zou ik mijn eerste functie gebruiken en anders onderstaande.Dat kan simpeler:
Code:Sub simpel() Open "C:\test.txt" for input as #1 sq=split(input(LOF(1),#1),vbCrLf) Close #1 End Sub
regel 1 komt overeen met sq(0)
regel 2 met sq(1) etc.
sq is een array.
Public Function Inlezen(strFilename as string) as variant
Dim intFile as integer
Dim astrArray() as string
intFile=Freefile
Open strFilename for Input as #intFile
astrArray = Split(Input(LOF(intFile),#intFile),vbCrLf)
Close #intFile
Inlezen = astrArray
End function
?jammer dat het niet werkt
We gebruiken essentiële cookies om deze site te laten werken, en optionele cookies om de ervaring te verbeteren.