Laden...

Forenbeiträge von DaPedro Ingesamt 10 Beiträge

20.11.2007 - 12:44 Uhr

der fehler tritt anscheinend nur in verbindung mit vista auf..
habe es auf einem xp rechner probiert und dort hat das speichern einwandfrei geklappt..
trotzdem danke

20.11.2007 - 10:23 Uhr

hey,

danke für die hilfe.
aber im grunde ist ja die hexausgabe OK, nur der klartext rechts zeigt mir die Zeichen nicht an...

habe es eben mal mit char anstatt byte als ausgabe probiert aber half auch nichts. in einem anderen hexeditor gibt er mir zwar was aus aber nicht das eigentliche zeichen.

inwiefern kann mir die encoding-klasse helfen?

gruß

20.11.2007 - 10:03 Uhr

hi,
hätte noch mehr beispiele bringen sollen 🙂
in den zeilen ist keine 80 vorhanden...

zumal die ausgabe auf dem monitor "richtig" ist, sprich er gibt alles aus. und in der datei kommen diese fehler obwohl gleicher code, gleiche prozedur...

gruß

20.11.2007 - 09:48 Uhr

Hallo,

ich habe ein Problem. Und zwar habe ich einen kleinen Hexeditor gebastelt bei dem ich auswählen kann ob die Ausgabe auf dem Monitor oder in der Datei sein soll.

Obwohl die Ausgabe von Monitor und Datei den gleichen Code haben ( außer natürlich bei Monitor Console.Writeline und bei der Datei StreamWriter-Objekt.Writeline ) schreibt er stellenweise keine Zeichen in die Datei.
Ich lese die Datei Byteweise ein und ersetze die nicht-druckbaren Zeichen -ascii 0-31- durch blank (32).

hier mal der code zur dateiausgabe


    class output_datei
    {
        private int count; // Zähler, Anzahl Zeichen
        private int adresse;
        private byte[] textpart;
        private int arr_index;
        private int lastline;

        //Konstruktor
        public output_datei()
        {
            count = 0;
            adresse = 0;
            arr_index = 0;
            lastline = 0;
        }

        public void out_datei(ref byte[] text_hex, ref byte[] text_clear)
        {
            int i;
            textpart = new byte[text_clear.Length];
            StreamWriter schreiben = new StreamWriter("hexdump.txt", false); //Schreibstream öffnen

            // Speichere im geprüften Array die Werte als Byte
            for (i = 0; i < text_clear.Length; i++)
            {
                textpart[i] = text_clear[i];
            }

            try
            {
                for (i = 0; i < text_hex.Length; i++)
                {
                    // in jeder neuen Zeile Adressoffset ausgeben
                    if (count == 0)
                        schreiben.Write("{0:X4} ", adresse);

                    //Ausgabe des aktuellen Zeichen als HEX !
                    schreiben.Write(" {0:X2}", text_hex[i]);
                    count++; // erhöhe Zähler

                    // Gebe 16 Zeichen als Hex aus und danach der Text
                    if (count == 16)
                    {
                        schreiben.Write("\t");
                        // Gebe die Hexzeichen als Text aus
                        for (int j = 0; j < count; j++)
                        {
                            schreiben.Write("{0}", (char)textpart[arr_index]);
                            arr_index++;
                        }
                        schreiben.WriteLine("");
                        adresse += count; // Adressoffset neu berechnen
                        count = 0; // Counter zurücksetzen

                        // Prüfen ob die nächste Ausgabezeile die letzte sein könnte
                        if ((text_hex.Length - i < 16) && lastline == 0)
                        {
                            lastline = 1;
                        }
                    }
                }
                // Prüfe ob letzte Zeile und alle Zeichen als Hex ausgegeben wurden
                if ((lastline == 1) && (i == textpart.Length))
                {
                    tab(ref schreiben);// den Textabschnitt bündig zu den anderen ausgeben
                    // Ausgabe des letzten Textabschnitts
                    for (int j = 0; j < count; j++)
                    {
                        schreiben.Write("{0}", textpart[arr_index]);
                        arr_index++;
                    }
                    schreiben.WriteLine("");
                }
            }
            catch (Exception e)
            {
                schreiben.WriteLine("Fehler: ");
                schreiben.Write("{0}", e.Message);
            }
            finally
            {
                schreiben.Flush();// Puffer leeren
                schreiben.Close();// Stream schließen
            }
        }

Hier noch Bilder um sich ein Bild von der unterschiedlichen Ausgabe zu machen.

diese fehlende Zeichen kommen noch an weiteren stellen vor... weiß jemand woran das liegen könnte?

gruß
pedro

13.11.2007 - 14:17 Uhr

das ist die funktion die mir die kurve erstellt


public void CreateChart(ZedGraphControl zgc)
{

GraphPane myPane = zgc.GraphPane;

myPane.Title.Text = "Graph der Funktion";
myPane.XAxis.Title.Text = "X-Achse";
myPane.YAxis.Title.Text = "Y-Achse";

PointPairList list = new PointPairList();
for (int i = 0; i < obj_ber.segm; i++)
{
list.Add(obj_ber.X, obj_ber.Y);
}

// Kurve erstellen
LineItem myCurve = myPane.AddCurve("",
list, Color.Green, SymbolType.XCross);

//
myPane.Chart.Border.IsVisible = false;
myPane.XAxis.MajorTic.IsOpposite = false;
myPane.XAxis.MinorTic.IsOpposite = false;
myPane.YAxis.MajorTic.IsOpposite = false;
myPane.YAxis.MinorTic.IsOpposite = false;

zgc.AxisChange();
}

*edit*
okay fehler gefunden. list.add kopiert ja alle elemente auf einmal und nicht jedes einzeln. habe die for-schleife jetzt entfernt und nun gehts

13.11.2007 - 14:00 Uhr

hey,

der tipp mit clear hat super funktioniert. vielen dank.

jetzt macht meine kurve etwas komisches, und zwar zeichnet er mir eine linie vom startpunkt bis zum endpunkt obwohl er ja nur eine linie den punkten entlang zeichnen soll...
weiß jemand wie ich das weg bekomme?

gruß

09.11.2007 - 11:21 Uhr

ah das hört sich super an, werd ich gleich mal probieren. danke

09.11.2007 - 10:16 Uhr

hi,

ich möchte in einer form meine funktion mehrmals zeichnen können, wenn sich die eingabewerte ändern und die alte kurve soll dabei gelöscht werden aber ich kriege nicht raus wie...

z.Z. zeichnet er immer in das selbe control hinein siehe anhang.

weiß jemand wie ich das beheben kann?

beim click auf "zeichnen" wird mein chart erstellt


        private void button1_Click(object sender, EventArgs e)
        {            
            obj_ber.koords();
            CreateChart(zedGraphControl1);
        }
        public void CreateChart(ZedGraphControl zgc)
        {
            [...]
        }

danke und gruß
pedro

22.10.2007 - 14:45 Uhr

Hi,

habe es jetzt umständlich gelöst indem ich die Anzahl der Zeichen des 2. Teils in einer if, else if, else if,... abgefragt und dann mit \t ausgerichtet habe... 🤔

Aber diese Methoden scheinen das richtige für mich zu sein... Danke dir!

Gruß

22.10.2007 - 09:33 Uhr

Hallo,

ich habe folgende Situation:

[1.teil][----------------2.Teil--------------][---3.Teil---]
.
.
.

[1.Teil][---2.Teil----]________________[-3.Teil-]

und zwar ist der 1. Teil immer gleich, der 2.Teil und 3. Teil kann in der letzten Zeile variieren! Wie kann ich jetzt dynamisch bestimmen das der 3. Teil grundsätzlich rechts an der gleichen Stelle steht? Gibt es eine rechtsbündige Ausrichtung?
Habe schon versucht über {0,xx} es auszurichten aber er nimmt für xx nur Zahlen und keine Variablen...

Danke und Gruß
Pedro