Kuinka voi visual basic:ssä määritellä että ohjelma lukee teksti tiedostoa vain tiettyyn merkkiin asti? Esim tiedoston luku lopetetaan kunnes tulee merkki ";".
Visual Basic ja tiedoston luku kunnes...
lobmo
8535
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 8
Vanhimmat
Tekstitiedosto:
dim rivi as string
open "I",#1,"foo.txt"
rivi=""
while (not(eof(1)) and not(instr(rivi,";")))
line input #1,rivi
wend
close #1
Binääritiedosto:
dim rec as long
dim bindata as string * 1
open "foo.bin" for binary as #1
rec = 1
bindata = ""
while ((rec
En saa toimimaan.. :(
mulla on seuraava koodi siinä
Open "C: emp" & tiedosto & "" For Input As #1
While (Not (EOF(1)) And Not (InStr(strIn, ";")))
Line Input #1, strIn
Form1.Print strIn
Wend
Close #1
silti ohjelma lukee koko tiedoston eikä lopeta lukemista ";"-merkkiin niiku ois tarkoitus.
Hei
Koetapa muuttaa se While rivi tällaiseksi:
While (Not (EOF(1)) And InStr(rivi, ";") = 0)
Nyt se lukee vain ;-merkin sisältävää riviä
edeltävään riviin asti.
Dim Char As String * 1
Open FileName For Binary As #1
Do While Not EOF(1)
Get #1, , Char
If Char = ";" Then Exit Do
Tmp$ = Tmp$ & Char
Loop
Close #1
Text1.Text = Tmp$
silleesti että ohjelma lukis vaan ensimmäiseen ";" merkkiin saakka.
Dim rivi As String
Dim i As Integer
Open "c: eksti.txt" For Input As #1
Do
Line Input #1, rivi
i = InStr(rivi, ";")
If (i > 0) Then
Debug.Print Left$(rivi, i - 1)
Exit Do
End If
Debug.Print rivi
Loop While (Not EOF(1))
Close #1
Kysymys kuuluu:
Mitkä kaksi riviä vaihtoivat paikkaa edelliseen esimerkkiini verrattuna.
Siis voi/saa miettiä ihan itsekin
Dim Char As String * 1
Open FileName For Binary As #1
Do While Not EOF(1)
Get #1, , Char
Tmp$ = Tmp$ & Char
If Char = ";" Then Exit Do
Loop
Close #1
Text1.Text = Tmp$
Nyt toimii täydellisesti :)