Projektumsetzung mit VB-Script. Ich komme nicht weiter kann mir jemand helfen?
Ich habe mich für eine Ausbildung zum Fachinformatiker für Anwendungsentwicklung beworben und habe nun ein Probeprojekt zu bearbeiten. Leider komme ich nicht weiter und suche nun, nach dem ich bereits fast alles andere probiert habe, hier nach Hilfe. Hier meine Aufgabenstellung:
"Erstelle ein Programm, welches eine feste Anzahl von Zufallszahlen in eine Datei schreibt.
Erstelle das Programm als VB-Script.
Die Zufallszahlen sollten als Binärdaten in die Datei geschrieben werden. Das Programm soll zu Beginn eine Benutzereingabe anfordern, wie viele Bytes an Zufallszahlen in die Datei geschrieben werden sollen. Der Name und Speicherort der Datei soll als Konstante im Programm hinterlegt werden.
Überprüfe den Inhalt der durch das Programm erstellten Datei mit einem Hexadezimaleditor. Achte darauf, dass die Zahlen nicht als Text, sondern als Binärdaten in die Datei geschrieben wurden. Die einzelnen Bytes in der Datei müssen zufällige Werte im Bereich von 0x00 bis 0xFF aufweisen.
Zähle zur Kontrolle die Anzahl der Vorkommen jedes einzelne Wertes in der erstellten Datei, erweitere dazu Dein Programm.
Bei eine Zufallszahlendatei mit 100.000 Bytes sollte jedes Byte durchschnittlich etwa 390 Mal vorkommen.
Gib eine Liste der Werte und ihrer Anzahl in eine separate Textdatei aus."
Ich habe bereits versucht mich zu informieren und habe auch ein Hexadezimaleditor (HxD) heruntergeladen.
Wenn irgendjemand weiß wie ich nun am besten vorgehen kann oder mir bei dieser Aufgabe behilflich sein kann, wäre das eine große Erleichterung. Ich weiß leider wirklich nicht mehr weiter.
Vielen Dank im Vorraus!
Nur als Side Info: Ich bin 15 Jahre alt und habe ungefähr vor einem halben Jahr angefangen mich mehr mit Programmierung auseinander zu setzten. Ja, ich kann und kenne sehr viele Dinge noch nicht, deswegen will ich ja lernen und eine Ausbildung machen. Ich weiß auch nicht warum ausgerechnet diese Sprache für die Aufgabe genommen wurde, ich weiß nur das ich die Aufgabe halbwegs gut meistern muss. Mir ist es nicht untersagt hilfe zu suchen, im Gegenteil, der Arbeitgeber möchte Prüfen wie ich verschiedene Probleme löse( auch mit hilfe)
Vielen Dank!
A) Wieso wird hier VBS verwendet? Das wird schon lange nicht mehr regulär verwendet, B) Wenn du schon damit Schwierigkeiten hast, bin ich eher Sprachlos
A) Es ist eine Testaufgabe. Ich weiß nicht wieso VBScript dafür verwendet werden soll
B) Ich habe zuvor nur mit HTML und ein wenig Java_Script gearbeitet und noch nie mit VB-Script
Lass Dich von Kommentaren nicht unterkriegen. Den Schreibern wurde die Programmierweisheit auch nicht mit dem Löffel eingetrichtert.
Danke
2 Antworten
Ich habe keine Ahnung warum Irgendwer heute och auf VBScript setzt.
Die Sprache wird seit 2009 nicht mehr weiterentwickelt und wird in kürze komplett aus dem System verschwinden. Sie heute noch zu verwenden grenzt an Leichenfledderei!
und suche nun
...da kannst Du lange suchen😅
Klassisches VBScript ist nur mit sehr viel Trickserei/Missbrauch dazu fähig.
VBScript kennt weder Bytearray noch Binärdateien! Man Kann mit "Fremdobjekten" wie ADODB.Stream arbeiten, dies setzt natürlich voraus, das Diese auch im System vorhanden sind.
Zur Not kann man einen String als Behälter für einzelne Bytes/Chars verwenden. ..diesen mit der gewünschten Anzahl von zufälligen ASCII-Zeichen von 0 bis 255 füllen und anschließend in eine Datei schreiben.
...also fleddere ich mal die Leiche...:
create_random_bin_file.vbs
Input = InputBox("Enter number of Bytes to write")
'ich verzichte auf einen Check ob der Input eine Zahl ist
Dim arrReportBytes(255) 'array zum zählen des auftretens der einzelnen zufälligen Werte
Dim myBinaryString 'fake ByteArray
Dim byteValue
'mit 0en füllen...
For n=0 To 255
arrReportBytes(n) = 0
Next
'los gehts...
Randomize
For n=1 To Input
byteValue = int(Rnd*( &H0FF +1)) 'zufälliger Wert von 0 bis 255 (0x0FF) !!!cint()/clong() runden falsch!!! int() rundet ab, darum +1)
myBinaryString = myBinaryString & Chr(byteValue) 'hänge das ASCII-Zeichen mit dem Wert an den String an
arrReportBytes(byteValue) = arrReportBytes(byteValue) +1 'zähle das Auftreten des Wertes
Next
Set FS = CreateObject("Scripting.FileSystemObject")
Set TextStream = FS.CreateTextFile("test.binary")
'schreibe das so erzeugte falsche "Array"
TextStream.Write myBinaryString
TextStream.Close
Set ReportFile = FS.CreateTextFile("Report.txt")
For n=0 To 255
ReportFile.WriteLine "Wert: 0x" & Hex(n) & " existiert " & arrReportBytes(n) & " mal."
Next
ReportFile.Close
MsgBox("Fertich...")
Tut mir leid, ich weiß leider auch nicht warum ausgerechnet VBScript genommen wurde. Ich kann mich aber auch schlecht beschweren, dies soll ja immerhin eine Testaufgabe sein und es wird unteranderem getestet wie stark meine Problemlösefähigkeit geprägt ist. Vielen Dank für Ihre Antwort, Sie haben mir bisher am besten weiter geholfen. Entschuldigung für die Unannehmlichkeiten und nochmal Herzlichen Dank!
Der erste Schritt wäre in der Dokumentation vorbei zu schauen. Bei Visual Basic hast du sogar den Luxus das diese auf Deutsch verfügbar ist.
An sich ist das Vorgehen dabei sehr einfach. Als erstes muss natürlich eingelesen werden wie viele Zufallszahlen generiert werden sollen. Anhand der eingelesenen Anzahl würde ich ein Array vom Typ byte erstellen mit der gegebenen Kapazität. Nun ist würde ich in einer For-Schleife (hier scheinbar 'For...Next' genannt) das Array mit Zufallszahlen füllen. Im nächsten Schritt müssen natürlich die generierten Zufallszahlen in die Datei geschrieben werden. Das wars auch schon und wie du siehst findet man alles in der Dokumentation oder per Google Suche.
Ergänzung: Da du angemerkt hast das du noch nie mit Visual Basic gearbeitet hast macht auch sinn sich anzuschauen wie man überhaupt eine Anwendung erstellt (musst darauf achten, dass du dort nicht C# sondern Visual Basic auswählst).
Allerdings muss man anmerken das wie schon von Bizarrus erwähnt Visual Basic wirklich nicht mehr Zeitgemäß ist und auch wenn es eine Testaufgabe ist es nicht viel sinn macht dafür Visual Basic zu nutzen.
lg Suiram1
Wie gesagt, was sich der Arbeitgeber dabei gedacht hat weiß ich leider auch nicht, aber trotzdem Danke
das soll VBScript werden und nicht VB.Net das ist ein gewaltiger Unterschied. VBScript kennt keine Datentypen . und schon garnicht ein Array vom Typ Byte