Laden...

Forenbeiträge von GIBBI Ingesamt 8 Beiträge

16.12.2015 - 09:07 Uhr

Oh, sorry, nächstes mal nur eine Frage pro Thread. Letzeres ist auch nicht wirklich relevant.

Danke für die schnelle Hilfe, das war es!

            book = app.Workbooks.Open(System.Windows.Forms.Application.StartupPath+ @"\Test\Test.xlsx");

Nun funktioniert alles wie gewünscht! 😃

16.12.2015 - 08:49 Uhr

Hallo zusammen,

Ich habe ein paar recht allgemeine Fragen bezüglich des Aufrufens und Bearbeiten einer Exceldatei.

1.
Ich öffne meine Workbook wie folgt:

            book = app.Workbooks.Open(@"C:\test.xlsx");

Das klappt auch wunderbar, allerdings möchte ich die Datei eigentlich aus dem Ordner "Test" in meinem Debug Ordner wie folgt öffnen:

            book = app.Workbooks.Open(@"Test\test.xlsx");

Das klappt allerdings nicht. Wisst ihr wie ich die Datei öffnen kann wenn sie sich in dem Ordner "Debug\Test" befindet?

  1. Ich öffne die Datei, lese eine Zeile aus und gebe die danebenbefindliche Spalte aus. Sollte die Excelanwendung anschließend wieder geschlossen werden oder ist dies nicht notwendig? Es handelt sich dabei um eine 1,6 MB große Excel-Liste.

Ein "book.close" und "app.Quit()" sollte in diesem Fall ausreichen oder sehe ich das falsch?

Vielen Dank schonmal! 😃

02.12.2015 - 12:29 Uhr

Ja, da hast du recht. Das "NOT TESTED" durch "PASSED" zu ersetzen würde reichen.

Da der Test immer identisch abläuft und keine Zeilen rausfliegen dürfte das so passen. 😃

02.12.2015 - 12:04 Uhr

Es funktioniert jetzt mit folgendem Beispielcode:


        public void passed_speedtest()
        {
            string[] text = File.ReadAllLines(this.Name + "_" + this.Number + ".txt");
            int i = text.Length;
            text[i-4] = text[i-4].Replace("Speedtest:  NOT TESTED!", "Speedtest:  PASSED!");
            File.WriteAllLines(this.Name + "_" + this.Number + ".txt", text);
        }

Vielen Dank für die Hilfe, jetzt muss ich mir nur noch um die Protokollierung im Fehlerfall Gedanken machen. 😃

02.12.2015 - 09:28 Uhr

Die Größe bleibt recht überschaubar, nach einem Testtag war die Datei gerade mal 150kB groß.

Ich probiere es später aus und werde mich dann wieder melden.

02.12.2015 - 09:06 Uhr

Bei dem von mir hier geposteten Ausschnitt handelt es sich lediglich um ein Beispiel.

Das originale Programm testet einen Motor und legt bei einem Dauertest für jeden Testdurchlauf weitere Zeilen im Protokoll an.

Beim Starten jedes Testdurchlaufs werden zuerst die verschiedene Testschritte inklusive dem Resultat "NOT TESTED" angelegt. Dieses soll dann nach bestandenem oder fehlerhaften Test durch ein "PASSED" oder "FAILED" ersetzt werden. Es handelt sich aktuell um 4 verschiedene Testschritte pro Testdurchlauf.

Aktuell wird noch alles im Protokoll in "PASSED" geändert was absolut keinen Sinn macht, da ich den Schritt wie in meinem oben zu sehenden Beispielprogramm programmiert habe.

Die genaue Zeile welche geändert werden muss kenne ich also auch nicht, es sind aber jeweils die im letzten Testdurchlauf angelegten Zeilen.

Kann ich eventuell die Gesamtanzahl der Zeilen der Textdatei auslesen und aufgrund der immer gleich bleibenden Struktur einen Wert von der Gesamtanzahl abziehen so das ich das Ergebnis immer nur in den zuletzt durchgeführten Schritt schreibe?

Sorry für die eventuell etwas umständliche Ausdrucksweise und vielen Dank für eure Hilfe!

01.12.2015 - 18:51 Uhr

Hallo zusammen,

ich stehe gerade etwas auf dem Schlauch und komme auf keine gescheite Lösung.

Folgendes Programm erstellt mit dem Klick auf Button1 eine Textdatei mit 4 identischen Zeilen:


private void button1_Click(object sender, EventArgs e)
        {
            using (StreamWriter writer =
            new StreamWriter("Test.txt", true))
            {
                //Test-Protokollinhalt
                writer.WriteLine("Test123");
                writer.WriteLine("Test123");
                writer.WriteLine("Test123");
                writer.WriteLine("Test123");             
            }
        }

Ein Klick auf Button2 soll nun nur die letzte oder zum Beispiel die dritte Zeile abändern. Wie ist das Ganze realisierbar?

Ich habe es bisher nur hingekriegt mit einem string.replace alle Zeilen in „456Test“ zu ändern, aber nicht nur einzelne.


        private void button2_Click(object sender, EventArgs e)
        {
            string text = File.ReadAllText("Test.txt");
            text = text.Replace("Test123", "456Test");
            File.WriteAllText("Test.txt", text);
        }

Habt ihr eventuell eine Idee für die Umsetzung?

Vielen Dank im Voraus.

05.10.2015 - 16:38 Uhr

Hallo zusammen,

ich arbeite mich gerade in C# ein und probiere 2 Komboboxen als Dropdownmenü mit den Informationen aus einer XML-Datei zu bestücken.

Das Ganze Soll nachher beispielsweise so aussehen:

  1. Kombobox: Auswahl zwischen Obst und Gemüse.
  2. Kombobox: Gibt entweder 5 Obst- oder 5 Gemüsesorten zur Auswahl

Ist dieses Vorhaben ohne weiteres realisierbar? Ich stehe hier gerade irgendwie auf dem Schlauch. Die erste Dropdownliste ist kein Problem, anhand der ersten Auswahl die zweite zu beeinflussen kriege ich allerdings nicht hin.

      
  public void BindDropDown()
        {
            XmlTextReader xmdatareader = new XmlTextReader("Xml/test.xml");
            DataSet _objdataset = new DataSet();
            _objdataset.ReadXml(xmdatareader);

            comboBox1.DataSource = _objdataset.Tables[0];
            comboBox1.DisplayMember = "Name";
            comboBox1.ValueMember = "Id";

         //   comboBox2.DataSource = _objdataset.Tables[0];
        //    comboBox2.DisplayMember = "Sorte";
        //    comboBox2.ValueMember = "SorteId";
        }

Das hier mal als Beispiel XML


<?xml version="1.0" encoding="utf-8" ?>

<Nahrung>

  <Art>
    <Id>1</Id>
    <Name>Obst</Name>
  </Art>

  <Art>
    <Id>2</Id>
    <Name>Gemuese</Name>
  </Art>

</Nahrung>

Wie füge ich jetzt die verschiedenen Obst und Gemüsesorten in meiner XML ein und greif sie in meinem Programm wieder auf?

Sorry für die Anfängerfrage, aber ich arbeite mich gerade wie gesagt erst in die ganze Materie ein.

Vielen Dank schonmal!
GIBBI