27. november 2000 - 18:32Der er
17 kommentarer og 1 løsning
Ændring/Append til en fil ?!?
Hejsa !
Jeg er lidt nybegynder i Visua Basic hvad filer angår, hvordan skriver jeg til en fil og således rygger en linie ned efter det øsnked er puttet ind, uden at den overkriver det foregående, men hopper en linie ned ???
Et eksempel som her overskriove det gamle, DET MÅ DEN IKKE :-)
----
If ((filesave = 1) And (fileok = 1)) Then Dim filnavn As Integer filnavn = FreeFile Open cdbLogfile.FileName For Output As #filnavn \' Close before reopening in another mode. Print #filnavn, buffer & Chr(13) Close #filnavn filesave = 0 End If
If ((filesave = 1) And (fileok = 1)) Then Dim filnavn As Integer filnavn = FreeFile Open cdbLogfile.FileName For Append As #filnavn \' Close before reopening in another mode. Print #filnavn, buffer & Chr(13) Close #filnavn filesave = 0 End If
Og jeg vil have den til at append\'de i bunden af filen :-)
Ang. ovenstående, jeg har pastet det hele ind, men alligevel laver den filen, MNE overskriver alle andre, så når jeg kigger derind så står der kun een linie, hvor den skulle have lavet 10 :-)
Det jeg gerne vilel kunne, er at køre programsumpen 10 gange, hvorefter den i den pågældende fil skal have 10 liner med det der står i stringen BUFFE, som osse aflæses andetsteds i programmet de 10 gange !
her kommer selve timerfunktionen som laver det hele, BUFFER ændrer sig hver gang en måling er foretaget fra et måleinstrument via comporten på skærmen...
Private Sub Timer1_Timer()
If ((filesave = 1) And (fileok = 1)) Then Dim filnavn As Integer filnavn = FreeFile Open cdbLogfile.FileName For Append As #filnavn \' Close before reopening in another mode. Print #filnavn, buffer Close #filnavn filesave = 0 End If
curve = Val(txt_metervalue.Text) If (sample = 10) Then sample = 0 End If
lbl_smplnumber.Caption = sample + 1
If beat = 0 Then pic_beat.Visible = True beat = 1 Else pic_beat.Visible = False beat = 0 End If
If Not (slftst = 1) Then
If ((aflaes = 1) And Not (oncomm = 1)) Then measnr = 1 + measnr
If ((measnr = 1) And Not (display = 0)) Then MSComm.Output = \"DISP:TEXT \"\"1 READING 1\"\"\" & Chr(10) End If
If ((measnr = 2) And Not (display = 0)) Then MSComm.Output = \"DISP:TEXT \"\"/ READING /\"\"\" & Chr(10) End If
If ((measnr = 3) And Not (display = 0)) Then MSComm.Output = \"DISP:TEXT \"\"- READING -\"\"\" & Chr(10) End If
If ((measnr = 4) And Not (display = 0)) Then MSComm.Output = \"DISP:TEXT \"\"\\ READING \\\"\"\" & Chr(10) measnr = 0 End If
If (oncomm = 0) Then MSComm.Output = opgave & Chr(10) End If
If (aflaes = 1) Then If (Mid(buffer, 12, 4) = \"E+37\") Then txt_metervalue.Alignment = 2 txt_metervalue.Text = \"OPEN\" txt_eksp.Visible = False Else txt_metervalue.Alignment = 0 txt_metervalue.Text = Mid(buffer, 1, 7) txt_eksp.Visible = True
End If
sample = sample + 1
If ((combo_graph.ListIndex >= 0) And (grpref = 0)) Then MSChart1.Visible = True With MSChart1 arrSamples(sample) = curve .charttype = charttype .RowCount = 10 .Row = sample arrSamples(sample) = curve .ChartData = arrSamples End With txt_eksp = Mid(buffer, 12, 4) End If End If
Else stdbynr = stdbynr + 1 If ((stdbynr = 1) And Not (display = 0)) Then MSComm.Output = \"DISP:TEXT \"\"* STANDBY \"\"\" & Chr(10) End If If ((stdbynr = 2) And Not (display = 0)) Then MSComm.Output = \"DISP:TEXT \"\" STANDBY *\"\"\" & Chr(10) stdbynr = 0 End If End If
If ((aflaes = 0) And Not (oncomm = 1)) Then MSComm.Output = \"ROUT:TERM?\" & Chr(10) If ((Mid(terminals, 1, 4)) = \"FRON\") Then pic_termon.Visible = True pic_termoff.Visible = False End If If ((Mid(terminals, 1, 4)) = \"REAR\") Then pic_termoff.Visible = True pic_termon.Visible = False End If End If
\'Funktionen her checkker om der er forbindelse til multimetret
\'If ((terminals = \"\") And Not (oncomm = 1)) Then \' error = error + 1 \' If error = 3 Then \' intResponse = MsgBox(\"CONNECTION LOST TO DEVICE : HP34401A ! Check cables and try starting the program again\", vbOKOnly + vbExclamation, \"Connection lost !!!\") \' End \' End If \' End If
buffer = \"\" terminals = \"\" End If
If slftst = 1 Then txt_metervalue = \"\" slftstnr = slftstnr + 1 If slftstnr = 1 Then lbl_slftst.Visible = True End If If slftstnr = 2 Then lbl_slftst.Visible = False slftstnr = 0 End If If (Mid(slftststatus, 2, 1) = 0) Then lbl_slftst.Visible = False intResponse = MsgBox(\"SELF-TEST ended with no failures !\", vbOKOnly + vbInfo, \"Self-test complete !\") slftst = 0 slftststatus = \"\" cmd_slftst.Enabled = True cmd_online.Enabled = True cmd_display.Enabled = True combo_meastype.Enabled = True End If
End If lbl_smplint.Caption = Timer1.Interval & \" mSec.\"
If (combo_meastype.ListIndex = -1) Or slftst Then cmd_online.Enabled = False Else cmd_online.Enabled = True End If
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.