nochmal zu meinem Byte-Array...
Soweit klappt jetzt alles super, es gibt keine Fehlermeldungen mehr.....
Die Konsolenausgabe und das Schreiben in die Datei mit den entsprechenden Zeichen funktioniert auch....
Der Code wird mir aber nur in einer Reihe angezeigt, anstatt mit einer Splittung in 7 Reihen....
Irgendwo ist also ein kleiner Denkfehler....
Der Denkfehler ist der Aufbau/Struktur des Arrays.
Dein Array über 7 Zeilen zu initialisieren, splittet für dich nicht direkt die Ausgabe.
Somit fehlt bei der Ausgabe des Arrays noch die Information ab welcher Stelle der Zeilenumbruch stattfinden soll.
Ein Array ist nur eine Datenstruktur und kennt keine Formatierungen. Die Aufteilung im Code ist nur im Code, der Compiler liest das als eine Zeile.
Du schreibst in deiner for-Schleife jedes Item nacheinander, da ist nirgendwo ein Zeilenumbruch, also wird auch kein Zeilenumbruch angezeigt.
Entweder Du verwendest ein zweidimensionales Array
Oder Du fügst immer dann eine neue Zeile ein, wenn Du eine neue Zeile haben willst.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Palladin007 am .
Habe den Code etwas umgeschrieben.....
Da scheint aber noch etwas falsch zu sein....
Ich erhalte keine Fehlermeldung, aber bei der Konsolenausgabe habe ich nur ein schwarzes Bild....
Habe ein zweidimensionales Array erstellt byte[,] array = new byte[7, 11];, aber irgendwo steckt immer noch ein Denkfehler von mir....
Du erstellst ein zweidimensionales Array, füllst es aber nicht mit Daten und ignorierst beim Schreiben des Arrays in die Konsole, dass es zweidimensional ist.
Schau dir an, was ein zweidimensionales Array ist und wie man es benutzt, dann wird es sicher auch etwas klarer.
Und pack mal in die Main()....Methode noch ein System.ReadKey()
Dann wird es sich auch nicht schließen.....
.....an unhandled exception is the first way to think about your pattern of programming....
.....nur weil ich nicht weiß was dort passiert, bedeutet es nicht, dass ich nicht weiß, wie man es lösen kann - aber das ist wahrscheinlich....
bin immer noch mit dieser Aufgabe beschäftigt....
Die Zeichen werden alle richtig ausgegeben....
Fehlermeldungen erhalte ich keine.....
Irgendwie habe ich eine totale Blockade und weiß nicht weiter. Egal was ich mache, es funktioniert einfach nicht.
Habe es mit einer try-catch-Anweisung versucht, mit einer content-Anweisung, mit einer verschachtelten for-Schleife.....
Ich habe auch in der Dokumentation recherchiert....
Wie bekomme ich die 7 Zeilen vom Byte-Array untereinander??? Hat evtl. jemand ein Code-Beispiel für mich?
Mein Code sieht derzeit so aus:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ESAAufgabe2
{
class Program
{
public void ESA2IN(string pfad, byte[,] array)
{
FileStream stream = File.Open(pfad, FileMode.OpenOrCreate);
for (int i = 0; i < 7; i++)
{
for (int j = 0; j < 11; j++)
{
stream.WriteByte(array[i, j]);
}
}
stream.Close();
}
public void ESA2Out(string pfad)
{
StreamReader reader = new StreamReader(File.Open(pfad, FileMode.Open));
int zeichen;
while ((zeichen = reader.Read()) != -1)
{
Console.Write((char)zeichen);
}
Console.WriteLine();
reader.Close();
}
static void Main(string[] args)
{
Program test = new Program();
string pfad = @"C:\Users\admin\source\repos\CSH-Lehrgang\CSH03\VS-Projekte\Buch CSH03\ESAAufgabe2\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);
test.ESA2Out(pfad);
}
}
}