Alle meine Daten (Name/Rollnummer/Klasse) hat eine feste Länge (14 Bytes), ich möchte, dass das Programm einen zufälligen Namen aus dem Array nehmen, dann Mach eine zufällige Rollnummer und schreibe weiter in eine Datei, bis ich "A" drücke.Ich kann keine Daten in eine Binärdatei in einer Schleife schreiben
Nachdem ich das Programm beendet habe, sind die ersten 14 Bytes immer leer und dann sind meine Daten in den nächsten 14 Bytes. Nicht mehr, nicht weniger. Ich weiß nicht, warum es nur einen Datensatz geschrieben hat.
Dies ist mein Code:
Dim randomvalue As Integer
'Making this array so that each data entry has 14 bytes to it
Dim array1(91) As Integer
array1(1) = 14
For x = 2 To 91
array1(x) = array1(x) + 14
Next
Dim n1, n2, n3, n4 As Integer
'Array with names of fixed lenght, I want to take a name from only these 9:
Dim array2(9) As String
array2(1) = "aleen"
array2(2) = "talha"
array2(3) = "waddi"
array2(4) = "hasna"
array2(5) = "hassa"
array2(6) = "zainn"
array2(7) = "faqeh"
array2(8) = "furru"
array2(9) = "ibrah"
'There is a structure above submain with studentname/rollnumber/class all declared as string
Dim newstudent As student
Dim studentstream As New FileStream("C:\Users\Students\Desktop\A2Filing.dat", FileMode.OpenOrCreate)
Dim bw As New BinaryWriter(studentstream)
While Console.ReadLine <> "A"
Console.WriteLine("Press any key other than 'A' if you want to make another entry into the file")
'CInt(Math.Floor((upperlimit - lowerlimit + 1) * Rnd())) + lowerlimit
'Randomize a number b/w 1-9 to get a studentname from the array
randomvalue = CInt(Math.Floor((9 - 1 + 1) * Rnd())) + 1
newstudent.studentname = array2(randomvalue)
n1 = Rnd() + (Rnd() * 50)
n2 = Rnd() * 10
n3 = Rnd() * 255
n4 = Rnd() * Rnd()
newstudent.rollnumber = Convert.ToString(Left(n1, 1) + Left(n2, 1) + Left(n3, 1) + Left(n4, 1))
newstudent.studentclass = "A2"
'Randomize a number between 91 and 1 to place the data in
Dim randomvalue2 As Integer
randomvalue2 = CInt(Math.Floor((91 - 1 + 1) * Rnd())) + 1
studentstream.Position = array1(randomvalue2)
bw.Write(newstudent.studentname)
bw.Write(newstudent.rollnumber)
bw.Write(newstudent.studentclass)
End While
es Ihnen danken! Es funktionierte, entschied ich mich, diese studentstream.Position = array1 (randomvalue2) zu halten, weil ich keine Daten an die Datei anhängen wollte, ich möchte es an einem zufälligen Ort (auch ein Überlauf-Ding gemacht: eine While-Schleife, die + hinzufügt) 1 bis zur studentstream.position, bis sie auf einen leeren Platz trifft) –