Forum » Programiranje » Visual Basic
Visual Basic
Plezalec ::
Oj, imam program v VB. Notri sta dva textboxa in gumb. Naredil sem compiler. (V Prvi Textbox napišeš kodo, v drugem pa ti izpiše komentarje)
VB mi pa javlja napako ki je ne najdem. Prosim POMOČ:
VB mi pa javlja napako ki je ne najdem. Prosim POMOČ:
Imports System.IO Imports System.Reflection Imports System.CodeDom Imports System.CodeDom.Compiler Imports Microsoft.VisualBasic Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' read code from textbox Dim Code As String = TextBox1.Text ' clear output textbox TextBox2.Clear() ' create fully functional assembly string Code = ("Imports System" & vbCrLf & "Imports System.Windows.Forms" & vbCrLf & "Imports Microsoft.Visualbasic" & vbCrLf & "Public Class TempClass" & vbCrLf & "Public Sub MyCode(ByVal Textbox2 As TextBox)" & vbCrLf & Code & vbCrLf & "End Sub" & vbCrLf & "End Class") ' create the compiler Dim vbProv = New VBCodeProvider() ' create parameters to pass to the compiler Dim vbParams = New CompilerParameters() ' add referenced assemblies. vbParams.ReferencedAssemblies.Add("System.dll") vbParams.ReferencedAssemblies.Add("System.Windows.Forms.dll") vbParams.ReferencedAssemblies.Add("Microsoft.VisualBasic.dll") ' generate an assembly in memory vbParams.GenerateExecutable = False vbParams.GenerateInMemory = True ' give it a name vbParams.OutputAssembly = "MyCode" ' compile the code and get the compiler results Dim compResults = vbProv.CompileAssemblyFromSource(vbParams, Code) ' check for compile errors If compResults.Errors.HasErrors Then Dim ErrorMsg As String = compResults.Errors.Count.ToString & " Errors:" For x As Integer = 0 To compResults.Errors.Count - 1 ErrorMsg = ErrorMsg & vbCrLf & "Line: " & compResults.Errors(x).Line.ToString & " - " + compResults.Errors(x).ErrorText Next TextBox2.Text = ErrorMsg & vbCrLf & vbCrLf + Code Else ' create instance of the temporary compiled class Dim obj As Object = compResults.CompiledAssembly.CreateInstance("TempClass") ' use textbox 2 for output Dim args() As Object = {Me.TextBox2} Try ' execute the code Dim result As Object = obj.GetType().InvokeMember("MyCode", BindingFlags.InvokeMethod, Nothing, obj, args) Catch Oops As Exception ' oops MessageBox.Show(Oops.Message) End Try End If End Sub End Class
- spremenil: Mavrik ()
Plezalec ::
Tole Mi kaže:
Slika:
https://www.dropbox.com/s/vh19ah607iv53...
podčrtano mi kaže samo rdeče besedilo
Slika:
https://www.dropbox.com/s/vh19ah607iv53...
podčrtano mi kaže samo rdeče besedilo
Zgodovina sprememb…
- spremenil: Plezalec ()
cekr ::
Sem potegnil vse od "code" v IDE in ni napake.
Možno, da ti sam VS vidi kakšen neviden znak in ti zato joka, da nekaj ni OK.
Poskusi samo:
Dim Code As String = ""
Code = "Imports System" & vbCrLf &
"Imports System.Windows.Forms" & vbCrLf &
"Imports Microsoft.Visualbasic" & vbCrLf &
"Public Class TempClass" & vbCrLf &
"Public Sub MyCode(ByVal Textbox2 As TextBox)" & vbCrLf &
Code & vbCrLf &
"End Sub" & vbCrLf &
"End Class"
Katero verzijo Studia imaš?
Če je kakšna starejša, boš moral uporabljat "_" za novo vrstico.
Inštaliraj si "Visual Studio Community 2013".
Možno, da ti sam VS vidi kakšen neviden znak in ti zato joka, da nekaj ni OK.
Poskusi samo:
Dim Code As String = ""
Code = "Imports System" & vbCrLf &
"Imports System.Windows.Forms" & vbCrLf &
"Imports Microsoft.Visualbasic" & vbCrLf &
"Public Class TempClass" & vbCrLf &
"Public Sub MyCode(ByVal Textbox2 As TextBox)" & vbCrLf &
Code & vbCrLf &
"End Sub" & vbCrLf &
"End Class"
Katero verzijo Studia imaš?
Če je kakšna starejša, boš moral uporabljat "_" za novo vrstico.
Inštaliraj si "Visual Studio Community 2013".
Sinclair ZX Spectrum [Zilog Z80A - 3.5 MHz, 48kB, dvojni kasetofon,
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
Zgodovina sprememb…
- spremenilo: cekr ()
win64 ::
Probaj vse v eni vrstici napisat. Ali pa na koncu vrstice uporabi : _
Tole bo najverjetnejša napaka.
Določene(ali vse) verzije visual basic-a ne podpirajo ukazov čez več vrstic kot drugi jeziki.
Uporabiti moraš znak _ , da prevajalniku poveš da se ukaz nadaljuje v naslednji vrstici.
Podobno uporabiš znak : , ko bi rad napisal več stavkov v eni vrstici.
cekr ::
Trenutno uporabljam Visual basic 2008, bom poskusil kar ste predlagali :)
To je to.
Pri sestavljanju stringa dodaj na koncu vsake vrstice še underline.
Sinclair ZX Spectrum [Zilog Z80A - 3.5 MHz, 48kB, dvojni kasetofon,
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
Zgodovina sprememb…
- spremenilo: cekr ()
Plezalec ::
Živjo, underline popravi napako ampak "pojavi se mi nova". Ko želim "compile" nek preprost ukaz npr MsgBox("123") mi stavek v kodi pobarva rumeno
Program:
https://www.dropbox.com/s/z2ifi6fd9bbam...
Napaka:
https://www.dropbox.com/s/g7rd8ua98aaxl...
Program:
https://www.dropbox.com/s/z2ifi6fd9bbam...
Napaka:
https://www.dropbox.com/s/g7rd8ua98aaxl...
Plezalec ::
Ja, kaj lahko naredim da bi odstranil ta problem. Naredil sem compiler, malo pogooglou pa sestavu tole kodo skupaj. (CodeDOM)
Če se kdo spozna naj mi prosim malo svetuje kaj narediti
LP
Če se kdo spozna naj mi prosim malo svetuje kaj narediti
LP
cekr ::
V referencah za program poskusi nastaviti tako, da se ti bodo vsi dll-ji, ki jih rabiš, kopirali v folder programa (npr. Debug) - na isto raven kot imaš exe.
Sinclair ZX Spectrum [Zilog Z80A - 3.5 MHz, 48kB, dvojni kasetofon,
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
Plezalec ::
Napiše mi tole:
"A first chance exception of type 'System.IO.FileNotFoundException' occurred in System.dll"
Pa če kliknem Call Stack
> COMPILER-ERROR.exe!WindowsApplication1.Form1.Button1_Click(Object sender = {Text = "Compile"}, System.EventArgs e = {X = 117 Y = 49 Button = System.Windows.Forms.MouseButtons.Left}) Line 35 + 0x55 bytes Basic
Hja in kako bi lahko to naredil?
"A first chance exception of type 'System.IO.FileNotFoundException' occurred in System.dll"
Pa če kliknem Call Stack
> COMPILER-ERROR.exe!WindowsApplication1.Form1.Button1_Click(Object sender = {Text = "Compile"}, System.EventArgs e = {X = 117 Y = 49 Button = System.Windows.Forms.MouseButtons.Left}) Line 35 + 0x55 bytes Basic
V referencah za program poskusi nastaviti tako, da se ti bodo vsi dll-ji, ki jih rabiš, kopirali v folder programa (npr. Debug) - na isto raven kot imaš exe.
Hja in kako bi lahko to naredil?
Zgodovina sprememb…
- spremenil: Plezalec ()
Plezalec ::
Nevem kaj moti kodo. "MyCode.dll" ki jo ustvari je v isti mapi kot *.exe ampak zmeraj napiše da ne najde fajla. Se komu sanja kaj narediti??
???
???
Zgodovina sprememb…
- spremenil: Plezalec ()
nikigre22 ::
Zdravo imam en problem. Rad bi naredil program ki bi uporablajal datoteke iz usb ključka. Ko bi bil program zagnan in ko bi vstavim ključeki bi prebral neko datoteko in program bi nadaljeval. Ampak ne vem kako naj to naredim. Uporablam visual basic.
In kaj je narobe kaj še manjka v tej odi da mi bo izpisalo podatke v textbox1.
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
My.Computer.FileSystem.ReadAllText("G:\denar.money")
In kaj je narobe kaj še manjka v tej odi da mi bo izpisalo podatke v textbox1.
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
My.Computer.FileSystem.ReadAllText("G:\denar.money")
cekr ::
Pred my.computer..... napiši:" Dim x as string je "
Potem pa to vrednost nafilaj v svoj obrazec.
Imas pa tudi gradnik, ki ti prozi,ko pride do spremembe v datoteki.
Potem pa to vrednost nafilaj v svoj obrazec.
Imas pa tudi gradnik, ki ti prozi,ko pride do spremembe v datoteki.
Sinclair ZX Spectrum [Zilog Z80A - 3.5 MHz, 48kB, dvojni kasetofon,
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
Zgodovina sprememb…
- spremenilo: cekr ()
cekr ::
Ti napiše kakšno napako?
textbox1.text=My.Computer.FileSystem.ReadAllText("G:\denar.money")
textbox1.text=My.Computer.FileSystem.ReadAllText("G:\denar.money")
Sinclair ZX Spectrum [Zilog Z80A - 3.5 MHz, 48kB, dvojni kasetofon,
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
Zgodovina sprememb…
- spremenilo: cekr ()
Yacked2 ::
Nevem kako je pri Visual Basicu ampak pri C# bi jaz dal tole branje v try, catch oklepaje, ker se ti zna zgodit, da dobi pogon drugo črko, ni pogona, ni datoteke itd...
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!
cekr ::
Nevem kako je pri Visual Basicu ampak pri C# bi jaz dal tole branje v try, catch oklepaje, ker se ti zna zgodit, da dobi pogon drugo črko, ni pogona, ni datoteke itd...
To je res, vendar bi mu že VS ven vrgel napako, če ne vidi datoteke.
Če je fiksno definirana črka pogona, ne bo šel drugam gledat.
Razlike med VB.net in C# v funkcionalnosti ni. Imata isto osnovo. Kakšne stvari so v VB malo bolj dodelane. (npr. delo z XML), kar pa ne pomeni, da v drugem ne moreš priti do istega rezultata.
Tu velja pravilo; vse je isti jezik, razlike so samo v narečjih.
Sinclair ZX Spectrum [Zilog Z80A - 3.5 MHz, 48kB, dvojni kasetofon,
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
Zgodovina sprememb…
- spremenilo: cekr ()
nikigre22 ::
Mi je uspelo mogel sem neki com importat. Zdaj pa imam nov problem.
Zakaj mi pokaže spodnji error ali je kaj narobe v kodi?
Imports System
Imports System.IO
Imports System.Text
Public Class Form9
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim path As String = "j:\dogodki\dogodek.txt"
' Create or overwrite the file.
Dim fs As FileStream = File.Create(path)
' Add text to the file.
Dim info As Byte() = New UTF8Encoding(True).GetBytes("Datum in ura dogodka:" & TextBox1.Text And "Dogodek:" & TextBox2.Text)
fs.Write(info, 0, info.Length)
fs.Close()
Form6.Show()
Me.Hide()
End Sub
Private Sub Form9_Load(sender As Object, e As EventArgs) Handles Me.Load
TextBox1.Text = TimeOfDay
End Sub
error:
Additional information: Conversion from string "Datum in ura dogodka:7:52:06 PM" to type 'Long' is not valid.
Hvala
Zakaj mi pokaže spodnji error ali je kaj narobe v kodi?
Imports System
Imports System.IO
Imports System.Text
Public Class Form9
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim path As String = "j:\dogodki\dogodek.txt"
' Create or overwrite the file.
Dim fs As FileStream = File.Create(path)
' Add text to the file.
Dim info As Byte() = New UTF8Encoding(True).GetBytes("Datum in ura dogodka:" & TextBox1.Text And "Dogodek:" & TextBox2.Text)
fs.Write(info, 0, info.Length)
fs.Close()
Form6.Show()
Me.Hide()
End Sub
Private Sub Form9_Load(sender As Object, e As EventArgs) Handles Me.Load
TextBox1.Text = TimeOfDay
End Sub
error:
Additional information: Conversion from string "Datum in ura dogodka:7:52:06 PM" to type 'Long' is not valid.
Hvala
cekr ::
Ti kaj napiše, v kateri vrstici je napaka?
Sicer pa: "And" zamenjaj z & pa bi moral skoz.
Sicer pa: "And" zamenjaj z & pa bi moral skoz.
Sinclair ZX Spectrum [Zilog Z80A - 3.5 MHz, 48kB, dvojni kasetofon,
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
nikigre22 ::
Trenutno deluje ampak ne vem kako bi dokument program dopolnjeval da bi vedno ko je gumb pritisnjen šel v naslednjo vrstico in dokumwnt dopolnil
darkolord ::
Namesto vsega tega:
Napišeš
' Create or overwrite the file. Dim fs As FileStream = File.Create(path) ' Add text to the file. Dim info As Byte() = New UTF8Encoding(True).GetBytes("Datum in ura dogodka:" & TextBox1.Text And "Dogodek:" & TextBox2.Text) fs.Write(info, 0, info.Length) fs.Close()
Napišeš
File.AppendAllText(path, "Datum in ura dogodka:" & TextBox1.Text & "Dogodek:" & TextBox2.Text)
Zgodovina sprememb…
- spremenilo: darkolord ()
nikigre22 ::
aha.
Kako bi pa lahko vsakič naredil datoteko in jo poeminoval.
Kajti koda za e pošto ne deluje in ne vem zakaj.
Dim smtpServer As New SmtpClient
Dim mail As New MailMessage()
smtpServer.Credentials = New Net.NetworkCredential("admin@nikigre.com", "geslo")
smtpServer.Port = 465
smtpServer.Host = "smtp.domenca.com"
smtpServer.EnableSsl = True
mail = New MailMessage()
mail.From = New MailAddress("admin@nikigre.com")
mail.To.Add(
mail.Subject = "Dvig denarja na bankomatu"
mail.Body ="Datum in ura dogodka:" & TextBox1.Text And "Dogodek:" & TextBox2.Text& "Dvignjeno denarja:" form3.textbox2.text
smtpServer.Send(mail)
Form6.Show()
Me.Hide()
Kako bi pa lahko vsakič naredil datoteko in jo poeminoval.
Kajti koda za e pošto ne deluje in ne vem zakaj.
Dim smtpServer As New SmtpClient
Dim mail As New MailMessage()
smtpServer.Credentials = New Net.NetworkCredential("admin@nikigre.com", "geslo")
smtpServer.Port = 465
smtpServer.Host = "smtp.domenca.com"
smtpServer.EnableSsl = True
mail = New MailMessage()
mail.From = New MailAddress("admin@nikigre.com")
mail.To.Add(
mail.Subject = "Dvig denarja na bankomatu"
mail.Body ="Datum in ura dogodka:" & TextBox1.Text And "Dogodek:" & TextBox2.Text& "Dvignjeno denarja:" form3.textbox2.text
smtpServer.Send(mail)
Form6.Show()
Me.Hide()
Zgodovina sprememb…
- spremenilo: nikigre22 ()
darkolord ::
Kako misliš vsakič naredil datoteko? Prej si rekel da bi rad v isto dodajal ...
Kaj javi ta koda za pošto?
Kaj javi ta koda za pošto?
cekr ::
Takole imaš
mail.Body ="Datum in ura dogodka:" & TextBox1.Text And "Dogodek:" & TextBox2.Text& "Dvignjeno denarja:" form3.textbox2.text
Ponovno delaš napake z "&"
mail.Body ="Datum in ura dogodka:" & TextBox1.Text & "Dogodek:" & TextBox2.Text & "Dvignjeno denarja:" & form3.textbox2.text
Pazi na presledke pred in za "&". Sicer bo napaka.
mail.Body ="Datum in ura dogodka:" & TextBox1.Text And "Dogodek:" & TextBox2.Text& "Dvignjeno denarja:" form3.textbox2.text
Ponovno delaš napake z "&"
mail.Body ="Datum in ura dogodka:" & TextBox1.Text & "Dogodek:" & TextBox2.Text & "Dvignjeno denarja:" & form3.textbox2.text
Pazi na presledke pred in za "&". Sicer bo napaka.
Sinclair ZX Spectrum [Zilog Z80A - 3.5 MHz, 48kB, dvojni kasetofon,
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
TV-OUT, radirke, Sinclair-Basic], Sinclair ZX-81 [Z80A, 3.25MHZ, 1kB]
Zgodovina sprememb…
- spremenilo: cekr ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | visual basic 2008 express editionOddelek: Programiranje | 1809 (1236) | sel |
» | [VB] Komunikacija s serijskimi napravamiOddelek: Programiranje | 2301 (1575) | mNeRo |
» | [VB 2005] branje tekstaOddelek: Programiranje | 1646 (1314) | mNeRo |
» | [ASP.NET] send mailOddelek: Programiranje | 1264 (1201) | Microsoft |
» | [Visual studio .NET] Rabim pomočOddelek: Programiranje | 1591 (1433) | darkolord |