/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
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æse fra .txt
Fra : Spacemann


Dato : 13-05-01 13:19

Hey..

Hvordan læser man fra en fil fx txt-fil der følger 2 spørgsmål med !!

1. Hvordan får man al indholdet af en txt-fil ind i en tekstbox ??

2. Hvor dan får man 10. linie ind i en label ??

Stefan



 
 
Jens (13-05-2001)
Kommentar
Fra : Jens


Dato : 13-05-01 14:59

1. Husk at sætte din Text1 til MultiLine

Private Sub Command1_Click()

Dim Skriv As String

Open "C:\windows\skrivebord\ip.txt" For Input As #1
Do Until EOF(1)
Line Input #1, Skriv
Text1.Text = Text1.Text & vbCrLf & Skriv
Loop
Close #1

End Sub

2.

Private Sub Command1_Click()

Dim Skriv As String
Dim Tal As Byte

Open "C:\windows\skrivebord\ip.txt" For Input As #1

For Tal = 1 To 10
Line Input #1, Skriv
Label1.Caption = Label1.Caption & vbCrLf & Skriv
Next

Close #1

End Sub




Asbjørn Sloth Tønnes~ (13-05-2001)
Kommentar
Fra : Asbjørn Sloth Tønnes~


Dato : 13-05-01 15:47

Forkert

Din kode tilføjer en linieskift formeget i toppen af tekstfeltet.

1. løkke til at lægge filen over i et array
2. for lykke til gemmen løb af array minus en indsætter "txtTekstfelt + arrTekst(i) + vbcrlf"
3. indsætter "txtTekstfelt + arrTekst(ubound(arrTekst))"
Poster måske koden senere!!!
Da jeg har koden en ligggede på en maskine uden netværk og internet.

Asbjørn


Mikkel Ro Manzano Ch~ (13-05-2001)
Kommentar
Fra : Mikkel Ro Manzano Ch~


Dato : 13-05-01 17:05

> Poster måske koden senere!!!
> Da jeg har koden en ligggede på en maskine uden netværk og internet.

Det kan da gøres meget simplere (synes jeg):

Private Sub Command1_Click()

Dim Skriv As String

Open "C:\windows\skrivebord\ip.txt" For Input As #1
Do Until EOF(1)
Line Input #1, Skriv
Text1.Text = Text1.Text & vbCrLf & Skriv
Loop
Close #1
text1.text = right(text1.text, len(text1.text) - 1)
End Sub

Eller:
Private Sub Command1_Click()

Dim Skriv As String
Dim FirstLine as boolean

Open "C:\windows\skrivebord\ip.txt" For Input As #1
FirstLine = true
Do Until EOF(1)
Line Input #1, Skriv
if FirstLine = false then
Text1.Text = Text1.Text & vbCrLf & Skriv
Else
Text1.Text = Skriv
end if
FirstLine = false
Loop
Close #1

End Sub


Forudsat jeg forstod hvad du sagde er det her IMO langt nemmere...



--
Mvh. / Regards Mikkel Christensen



Jens (13-05-2001)
Kommentar
Fra : Jens


Dato : 13-05-01 17:28

Hvad så med

Private Sub Command1_Click()

Dim Skriv As String

Open "C:\windows\skrivebord\ip.txt" For Input As #1
Do Until EOF(1)
Line Input #1, Skriv
If len(Text1.Text) > 0 Then
Text1.Text = Text1.Text & vbCrLf & Skriv
Else
Text1.Text = Skriv
End If
Loop
Close #1

End Sub

Kan Selv

Jens





Mikkel Ro Manzano Ch~ (13-05-2001)
Kommentar
Fra : Mikkel Ro Manzano Ch~


Dato : 13-05-01 20:16

> Kan Selv


Endnu bedre


--
Mvh. / Regards Mikkel Christensen



Asbjørn Sloth Tønnes~ (13-05-2001)
Kommentar
Fra : Asbjørn Sloth Tønnes~


Dato : 13-05-01 20:14

Færre linier

"Mikkel Ro Manzano Christensen" <usenet@openzipper.dk> skrev i en meddelelse news:9dmmhm$2of6$1@news.cybercity.dk...
> > Kan Selv
>
>
> Endnu bedre
>
>
> --
> Mvh. / Regards Mikkel Christensen
>
>


Mikkel Ro Manzano Ch~ (13-05-2001)
Kommentar
Fra : Mikkel Ro Manzano Ch~


Dato : 13-05-01 20:20

Private Sub Command1_Click()

Dim Skriv As String
Dim Tal As Integer
Tal = 1

Open "C:\windows\skrivebord\ip.txt" For Input As #1
Do Until EOF(1)
Line Input #1, Skriv
If len(Text1.Text) > 0 Then
Text1.Text = Text1.Text & vbCrLf & Skriv
Else
Text1.Text = Skriv
End If
If Tal = 10 then label1.Caption = Skriv
Tal = Tal + 1
Loop
Close #1

End Sub


Hvis du vil have den med linie 10 med....


--
Mvh. / Regards Mikkel Christensen



Tomas Christiansen (13-05-2001)
Kommentar
Fra : Tomas Christiansen


Dato : 13-05-01 21:51

Mikkel Ro Manzano Christensen skrev:
> Do Until EOF(1)
....
> Loop

Ja, undskyld men jeg KAN altså ikke lade være med at komme med et noget
anderledes forslag:

Dim sTekst As String
Dim iFil As Integer
iFil = FreeFile
Open "c:\test.fil" For Binary As iFil
sTekst = Space(LOF(iFil))
Get iFil, , sTekst
Close iFil
Text1.Text = sTekst
Label1.Caption = Split(sTekst, vbNewLine)(9)

Når vi taler om tekst-filer bestående af 10 linier er ovenstående løsning
nok ikke hurtigere end løsninger, som gør brug af indlæsning via en løkke,
men hvis det drejer sig om filer indeholdende mange linier, vil denne
løsning "sparke r*v".

Hvis det generer at et eventuelt sidste linieskift i filen (lige en
slut-på-filen) kommer med i teksboksen, kan de fjernes på forskellige måder.

Eksempelvis:
1. Hvis man ved at det altid er der udskiftes linien "sTekst =
Space(LOF(iFil))" med "sTekst = Space(LOF(iFil) - 2)".
2. Hvis det måske er der, kan man udskifte linien "Text1.Text = sTekst"
med "Text1.Text = IIf(Right(sTekst, 2) = vbNewLine, Left(sTekst,
Len(sTekst) - 2), sTekst)".

-------
Tomas



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste