/ Forside/ Teknologi / Udvikling / VB/Basic / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Læs fra en tekstfil?
Fra : stk
Vist : 562 gange
100 point
Dato : 30-10-01 13:59

Hej med jer.

Jeg har prøvet at åbne en txt fil vha CreateFile og ReadFile, men kan ikke helt gennemskue det.
Er der nogle der kan hjælpe mig?
Det skal ikke nødvendigvis være disse to funktioner, jeg skal bare bruge noge a la følgende:
strVariabel = ReadFile("C:\test.txt")
Altså: Læs hele textfilen og gem den i en variable af typen string.

stefan

 
 
Accepteret svar
Fra : gandalf

Modtaget 110 point
Dato : 30-10-01 14:06

Her er en function som læser en tekstfil og giver en string tilbage, der er mange måder at gøre dette på, men denne måde kræver ingen eksterne com objekter.

Kaldes : str = text_read("c:\test.txt")

***********************************************
Public Function text_read(filename) As String

Dim f
Dim textda
Dim cha
Dim i

On Error Resume Next
i = 1
f = FreeFile
textda = ""
If FileExists(filename) Then
If Len(filename) Then
Open filename For Binary As #f
textda = Input(LOF(f), #f)
Close #f
End If
text_read = textda
Else
text_read = ""
End If

End Function
Public Function FileExists(ByVal sFileName As String) As Integer

Dim i As Integer
On Error Resume Next

i = Len(Dir$(sFileName))

If Err Or i = 0 Then
FileExists = False
Else
FileExists = True
End If
End Function


Kommentar
Fra : Nyhedsbruger


Dato : 30-10-01 19:28

Der er sikkert en bedre metode, men her læses en linie af gangen. Så må der
kunne laves en loop for at læse hele filen og en error når filen er tom.


dim a as string , b as string
Dim filnavn As String
Dim filnummer As Integer
filnavn = "c:\test.txt"
filnummer = FreeFile
Open filnavn For Input As #filnummer
Line Input #filnummer, a
b = b & a
Open filnavn For Input As #filnummer
Line Input #filnummer, a
b = b & a
Close #filnummer




Kommentar
Fra : Nyhedsbruger


Dato : 30-10-01 23:29


"stk" <stk.news@kandu.dk> skrev i en meddelelse
news:kpxD7.585$RM3.87751@news000.worldonline.dk...
> Altså: Læs hele textfilen og gem den i en variable af typen string.

Dim strInput(200) as String
Dim intAntalInput as Integer

intAntalInput = 0
Open "c:\test.txt" For Input As #1
Do While EOF(1) = False
intAntalInput = intAntalInput + 1
Line Input #1, intInput(intAntalInput)
Loop
Close #1


Sådan læses hele filen, linie for linie, ind i et array.
Array'et er her sat til 200, men skal selvfølgelig passe
til antal linier i filen.


--


Venlig hilsen / Best regards

Henrik




Kommentar
Fra : Nyhedsbruger


Dato : 31-10-01 08:12

"stk" <stk.news@kandu.dk> wrote in
<kpxD7.585$RM3.87751@news000.worldonline.dk>:

>Hej med jer.
>
>Jeg har prøvet at åbne en txt fil vha CreateFile og ReadFile, men
>kan ikke helt gennemskue det.
>Er der nogle der kan hjælpe mig?
>Det skal ikke nødvendigvis være disse to funktioner, jeg skal bare
>bruge noge a la følgende:
> strVariabel = ReadFile("C:\test.txt")
>Altså: Læs hele textfilen og gem den i en variable af typen string.
>
>stefan
>

Dim StrVariabel AS String
Dim FriFil AS Long

Datafil = "c:\test.txt"
FriFil = FreeFile
Open strVariabel For Binary As FriFil
InputStreng = Input(LOF(FriFil), FriFil)

Close #FriFil

'Nu er alt læst ind i variabelen strVariabel

SC ((-:

Kommentar
Fra : Nyhedsbruger


Dato : 01-11-01 09:00

<snip>

>Dim StrVariabel AS String
>Dim FriFil AS Long
>
>Datafil = "c:\test.txt"
>FriFil = FreeFile
>Open strVariabel For Binary As FriFil
>InputStreng = Input(LOF(FriFil), FriFil)
>
>Close #FriFil
>
>'Nu er alt læst ind i variabelen strVariabel
>
> SC ((-:
>
Der var lige sneget nogle fejl ind
her en ny version

Dim Datafil AS String
Dim strVariabel AS String
Dim FriFil AS Long


Datafil = "c:\test.txt"
FriFil = FreeFile
Open Datafil For Binary As FriFil
strVariabel = Input(LOF(FriFil), FriFil)

Close #FriFil

'Nu er alt læst ind i variabelen strVariabel



Godkendelse af svar
Fra : stk


Dato : 01-11-01 12:16

Det var jo lige det, jeg håbede på.
Tak

Stefan

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177417
Tips : 31962
Nyheder : 719565
Indlæg : 6407864
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste