Avatar billede whistler_whistler Nybegynder
14. april 2004 - 22:24 Der er 7 kommentarer og
1 løsning

Hjælp til mschart

Jeg har en textfil hvorfra der er noget taldata, fx 2,56,8,47,8
dette vil jeg så have afbilledet på en graf.
Til det formål jeg har gjort flg:

Dim hej(5, 0) As Variant
MSChart1.ChartData = hej

det virker sådan set også fint nok, men mit problem er så bare at der løbende kommer flere tal i textfilen som også skal med på grafen, hvordan opdaterer jeg grafen hvis der fx efter et par minutter står 2,56,8,47,8,10,70,109 i textfilen.
Det jeg har brug for er altså en metode som løbende opdaterer grafen. Kan dette lade sig gøre og i givet fald. Hvordan?
Avatar billede kabbak Professor
14. april 2004 - 22:28 #1
vis lige lidt mere kode,om hvordan du får tekstfilen ind i Hej
Avatar billede kabbak Professor
14. april 2004 - 22:28 #2
og hvor tit skal den opdateres. ?
Avatar billede whistler_whistler Nybegynder
14. april 2004 - 22:46 #3
Dim hej(5, 3) As Variant


Open "C:\input" For Input As #1
    Do While Not EOF(1)
        Line Input #1, linie
        tal = Split(linie, " ")
        hej(i, 0) = tal(0)
        hej(i, 1) = tal(1)
        hej(i, 2) = tal(2)
        hej(i, 3) = tal(3)
        i = i + 1
    Loop
MSChart1.ChartData = hej


den skal opdateres ca. hvert 25 sek
Avatar billede kabbak Professor
14. april 2004 - 23:34 #4
sæt en Timer på din form, så er koden her.

Er antal værdier per linie altid de samme eller kan de være forskellige.

eks.
12,10,1,1,1
12,10,1,1,1,1,1,1

hvis det er såden er koden ikke helt korrekt, men så sig til.


Public Sub Opdater()
Dim hej() As Variant

i = 1
Open "C:\input" For Input As #1
    Do While Not EOF(1)
        Line Input #1, linie
        tal = Split(linie, " ")
        ReDim Preserve hej(i, UBound(tal))
        For A = 0 To UBound(tal)
        hej(i, A) = tal(A)
      Next
        i = i + 1
    Loop
    Close #1
MSChart1.ChartData = hej

End Sub

Private Sub Form_Load()
  Timer1.Interval = 25000  ' Set Timer interval(in milliseconds)
  Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
Call Opdater
End Sub
Avatar billede kabbak Professor
15. april 2004 - 21:57 #5
Nu skulle den kunne dù overalt.

Public Sub Opdater()
Dim Hej() As Variant, Linie() As String, X As Integer, I As Integer
X = 1
I = 0
On Error Resume Next
Open "C:\input" For Input As #1
    Do While Not EOF(1)
    ReDim Preserve Linie(I)
        Line Input #1, Linie(I)
        Tal = Split(Linie(I), " ")
        If X < UBound(Tal) Then X = UBound(Tal)
      I = I + 1
     
    Loop
    Close #1
    ReDim Preserve Hej(I - 1, X)
    For A = 0 To I - 1
    Tal = Split(Linie(A), " ")
    For b = 0 To X
    Hej(A, b) = Tal(b)
    Next
    Next
   
   
MSChart1.ChartData = Hej

End Sub


Private Sub Form_Load()
  Timer1.Interval = 25000  ' Set Timer interval(in milliseconds)
  Timer1.Enabled = True
  Call Opdater
End Sub

Private Sub Timer1_Timer()
Call Opdater
End Sub
Avatar billede whistler_whistler Nybegynder
23. januar 2005 - 13:35 #6
skriv lige et svar :-)
Avatar billede kabbak Professor
23. januar 2005 - 14:28 #7
ok, virkede det
Avatar billede whistler_whistler Nybegynder
24. januar 2005 - 14:04 #8
ja jeg fik det til at virke dog med nogle få ændringer
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester