Hej! <code> Han använder VB.NET så det där kommer inte funka :) Använder jag VB.NET, hur vet du det om jag inte vet det :P Om du använder Visual Studio eller Visual Basic med nummer 2002, 2003, 2005, 2008 eller nyare så är det VB.NET du programmerar i. Jag testade koden till att spara till windowsregistret men lyckas inte spara, koden ser ut så här: Det är två saker som gör att det inte fungerar. Me.Opacity = regKey.GetValue("opacity") Har du dessa två rader innan dess? ja det står bakom, men glömde säga innan att när jag lägger till i registret: Du ska bara skicka med en parameter i CreateSubKey som i mitt exempel. Wow, du är riktigt grym på VB.NET, nu funkar allt, men jag fattar inte hur du gjorde för att göra det du gjorde hehe :P Jag har faktiskt aldrig gjort nåt program i VB.NET. Men kan C# och det är så pass likt att VB.NET blir lätt. Ok... Den tilldelas ju ett värde på rad 4, regValue = regKey.GetValue("Text1"), GetValue returnerar ju antingen värdet eller Nothing! wops, det ser jag nu :P Ingen fara, det är kul att hjälpa till och man lär sig samtidigt mer själv. Bara för att du verkar vara duktig på C#, eller rättare sagt för att du är duktig på C# så måste jag fråga en fråga inom det då jag är intresserad av det (intresserad INTE duktig) :P I C# finns den koden på annat ställe. Alltså koden som bestämmer vilken metod som ska anropas. wow shit...Visual basic, spara data.
Jag vet inte vad jag ska göra nu egentligen...
Jag lär mig visual basic och det är rätt tråkigt att lära sig det om man inte kan spara data.
Vad i visual basic ska man använda sig av för att spara data, utan att ha tillgång till internet.
Datan ska sparas på datan på ett enkelt och smidigt sätt.
Tack //Albert
... PS sparade nog i fel forumdel också kanske ...Sv: Visual basic, spara data.
Dim FileNr As Integer
FileNr = FreeFile
Open "C:\fil.txt" For Output As #FileNr
Print #FileNr, "Det du vill spara"
Close #FileNr
</code>
/ThomasSv: Visual basic, spara data.
Finns ju flera sätt att göra, t.ex.:
1. Spara värde i en fil.
Imports System.IO
'Spara
Dim sw As New StreamWriter("Filnamn.txt")
sw.Write(TextBox1.Text)
sw.Close()
'Läsa
Dim sr As New StreamReader("Filnamn.txt")
TextBox1.Text = sr.ReadToEnd()
sr.Close()
2. Spara värde till registret.
Imports Microsoft.Win32
'Spara
Dim regKey As RegistryKey
regKey = Registry.CurrentUser.CreateSubKey("Software\MittProgram")
regKey.SetValue("Text1", TextBox1.Text)
regKey.Close()
'Läsa
Dim regKey As RegistryKey
regKey = Registry.CurrentUser.OpenSubKey("Software\MittProgram")
TextBox1.Text = regKey.GetValue("Text1")
regKey.Close()
3. Spara värde till en databas.
Sv:Visual basic, spara data.
Jag vet inte skillnaden på VB.NET och vanliga visual basic.
Tack för svaren, måste nu bara f reda på vad jag egentligen använder :SSv: Visual basic, spara data.
Du sa i en annan tråd att du använde 2008.
Gamla Visual Basic-språket används i den gamla versionen av Visual Basic-programmet, version 6 från 1998 och tidigare.Sv:Visual basic, spara data.
Dim regKey As RegistryKey
regKey = Registry.LocalMachine.OpenSubKey("Software\webbrowser", True)
regKey.SetValue("opacity", 1 - opacreglage.Value / opacreglage.Maximum)
regKey.Close()
och längst upp i koden står det: Imports Microsoft.Win32, annars blev det felmeddelande.
Inget felmeddelande visas heller...och jag gick in i kör - regedit men jag hittade inte den där heller...
Vet någon felet?
TackSv: Visual basic, spara data.
1. Nyckeln finns inte och kan därför inte öppnas.
Lösning: Använd CreateSubKey istället.
2. Du använder Windows Vista och det ger inte tillgång till LocalMachine.
Lösning: Använd CurrentUser istället.
Jag har ändrat mitt exempel ovan.Sv:Visual basic, spara data.
Det är det enda som blir fel. Det står :
Objektreferensen har inte angetts som en instans av ett objektSv: Visual basic, spara data.
Dim regKey As RegistryKey
regKey = Registry.CurrentUser.OpenSubKey("Software\webbrowser")
Finns nyckeln i regedit?Sv:Visual basic, spara data.
Dim regKey As RegistryKey
regKey = Registry.CurrentUser.CreateSubKey("Software\webbrowser", True)
regKey.SetValue("opacity", 1 - opacreglage.Value / opacreglage.Maximum)
regKey.Close()
regKey = Registry.CurrentUser.CreateSubKey("Software\webbrowser", True)
Den raden blir fel och jag får felmeddelande:
Angivet värde för RegistryKeyPermissionCheck är ogiltigt. Parameternamn: mode
Så löser jag det, kan det bli enklare att lösa det andra kanske, har sökt på google men iinte fått upp något bra alls...
Tack för att du hjälper mig //Albert :)Sv: Visual basic, spara data.
Ändra
Registry.CurrentUser.CreateSubKey("Software\webbrowser", True)
till
Registry.CurrentUser.CreateSubKey("Software\webbrowser")Sv:Visual basic, spara data.
Du är grym :)
Dock så är det en grej jag måste få klart för mig, om du vet svaret så skulle jag uppskattat om du skrev dom här, tack :)
Hur kan jag få reda på om det finns något i registret?
Om det inte finns något i registret ska det komma ett värde annars inte, för vad händer om den hämtar ett värde som inte finns?
Tack så jätte mycket //Albert - WebbHelpSv: Visual basic, spara data.
Så här står det i dokumentationen:
GetValue(String) --- Retrieves the value associated with the specified name. Returns a null reference (Nothing in Visual Basic) if the name/value pair does not exist in the registry.
Det betyder att du kan göra så här (förutsatt att nyckeln "Software\MittProgram" finns):
Dim regKey As RegistryKey
Dim regValue As Object = Nothing
regKey = Registry.CurrentUser.OpenSubKey("Software\MittProgram")
regValue = regKey.GetValue("Text1")
regKey.Close()
If regValue = Nothing Then
'Värdet fanns inte
Else
TextBox1.Text = regValue
End If
Det finns även metoder som listar alla värden man har, t.ex.: GetValueNames
Sv:Visual basic, spara data.
Det ser konstigt ut att du bara deklarerar variabeln, regValue men använder inte den mer än att kolla om den är nothing, och det ger du väl den som värde i början... jag förstår inte hur den kan kolla om det inte finns något på just den "subKey" som man letar i...
En grej till. hur nära är C# likt VB.NET, jag gjorde samma webbläsare fast mycket mindre funktioner i, och då såg språket extremt lika ut, så vad är egentligen skillnaden, vad mer kan man göra i C#?Sv: Visual basic, spara data.
VB.NET är lättare för nybörjare och de som använt gamla VB. C# är mer avancerat och lättare för de som är vana vid andra liknande språk, t.ex. C++.Sv:Visual basic, spara data.
Jag började smått innan med C++, men lite jobbigt med att tänka på allt att programmet ska köras hela tiden och inte avslutas direkt om man inte sätter allt i en lop eller kör emd cin och allt vad det fanns.
Är inte C# lite som vb.net att man måste lära in det och sen är den enklare att använda det, alltså det krävs inte fullt lika mycket förståelse för det som i C++, eller har jag fel, eller du kanske inte vet, vad vet jag :P
+ Tack så hemskt mycket för att du hjälper mig, du har hjälpt mig extremt mycket och jag kan säga att det känns som jag kan 1000000 grejer mer nu än innan. så tack så mycket :)
Förresten, vad brukar du köra med, vad är bäst att spara i, windows register eller vanliga filer?
eller det kanske är svårt att veta, försöker bara få en bra uppfattning av hur man ska koda...Sv: Visual basic, spara data.
Jag brukar spara i registret, det är ju tänkt att man ska göra det i Windows. Ibland har jag även sparat till XML-filer.
.NET-språken C# och VB.NET är enklare än C++. Det tycker jag även om jag jobbat med C++ i flera år. Så de är bra för nybörjare, särskilt VB.Sv:Visual basic, spara data.
public Form1()
{
InitializeComponent();
}
private void todo_TextChanged(object sender, EventArgs e)
{
txt.Text = todo.Text;
}
Jag bara gjorde snabbt så att texten du skriver i ett fält skrivs direkt i en label.
Min fråga gäller: private void todo_TextChanged(object sender, EventArgs e)
Det ser jag själv med egna ögon att det inte är likadant som VB.NET och det visste jag innan, men bara för att förstå det mer undra rjag om, hur detta fungerar:
Hur vet den att jag vill att det ska hända vid textändring, det är väl inte: todo_TextChanged, för det trodde jag var namnet på det som i VB.NET, eller?
Det andra vet jag att den skickar med data om vilken tangent o s v som jag använde, men hur vet den vad jag vill göra, alltså textChanged?Sv: Visual basic, spara data.
Om du lagt till eventet med designern så hittar du den i Form1.Designer.cs.
Ser ut ungefär så här:
this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
Den säger att när texten i textBox1 ändras så anropas metoden textBox1_TextChanged.
Här kan vi se en fördel med C#. Man kan i mer avancerade fall enklare använda samma metod för många olika event. Går i VB.NET men blir mer rörigt då.
Sv:Visual basic, spara data.
Jag såg all kod, det är sådan kod som gör att man plötsligt älskar program som visual basic 2008, Usch tänk att skriva den kod för hand :P
tack så mycket, nu ska jag och min hjärna bråka om VB.NET eller C# eller BÅDA :D