2016-05-17 23 views
0

Hey Leute, ich bin relativ neu in der Informatik und ich fragte mich, warum mein Code nicht funktioniert. Mein Lehrer sagte mir, ich solle eine Visitenkarte entwerfen und sie in eine Binärdatei speichern, aber wenn ich speichere, überprüfe ich die Datei, da ist nichts da. und wenn ich die Datei nichts geladen werden ausgegeben, so dass ich frage mich, ob jemand helfen könnteSpeichern Binärdatei

Code:

Imports System.IO 

Module Module1 

    Dim firstname As String 
    Dim secondname As String 
    Dim address As String 
    Dim postcode As String 
    Dim telephone As String 
    Dim email As String 
    Structure Details 
     Dim firstname As String 
     Dim secondname As String 
     Dim address As String 
     Dim postcode As String 
     Dim telephone As String 
     Dim email As String 
    End Structure 
    Sub Main() 
     Console.WriteLine("Do you want to (l)oad, or (c)hose?") 
     Dim decision As String = Console.ReadLine.ToUpper 
     If decision = "L" Then 
      load() 
      Main() 
     End If 
     If decision = "C" Then 
      chose() 
      Console.WriteLine("Saving") 
      save() 
      Main() 
     End If 
     Console.Read() 
    End Sub 
    Private Sub load() 
     Console.WriteLine("File name?") 
     Dim filename As String = Console.ReadLine + ".txt" 
     If (File.Exists(filename)) Then 
      Dim det As Details = New Details() 
      FileOpen(1, filename, OpenMode.Binary) 
      FileGet(1, det) 
      FileClose() 
      firstname = det.firstname 
      secondname = det.secondname 
      address = det.address 
      postcode = det.postcode 
      telephone = det.telephone 
      email = det.email 
      Console.WriteLine("Firstname =" & firstname) 
      Console.WriteLine("secondname =" & secondname) 
      Console.WriteLine("address =" & address) 
      Console.WriteLine("postcode =" & postcode) 
      Console.WriteLine("telephone =" & telephone) 
      Console.WriteLine("email =" & email) 
     End If 
    End Sub 
    Private Sub save() 
     Console.WriteLine("Enter a name for your file") 
     Dim filename As String = Console.ReadLine() + ".txt" 
     Dim det As Details = New Details() 
     det.firstname = firstname 
     det.secondname = secondname 
     det.address = address 
     det.postcode = postcode 
     det.telephone = telephone 
     det.email = email 

     FileOpen(1, filename, OpenMode.Binary) 
     FilePut(1, det) 
     FileClose() 
    End Sub 
    Private Sub chose() 
     Console.WriteLine() 
     Console.WriteLine("Enter your first name") 
     Dim firstname As String = Console.ReadLine 
     Console.WriteLine("Enter your second name") 
     Dim secondname As String = Console.ReadLine 
     Console.WriteLine("Enter your adress ") 
     Dim address As String = Console.ReadLine 
     Console.WriteLine("Enter your postcode") 
     Dim postcode As String = Console.ReadLine 
     Console.WriteLine("Enter your telephone") 
     Dim telephone As String = Console.ReadLine 
     Console.WriteLine("Enter your email") 
     Dim email As String = Console.ReadLine 
    End Sub 
End Module 
+0

Sieht aus wie VB6 oder vb.net mir, auf jeden Fall nicht vba - Sie könnten die Tags bearbeiten möchten, und ein anderes Publikum versuchen :) – Dave

+0

Ja, das ist VB.Net. Sie erhalten mehr VB.Net-Fische mit einem VB.Net-Tag. :) http://checktechno.blogspot.com/2013/04/difference-between-vbnet-and-vba.html – Tim

+0

Wenn Sie wirklich VB.NET verwenden, und nicht VB6 oder etwas älter, sollten Sie die .NET-Klassen verwenden und Methoden zum Erstellen der Datei. Definiere auch _ "binary file" _, es gibt viele Arten von Binärdateien. –

Antwort

1

Sie haben bereits den Vornamen erklärt, secondname, etc Variablen global so sich nicht dimensioniert wieder in der chose Sub oder sie werden verschiedene lokale Variablen sein.

es sein sollte:

Private Sub chose() 
     Console.WriteLine() 
     Console.WriteLine("Enter your first name") 
     firstname = Console.ReadLine 
     Console.WriteLine("Enter your second name") 
     secondname = Console.ReadLine 
     Console.WriteLine("Enter your adress ") 
     address = Console.ReadLine 
     Console.WriteLine("Enter your postcode") 
     postcode = Console.ReadLine 
     Console.WriteLine("Enter your telephone") 
     telephone = Console.ReadLine 
     Console.WriteLine("Enter your email") 
     email = Console.ReadLine 
    End Sub 
+0

Vielen Dank! –