Kliknite tukaj, da si ogledate profil, kot ga vidijo drugi
 
Domov > Forum > Računalništvo

Učenje programiranja v Visual Basic

 
 
18.6.2010, 21:34
Pozdravljeni.
Sem nov uporabnik, želel pa bi se naučiti programiranja v VS2008. Najprej pa me zanima, ali je lahko excel "živ" program, mislim, ali lahko uvažam iz neke datoteke, ki hrani recimo 1000 podatkov določeno število, recimo dvajset podatkov in na podlagi teh narišem graf za vsak podatek svojo krivuljo? Podatki pa bi se morali obnavljat vsakih par sekund, krivulja v grafu pa bi se nadaljevala.

Kako se najhitreje naučiti Basica? Imam knjigo Spoznajmo Visual Basic, ne razumem pa skoraj nič. Nikoli pa se nisem ubadal z čim podobnim, problem pa je tudi tuj jezik, (sem starejši) saj ga nikoli nisem uporabljal. Je kdo pripravljen pomagat pri učenju? Začetna razlaga in podobno. Nameravam si izdelat programček za komunikacijo po ComPortu, obdelat podatke jih shranit v datoteko in izrisat graf. Kasneje pa mogoče še pošiljanje podatkov na ComPort.

Hvala za nasvete in lep pozdrav.


spremenil: NikMan (19.6.2010 ob 09.12.39)
 
 
 
18.6.2010, 21:48
Zdravo.

Excel in večina ostalih Office programov je lahko "živih" oziroma lahko v njih programiramo. V njih je vgrajen Visual Basic for Applications, ki je neke vrste prilagojen Visual Basic.

Kar se pa tiče programskega jezika. Vsi programski jeziki imajo "ukaze" v tujem jeziku, programska okolja uporabljajo samo tuje jezike (večina angleščina). Zato bo nepoznavanje angleškega jezika kot prvo zelo uporasnilo učenje, kasneje pa tudi samo programiranje. Želeli boste naprimer nekemu kontrolniku spremeniti barvo, pa ne boste vedeli, katero lastnost morate spremeniti, če ne boste poznali izraza v angleščini ...

Sicer pa je nekaj vodičev tudi v slovenskem jeziku. Tukaj na zmagi jih je nekaj pa verjetno bi se jih še kaj našlo.

Knjiga pa zna biti tudi dober pripomoček. Obvezno pri knjigi pa je, da se prebere VSE. Torej od prve črke, do zadnje, nič vmes spuščati. In tudi hkrati je treba vse, kar je napisano, preizkusiti ...
 
 
 
18.6.2010, 22:12
Zdravo.
Hvala za tako hiter odgovor. V Angleščini sem samouk, tako da nekaj izrazov poznam. Z VS sem primere iz knjig že poskušal, spreminjal lastnosti gradnikov in podobno, primeri iz knjige pa v različici 2008 niso vsi delali v simulaciji. Knjiga pa je za različici 5 in 6.

Ker bom po ComPortu delal z bajti me zanima.
Prvo vprašanje, spremenljivke.
Gdaj deklariram spremenljivke, takoj na začetku programa? Deklariram pa jih tako:
Dim prvi_bajt As byte
Dim drugi_bajt As byte
.
.
Dim stoti_bajt As byte

Bom kasneje, ko najdem še primer komunikacije po ComPortu pripel še kodo, ki sem jo našel na internetu. Zanima me, kako jo prilagodim moji potrebi.

Hvala.
 
 
 
18.6.2010, 23:34
Deklariraš jih lahko kjerkoli, ampak obvezno, predeen jih začneš uporabljati.

Tako deklariranje je zamudno, predolgo in nesmiselno. Tukaj je bolje uporabiti množice:

Dim bajti(5) As Byte

bajti = {23, 42, 53, 52, 63}

dostopa pa se lahko:

bajti(0)
bajti(1)
 
 
 
19.6.2010, 22:20
Zdravo.

Če prav razumem, Dim bajt(5) AS Byte pomeni, da imam pet bajtov. Problem je v tem, da ne bom sprejemal vedno enako število bajtov, enkrat jih bo pet, drugič sto, tretjič mogoče 530.
baji={23,42,53,63}, od kot te številke in kaj pomenijo?
Primer ki sem ga našel na internetu:
Public Class Form1
Dim WithEvents serialPort As New IO.Ports.SerialPort

Private Sub Form1_Load( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Load

For i As Integer = 0 To _
My.Computer.Ports.SerialPortNames.Count - 1
cbbCOMPorts.Items.Add( _
My.Computer.Ports.SerialPortNames(i))
Next
btnDisconnect.Enabled = False
End Sub

Private Sub DataReceived( _
ByVal sender As Object, _
ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) _
Handles serialPort.DataReceived

txtDataReceived.Invoke(New _
myDelegate(AddressOf updateTextBox), _
New Object() {})
End Sub

Private Sub btnConnect_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles btnConnect.Click
If serialPort.IsOpen Then
serialPort.Close()
End If
Try
With serialPort
.PortName = cbbCOMPorts.Text
.BaudRate = 96000
.Parity = IO.Ports.Parity.None
.DataBits = 8
.StopBits = IO.Ports.StopBits.One
' .Encoding = System.Text.Encoding.Unicode
End With
serialPort.Open()

lblMessage.Text = cbbCOMPorts.Text & " connected."
btnConnect.Enabled = False
btnDisconnect.Enabled = True
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub

Private Sub btnDisconnect_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles btnDisconnect.Click
Try
serialPort.Close()
lblMessage.Text = serialPort.PortName & " disconnected."
btnConnect.Enabled = True
btnDisconnect.Enabled = False
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Vprašanje:
Ko dodam na Form1 gradnik za serialPort, v propertis nastavim hitrost prenosa in ostalo, zakaj moram še za to napisat kodo?
Za zgornji primer kode sem poskusil, pa ne deluje v VS2008. Na Form1 imam gumb Conect, Disconect in TextBox, kjer naj bi izpisalo kateri COM port je na računalniku. Se bom še pomatral, vendar tega v knjigi ni.

Drug problem pa je ta, da se ne morem prijavit na forum, vpišem Up. ime in geslo, vedno pa napiše, da gelo ali up. ime nista pravilna? Prijavim se lahko samo, če pošljem zahtevo za geslo, nato pa prek maila spet spremenim geslo. Po ponovni prijavi pa spet po starem.

Hvala.
 
 
 
20.6.2010, 21:07
Zdravo.
Prilagam novo kodo in mislim, da dela. Ne vem pa, kako naj sprejmem in izpišem podatke. Če pošljem številko 1, avtomatično bi moral dobiti nazaj podatke. Kako naj spremenim barvo izpisa POVEZAN in IZKLOP?
Koda:

Public Class Form1
Dim WithEvents serialPort As New IO.Ports.SerialPort
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For i As Integer = 0 To _
My.Computer.Ports.SerialPortNames.Count - 1
cbbCOMPorts.Items.Add( _
My.Computer.Ports.SerialPortNames(i))
Next
btnIzklop.Enabled = False
End Sub
Private Sub DataReceived(ByVal sender As Object, ByVal ByVale As System.IO.Ports.SerialDataReceivedEventArgs) _
Handles serialPort.DataReceived
txtDataReceived.Invoke(New myDelegate(AddressOf UpdateTextBox), New Object() {})
End Sub

Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click
Try
serialPort.Write(txtDataToSend.Text & vbCrLf)
With txtDataReceived
'.SelecionColor = Color.Black
.AppendText(txtDataToSend.Text & vbCrLf)
.ScrollToCaret()
End With
txtDataToSend.Text = String.Empty
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub

Public Delegate Sub myDelegate()
Public Sub updateTextBox()
With txtDataReceived
'.Font = New Font("Garamond", 12.0!, FontStyle.Bold)
'.SelectionColor = Color.Red
.AppendText(serialPort.ReadExisting)
.ScrollToCaret()
End With
End Sub

Private Sub btnConect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConect.Click
If serialPort.IsOpen Then
serialPort.Close()
End If
Try
With serialPort
.PortName = cbbCOMPorts.Text
.BaudRate = 9600
.Parity = IO.Ports.Parity.None
.DataBits = 8
.StopBits = IO.Ports.StopBits.One
End With
serialPort.Open()

lblMessage.Text = cbbCOMPorts.Text & " POVEZAN"
btnConect.Enabled = False
btnIzklop.Enabled = True

Catch ex As Exception
MsgBox(ex.ToString)

End Try
End Sub

Private Sub btnIzklop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIzklop.Click
Try
serialPort.Close()
lblMessage.Text = serialPort.PortName & " IZKLOP"
btnConect.Enabled = True
btnIzklop.Enabled = False
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
End Class


Hvala za pomoč.


 
 
Prijava in registracija
 
 
 
Zmaga.com ponuja brezplačno in razumljivo učenje računalniških programov, vas na enkraten način spozna z različnimi svetovnimi jeziki, s podrobno obrazloženimi recepti prikaže čare kulinarike in vam prežene strahove pred domačimi opravili.
 
 
Poleg tega lahko prebirate poučne članke, ki so namenjene širjenju naše splošne razgledanosti ter preverite svoje znanje z priljubljenim in enostavnim sistemom za preverjanje znanja. Če med vsebinami, ki se dodajajo vsak dan, ne najdete želenega znanja, je za vaša vprašanja na voljo dobro obiskan forum, kjer lahko tudi aktivno sodelujete. V primeru, da bi radi svoje praktično znanje delili z ostalimi, pa to lahko storite preko preprostega vmesnika za dodajanje vsebin. Zmagajte z znanjem z Zmaga.com!