Visual Basic ja tiedoston luku kunnes...

Kuinka voi visual basic:ssä määritellä että ohjelma lukee teksti tiedostoa vain tiettyyn merkkiin asti? Esim tiedoston luku lopetetaan kunnes tulee merkki ";".
8535
Äänestä

Muut lukivat myös

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

Äänestä
  • 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.

    Äänestä

  • lombo kirjoitti:

    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.

    Äänestä

  • Lisesenssi kirjoitti:

    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$

    Äänestä

  • Lisesenssi kirjoitti:

    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.

    silleesti että ohjelma lukis vaan ensimmäiseen ";" merkkiin saakka.

    Äänestä

  • lombo kirjoitti:

    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

    Äänestä

  • lombo kirjoitti:

    silleesti että ohjelma lukis vaan ensimmäiseen ";" merkkiin saakka.

    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$

    Äänestä

  • Lisesenssi kirjoitti:

    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

    Nyt toimii täydellisesti :)

    Äänestä

Kommentoi aloitusta


lobmo kirjoitti:

Kuinka voi visual basic:ssä määritellä että ohjelma lukee teksti tiedostoa vain tiettyyn merkkiin asti? Esim tiedoston luku lopetetaan kunnes tulee merkki ";".

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu