Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


VB.net_att läsa en textfil

Postades av 2006-11-01 10:22:49 - Pirooz Rezaiepour, i forum vb.net, Tråden har 3 Kommentarer och lästs av 1302 personer

Hej!

Jag läser en kurs i VB.net och har problem med en av min lab. Det här programmet ska kunna läsa in en textfil, analysera den och redovisa hur många ettor, tvåor, treor och fyror finns i texten. En funktion ska ta han om detta. Jag har skrivit kod som inte fungerar som det ska vet inte varför. Har försökt att hitta felet men sitter fast och har inngen hjälp hoppas nån kan hjälpa mig med det.

Jag har försökt att erökna siffrorna men hjälp av if sats eller CASE och nu har jag kommenterat bort CASE men ingen av de fungerar.
EN textfil får användas för det.

MVH

Pirooz.

följande är koden:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim filnamnet As String
Dim resultat As Boolean 'fångar värdet från funktion siffror'
Dim ett As Integer 'variabler som ska få värden från sina kompis_variabler i funktinen siffror'
Dim tva As Integer
Dim tre As Integer
Dim fyra As Integer
Dim filtitel As String

filtitel = txtFil.Text 'här fångar man filnamnet från text rutan, .Text gör att man tar bara text och inte all info som finns i text rutan'
resultat = siffror(ett, tva, tre, fyra, filtitel) 'här fås resultaten från funktionen siffror'
If resultat = True Then
txtSvar.Text = CStr("Siffran ett") & CStr(" förekommer ") & CStr(ett) & (" gånger.") & CStr(" Siffran två") & CStr(" förekommer ") & CStr(tva) & CStr(" gånger.") & CStr(" Siffran tre") & CStr(" förekommer ") & CStr(tre) & CStr(" gånger.") & CStr(" Siffran fyra") & CStr(" förekommer ") & CStr(fyra) & CStr(" gånger.")
Else
MsgBox("Ser du inte filen? Skaffa glasögon hihihih inget fel på lagerlof.") 'här får man fel meddelande om filen inte exsisterar'
End If

End Sub

Function siffror(ByRef one As Integer, ByRef two As Integer, ByRef three As Integer, ByRef four As Integer, ByVal filnamnet As String) As Boolean

Dim Fil As IO.StreamReader
Dim myreadline As String
Dim a As Integer
one = 0 'här nollställs variablerna'
two = 0
three = 0
four = 0
If IO.File.Exists(filnamnet) Then ' kollar om filen finns'
Fil = IO.File.OpenText(filnamnet) 'filen öppnas här'

Do While Fil.Peek <> -1 'loop som ska gå runt tills man når end of file Fil.Peek<> -1'
myreadline = Fil.ReadLine()
a = a + 1
myreadline = Mid(filnamnet, a, 1)
If myreadline = CStr(1) Then
one = one + 1
End If
If myreadline = CStr(2) Then
two = two + 1
End If
If myreadline = CStr(3) Then
three = three + 1
End If
If myreadline = CStr(4) Then
four = four + 1
End If

' Select Case myreadline 'Case kontrollerar och räknar sifforrna som finns i filen'
'Case CStr(1)
'one = one + 1
' Case CStr(2)
'two = two + 1
' Case CStr(3)
'three = three + 1
' Case CStr(4)
' four = four + 1

'End Select
Loop
Fil.Close() 'här stängs filen'
Return True 'funktionen returnerar värdet true om filen finns och har ett innehåll'
End If
Return False 'False returneras om filen inte finns'
End Function

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Application.Exit() 'stänger programmet'
End Sub

Private Sub txtFil_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtFil.TextChanged

End Sub
End Class


Svara

Sv: VB.net_att läsa en textfil

Postades av 2006-11-01 11:54:41 - Andreas Hillqvist

Det är nog smidigare att läsa in hela filen i en variabel, då jag antar att det rör sig om en liten fil.
Sedan skulle jag använda en array. Mycket effektivare än en case sats.
Är talen lagrade som text i filen eller är det binärt?

Lite psuedo kod:

Dim Talet as Integer
Dim Talen(3) as Integer
Fil = new Fil(Filnamn)
Text = Fil.AllText()
Fil.Stäng

For Each Tecken in Text
If Tecken >= 49 AND Tecken <= 52 Then
Talet = Tecken - 49
Talen(Talet) = Talen(Talet) + 1
End IF
Next


Svara

Sv: VB.net_att läsa en textfil

Postades av 2006-11-01 12:09:23 - Marcus Gus

Har du ens försökt att debugga och se vilka värden du får?

tycker det ser ut som att du gör det mer komplicerat än vad du behöver göra det iaf. Det jag på rak arm tycker ser väldigt mysko ut är:
<code>
myreadline = Fil.ReadLine()
a = a + 1
myreadline = Mid(filnamnet, a, 1)
If myreadline = CStr(1) Then
</code>

Du läser alltså en rad i filen (som kan vara "rad1hejhopp") till variabeln myreadline. Men varför ersätter du texten du har läst in med ett tecken från filnamnet? Det är ju inte i filnamnet du skall kolla hur ofta 1,2, 3 eller 4 finnas...


Edit: rackarns, Andreas hann före... ;-) Nåja, jag hann göra ett projekt under tiden som gjorde detta eftersom jag har "glömt" en del av VB-syntaxen. Alltid lär man sig nåt på det... ;-)





Svara

Sv:VB.net_att läsa en textfil

Postades av 2006-11-01 15:39:19 - Pirooz Rezaiepour

Tack för hjälpen :-)


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 725
27 958
271 751
363
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies