Laden...

Array-Elemente in Zeichenfolge gliedern

Erstellt von Mele90 vor 2 Jahren Letzter Beitrag vor 2 Jahren 447 Views
M
Mele90 Themenstarter:in
3 Beiträge seit 2021
vor 2 Jahren
Array-Elemente in Zeichenfolge gliedern

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

Hinweis von Abt vor 2 Jahren

Bitte Code in Zukunft selbst formatieren [Hinweis] Wie poste ich richtig?

P
441 Beiträge seit 2014
vor 2 Jahren

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

  • Environment.NewLine enthält einen Zeilenumbruch als 2 Zeichen (Windows)
  • % ist der Modulo Operator [/list]
M
Mele90 Themenstarter:in
3 Beiträge seit 2021
vor 2 Jahren

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.

16.807 Beiträge seit 2008
vor 2 Jahren

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 😉

2.298 Beiträge seit 2010
vor 2 Jahren

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 |

M
Mele90 Themenstarter:in
3 Beiträge seit 2021
vor 2 Jahren

Hallo inflames2k,

es sind 11 Zeichen gemeint pro Zeile.
Die hälfte soll weggelassen werden.

LG Melanie