Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Utvider eksemplet om biler fra forrige gang med mer feilsjekk Tid og Dato.

Liknende presentasjoner


Presentasjon om: "Utvider eksemplet om biler fra forrige gang med mer feilsjekk Tid og Dato."— Utskrift av presentasjonen:

1 Utvider eksemplet om biler fra forrige gang med mer feilsjekk Tid og Dato

2 Sjekke om tabell finnes Vi så på dette forrige gang (kode: Se forelesning 19 slide 7) I koden fra forrige gang krasjer programmet dersom filen ikke finnes fordi det ikke er laget en tabell –Har to tilfeller: 1.Første gang vi kjører programmet finnes ikke filen 2.Alle andre ganger leses innholdet i filen inn i en tabell

3 Sjekker dette i Form_Load Lager oss en global variable ForsteGang for å holde rede de to tilfellene 1.ForsteGang settes lik True i Form_Load dersom filen ikke finnes 2.ForsteGang settes lik False ellers (dvs. dersom filen finnes og tabellen er fylt inn). Gjør dette ved å sjekke om lesning går bra i prosedyren "leseFilTilTabell()" Gjøre Prosedyren om til en Funksjon som returnerer True dersom lesing går bra og False ellers

4 Lager en global variable ForsteGang Gjøres øverst i filen sammen med andre globale definisjoner og deklarasjoner: Public Class Form1 Structure Bil Dim merke As String Dim modell As String Dim arsmodell As Integer End Structure Dim biler() As Bil Dim bilteller As Integer Dim forsteGang As Boolean '...

5 I Form_Load() Tester om lesing fra fil gikk bra Private Sub Form1_Load(...) Handles MyBase.Load If (leseFilTilTabell("c:\biler.txt")) Then sortertabell(biler) lstVis.Items.Clear() For i As Integer = 0 To biler.GetUpperBound(0) lstVis.Items.Add(biler(i).merke & ", " & biler(i).modell & ", " & biler(i).arsmodell) Next forsteGang = False Else forsteGang = True End If

6 Sub leseFilTilTabell() gjøres om til Function Function leseFilTilTabell(ByVal filnavn As String) As Boolean Try ' det som kan gå galt er at filen ikke eksisterer Dim sr As IO.StreamReader = IO.File.OpenText(filnavn) '... som før Return True Catch ex As Exception MsgBox("Filen " & filnavn & " eksisterer ikke") Return False End Try End Sub

7 Registrering av ny bil i tabell Private Sub btnRegistrer_Click(…) Handles btnRegistrer.Click Dim nyBil As Bil If forsteGang = True Then 'Det er ingenting i tabellen ennå bilteller = 0 ReDim biler(bilteller) forsteGang = False 'setter den til False slik at testen ikke blir sann neste gang Else bilteller = biler.GetUpperBound(0) + 1 ReDim Preserve biler(bilteller) End If If (txtMerke.Text = "" Or txtModell.Text = "" Or txtArsmodell.Text = "") Then MsgBox("Du MÅ gi alle opplysninger") Else nyBil.merke = txtMerke.Text nyBil.modell = txtModell.Text nyBil.arsmodell = CInt(txtArsmodell.Text) biler(bilteller) = nyBil bilteller += 1 lstRegistrerte.Items.Add(nyBil.merke & ", " & nyBil.modell & ", " & nyBil.arsmodell) End If End Sub

8 Husker fra forelesning 18: Tid og Dato Til tidsangivelser fins det et eget DateTime objekt i Visual Basic DateTime lagrer tidspunkt som år, måned, dato, time, minutt og sekund. DateTime får verdier fra operativsystemet. Operativsystemet lagrer tiden som et antall klokketikk som løper –Fra:24:00:00, 1. januar, år 0001 Anno Domini –Til: 23:59:59, 31. desember, 9999 A.D. Klokketikkene måles ienheter a 100-nano sekund og en spesifikk dato er antall klokketikk siden 24:00:00, 1. januar, år 0001 –Eksempel: Et kolkketikk med verdi 31241376000000000 representerer fredag, 1. januar år 0100 kl 24:00:00

9 Tid og Dato Deklarere datetime-variabel Dim tidspunkt As DateTime tidspunkt initialiseres automatisk til 01.01.0001 00:00:00 Tilordne verdi til en datetime-variabel –I programmet kan du tilordne verdi til en datetime- variabel verdi slik: –Dato: tidspunkt = #8/11/2006# Legg merke til at dette er 11. august.

10 ... forts. Klokkeslett: tidspunkt = #17:20:00# Dato og klokkeslett: tidspunkt = #08/11/2002 10:25:00# Når en legger inn bare tidspunkt blir datoen automatisk satt til 01.01.0001 Når en legger inn bare dato blir tidspunktet automatisk satt til 00:00:00 # markerer begynnelsen og slutten på tidspunktet.

11 Tid og Dato Eksempel –Finn hvor mange dager det er til Jul –Lag et program som teller ned

12 Fast dato (f.eks. Jul) Dagens dato (endres jevnlig) 'Lager en DateTime-variabel som settes 'lik 24. desember 2006: Dim jul As DateTime = #12/24/2006# 'Lager en DateTime-variabel til å holde dagens dato Dim idag As DateTime

13 Finne antall dager i en periode F.eks.: Antall dager til Jul 'VB har laget et ferdig objekt for å holde rede på 'tidsintervaller: TimeSpan Dim jul As DateTime = #12/24/2006# 'Lager en DateTime-variabel til å holde dagens dato Dim idag As DateTime Dim spenn As TimeSpan spenn = jul.Subtract(idag).Duration MsgBox("Antall dager til Jul: " & spenn.ToString)

14 ' TOTALT ANTALL AV ULIKE ENHETER lstTider.Items.Add("Dager til Jul: " & spenn.TotalDays) lstTider.Items.Add("Timer til Jul: " & spenn.TotalHours) lstTider.Items.Add("Minutter til Jul: " & spenn.TotalMinutes) lstTider.Items.Add("Sekunder til Jul: " & spenn.TotalSeconds) ' DEL-ANTALL AV ULIKE ENHETER lstTider.Items.Add("-----------------------") lstTider.Items.Add("Timer: " & spenn.TotalHours & " timer") lstTider.Items.Add("Minutter: " & spenn.Minutes & " minutter") lstTider.Items.Add("Sekunder: " & spenn.Seconds & " sekunder") ' FORMATERING TIL HELTALL vha. CInt() lstTider.Items.Add("-----------------------") lstTider.Items.Add("Timer: " & CInt(spenn.TotalHours) & " timer") lstTider.Items.Add("Minutter: " & CInt(spenn.Minutes) & " minutter") lstTider.Items.Add("Sekunder: " & CInt(spenn.Seconds) & " sekunder")

15 Oppgave i foreles. Beregn pris på strømforbruk pr. dag Gitt: –Periode 1.1.2006 – 1.3.2006 –Forbruk: 1500 kWh –Pris: 0.83 kr/kWh Beregn –Totalpris for perioden: –Pris på strømforbruk pr. dag:

16 Klokketikk – Egen hendelse side 476 Timer Control- objekt i VB –Trigger en hendelse etter at en viss tid har gått –Finner TimerControl objektet i Tool Box Dette vises ikke i skjermbildet! –Property Interval setter hvor ofte hendelsen skal sendes ( i millisekund), f.eks. 1 sekund: 1000 –Property Enabled settes til True for å starte tmrKlokke.Enabled = True

17 Klokketikk – Egen hendelse side 476 Private Sub tmrKlokke_Tick(...) Handles tmrKlokke.Tick Dim eksamen As DateTime = #12/12/2006# Dim spenn As TimeSpan spenn = eksamen.Subtract(DateTime.Now).Duration lstTider.Items.Add("Nedtelling til eksamen: " & CInt(spenn.TotalDays) & " dager" & CInt(spenn.TotalHours) & " timer") End Sub


Laste ned ppt "Utvider eksemplet om biler fra forrige gang med mer feilsjekk Tid og Dato."

Liknende presentasjoner


Annonser fra Google