Guten Abend zusammen,
ich soll folgende Aufgabe lösen und benötige etwas Unterstützung
Gegeben sei das folgende Byte-Array:
byte[] array = {32, 32, 67, 67, 32, 32, 32, 35, 32, 35, 32,
32, 67, 32, 32, 67, 32, 32, 35, 32, 35, 32,
67, 32, 32, 32, 32, 32, 35, 35, 35, 35, 35,
67, 32, 32, 32, 32, 32, 32, 35, 32, 35, 32,
67, 32, 32, 32, 32, 32, 35, 35, 35, 35, 35,
32, 67, 32, 32, 67, 32, 32, 35, 32, 35, 32,
32, 32, 67, 67, 32, 32, 32, 35, 32, 35, 32 };
Schreiben Sie eine Methode, mit der dieses Array in eine in Ihrem Projektmappenordner anzulegende Datei „ESA2.txt“ gespeichert werden kann.
Schreiben Sie eine weitere Methode, mit der dieses Array aus der Datei ausgelesen und auf Konsole ausgegeben werden kann.
Die Konsolenausgabe soll in sieben Zeilen mit jeweils elf Zeichen gegliedert werden – dies entspricht auch der vorstehenden Anordnung der Array-Elemente.
Achtung: eine Zeile im Array besteht aus 33 Zeichen – Konsolenausgabe soll hingegen elf Zeichen umfassen!
Hier ist mein Code, den ich geschrieben habe:
using System;
using System.IO;
namespace ESA_2
{
class Program
{
public void ESA2In(string pfad, byte[] array)
{
FileStream stream = File.Open(pfad, FileMode.Create);
for (int i=0; i<array.Length; i++)
{
stream.WriteByte(array[i]);
}
stream.Close();
}
// Aufruf in Main
static void Main(string[]args)
{
Program test = new Program();
string pfad = @"C:\Users\Melanie Schlosser\ESA2.txt";
byte[] array= { 32, 32, 67, 67, 32, 32, 32, 35, 32, 35, 32,
32, 67, 32, 32, 67, 32, 32, 35, 32, 35, 32,
67, 32, 32, 32, 32, 32, 35, 35, 35, 35, 35,
67, 32, 32, 32, 32, 32, 32, 35, 32, 35, 32,
67, 32, 32, 32, 32, 32, 35, 35, 35, 35, 35,
32, 67, 32, 32, 67, 32, 32, 35, 32, 35, 32,
32, 32, 67, 67, 32, 32, 32, 35, 32, 35, 32 };
test.ESA2In(pfad, array);
}
public void ESA2Out(string pfad)
{
StreamReader reader = new StreamReader(File.Open(pfad, FileMode.Open));
int i;
while ((i = reader.Read()) != -1)
Console.WriteLine("{0}", i);
Console.WriteLine();
reader.Close();
}
}
}
Vielen Dank für eure Hilfe
LG
Melanie
Bitte Code in Zukunft selbst formatieren [Hinweis] Wie poste ich richtig?
Hi,
woran scheiterst du?
Deine Datei wird vermutlich 32 mal den Inhalt des Arrays enthalten.
Logisch, was du machen musst, in dem Stil, in dem du bereits angefangen hast.
Beim Schreiben zählst du mit, wenn du 33 Zeichen geschrieben hast, schreibst du als nächstes ein NewLine (anstatt mitzählen kannst du auch rechnen i %33 == 0).
Beim lesen verwirfst du einfach die NewLine und setzt dir einen String zusammen den du jedesmal, wenn i %11 == 0 per Console.WriteLine schreibst, alternativ kannst du hier genauso arbeiten wie beim schreiben und nach 11 Zeichen ein NewLine einfügen.
Tipps:* stream.WriteByte(array_) schreibt nur das aktuelle Zeichen, nicht alle* Console.WriteLine schreibt die Zeichen + ein NewLine, Console.Write würde nur die Zeichen schreibenm, die du möchtest
Guten Abend,
danke für den Hinweis.
würdest du eventuell den Code mal schreiben, da ich momentan auf dem Schlauch stehe.
Dank
Zu deiner Frage, was ich als Ausgabe bekomme:
CC # # C C # # C #####
Ich müsste aber alle Zeichen ausgegeben bekommen.
Danke.
Das Forum ist kein kostenloser Quellcode-Generator oder Hausaufgaben-Löser. Der Sinn eines Forum ist, dass Dir so geholfen wird, dass Du das Problem verstehst und etwas lernst.
Siehe [Hinweis] Wie poste ich richtig?
Wenn Du irgendwo auf dem Schlauch stehst, dann sag was Du probiert hast und wo Du nicht weiter kommst.
Aber "Hey, schreib mir mal den Code" is nich 😉
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Sind die 11 Zeichen pro Zeile eigentlich ernst gemeint? Dann wird doch die hälfte verschluckt. Ich meine klar, wenn nur die Kommas ausgegeben werden passt es. - Aber die Zahlen sind ja schon 22 Zeichen auf 7 Zeilen.
Sind hier nicht eher 22 Zeichen pro Zeile gemeint und nur die Kommas sollen weggelassen werden?
Wissen ist nicht alles. Man muss es auch anwenden können.
PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |
Hallo inflames2k,
es sind 11 Zeichen gemeint pro Zeile.
Die hälfte soll weggelassen werden.
LG Melanie