Laden...

Forenbeiträge von Andi123 Ingesamt 26 Beiträge

09.06.2006 - 15:44 Uhr

Hallo,

ich habe mich nochmals mit der StreamReader Klasse beschäftigt und habe immer noch das Problem mit diesem "StandardOutput".

Ich starte den Windows Media Encoder per .bat-Datei und nachdem der Encodierprozess abgeschlossen ist, kommt die Fehlermeldung:
StandardOut wurde nicht umgeleitet, oder der Prozess wurde noch nicht gestartet.

Hier mein Quellcode:

 
public static void MediaEncoder()
        {

            Process myProcess = new Process();

            ProcessStartInfo startInfo1 = new ProcessStartInfo("D:/EncodingServer/start1.bat");

            startInfo1.WindowStyle = ProcessWindowStyle.Normal;
            startInfo1.UseShellExecute = false; 
            startInfo1.RedirectStandardOutput = true; 
            startInfo1.CreateNoWindow = true;
            Process.Start(startInfo1).WaitForExit();

            StreamReader myStreamReader = myProcess.StandardOutput;
            string myString = myStreamReader.ReadToEnd();
            myProcess.Close();          


Hat jemand eine Idee, was ich hier falsch mache?
Habe ich etwas übersehen?

Danke und Gruß

Andi

08.06.2006 - 18:08 Uhr

Hi,

man muss dieses StandardOutput nochmal extra anlegen:

public StreamReader StandardOutput { get; }

Habe aber noch nicht herausgefunden, wo ich dies hinschreiben muss und was noch alles dazu gehört.

Kannst du mir einen Tipp geben?

Gruß & Danke

Andi

08.06.2006 - 17:59 Uhr

Hi,
habe mein Problem leider noch nicht gelöst.
Wie kann ich den Text, der in der DOS-BOX steht in einen String speichern?
Ich starte in meinem Programm den Windows Media Encoder, der nach dem Encoden ein Protokoll in die DOS-Box schreibt. Dieses würde ich gerne in eine LOG-File speichern.
Habe mich auf den Seiten von Microsoft schon erkundigt, aber nichts dazu gefunden.



Process myProcess = new Process(); 

            ProcessStartInfo startInfo1 = new ProcessStartInfo("D:/EncodingServer/start1.bat");
            startInfo1.WindowStyle = ProcessWindowStyle.Normal;
            startInfo1.UseShellExecute = false; 
            startInfo1.RedirectStandardOutput = true; 
            startInfo1.CreateNoWindow = true;
            Process.Start(startInfo1).WaitForExit();                             

            StreamReader myStreamReader = myProcess.StandardOutput;
            string myString = myStreamReader.ReadToEnd();
            myProcess.Close();
            


Bei der folgenden Code-Zeile hängt er sich immer auf, da er irgendwie mit dem
(.StandardOutput) nicht klarkommt:

StreamReader myStreamReader = myProcess.StandardOutput;

Hat jemand einen Tipp für mich ?

Danke & Gruß

08.06.2006 - 12:35 Uhr

OK.
Werde mich jetzt erstmal mit der StreamWriter Klasse nochmal beschäftigen.

Danke

08.06.2006 - 12:17 Uhr

Hallo,

ich habe ein kleines Problem bei dem ich nicht weiter komme.
Habe ein kleines Programm geschrieben das Ausgaben in der Dos-Box macht, damit ich weiß wie das Programm abgelaufen ist.

Nun würde ich gerne alle Ausgaben, die das Programm in die Dos-Box schreibt in ein Log File schreiben lassen.

Kann man den Text in der Dos-Box irgendwie komplett kopieren und in einen String speichern ?

Hat jemand einen Tipp, wie ich das realiesieren kann?

Danke und Gruß

Andi

26.05.2006 - 18:58 Uhr

Ja ok danke.

Werde mich weiter mit befassen.

Wenn trotzdem jemand noch einen Tipp für mich hat, kann er ihn ja noch schreiben.

DANKE

Gruß
Andi

26.05.2006 - 18:33 Uhr

Ich lese folgende Zeile ganz ein:

NAME=P0706_diplomfeier

und habe sie dann als string vorliegen.

Mein string heißt a1

Danach will ich NAME= etfernen, so das ich nur noch P0706_diplomfeier im string stehen habe.

So funktioniert es nicht:

Regex MyRegex = new Regex("[=][.]*");
string WasDaRausKommt = MyRegex.Match(a1);

WasDaRausKommt = WasDaRausKommt.Remove("Name");

Was mache ich falsch ?

Fehlermeldung:
Fehler 1 Eine implizite Konvertierung vom Typ "System.Text.RegularExpressions.Match" in "string" ist nicht möglich.

Gruß & Danke
Andi

26.05.2006 - 18:20 Uhr

Hi,
danke für die Antworten.

Wie macht man es aber, wenn man in der bestimmten Zeile ab dem Buchstaben 5 einlesen will bis ende der Zeile.
Also z.B.

Hallo Andi 22

Ich will Andi 22 einlesen.

Gibt es da auch eine Möglichkeit?

Danke & Gruß
Andi

26.05.2006 - 17:47 Uhr

Hallo,

hier im Forum wurde zwar schon öfters darüber diskutiert wie man Text aus einem File ausliest oder reinschreibt, aber ich habe nicht zu folgendem Problem gefunden:

Ich will aus einem Textfile bestimmte Zeilen auslesen.
Wie man das macht weiß ich.
Aber jetzt würde ich noch gerne von diesen bestimmten Zeilen nicht alles auslesen.

Z.B. steht im Textfile:

Name-Andi
Alter-22

Ich will nur Andi und die 22 auslesen.

Wie gehe ich da vor ?

Bis jetzt bekomme ich es nur so weit hin, das er mir die kompletten Zeilen ausliest.

Danke im Vorraus.

Gruß
Andi

15.05.2006 - 20:43 Uhr

Vielen Dank.

So funktioniert es.

Gruß
Andi

15.05.2006 - 20:37 Uhr

Danke.

Aber ich erhalte immer dieses Fehler:

Fehler 2 "System.Array" enthält keine Definition für "Count".

Muss ich noch irgendetwas beachten ?

Gruß
Andi

15.05.2006 - 20:29 Uhr

Hi,

danke für die Antworten.
Das mit dem Try Block habe ich versucht. Bekomme aber trotzdem die Fehlermeldung.

Wie mache ich das mit:

DirectoryInfo di = new DirectoryInfo(path);
di.GetFiles().Count > 0;

dieser Befehl zählt die Dateien in den Verzeichniss path.

Wie kann ich mir nun anzeigen lassen, ob welche vorhanden sind?

Danke
Gruß
Andi

15.05.2006 - 20:12 Uhr

Hallo,

ich will prüfen, ob in einem Ordner irgendeine Datei vorhanden ist.
Der Name der Datei kenne ich nicht.
Ich kann also nicht mit File.Exists(filename) arbeiten, da ich hier den namen der datei wissen muss.

Wenn ich mir vorher die Datei mit FileInfo[] fi = di.GetFiles();
hole, funktioniert es zwar mit File.Exists(filename), aber wie sieht es aus wenn keine Datei im Ordner ist. Dann gibt es eine böse Fehlermeldung.

Hat jemand einen Vorschlage für mich?

Danke

Gruß
Andu

12.05.2006 - 17:14 Uhr

Hallo,

ich habe ein Programm, mit dem ich den Windows Media Encoder ansprechen will.

Leider fehlt mir immer noch diese Library "WMEncoderLib" um sie einzubinden.

Weiß jemand wo ich diese Library bekommen kann?
Habe schon die Seiten auf http://msdn.microsoft.com durchforstet, komme aber einfach nicht weiter.

Danke.

Gruß
Andi

08.05.2006 - 18:46 Uhr

Hi,

ok Danke für die Hilfe.

Werde ab sofort besser Suchen.
Hatte den Beitrag tatsächlich übersehen.

Gruß
Andi

08.05.2006 - 18:19 Uhr

Hi,

sorry aber da versteht ihr meine Frage falsch.
Klar wurde schon oft diskutiert wir man das mit dem FileSystemWatcher und per Filelänge abfragen realisiert.

Trotzdem trifft dies nicht auf mein Problem zu.
Der FileSystemWatcher tritt ja nur in Aktion, wenn etwas passiert (Created, Changed,..... in einem angegebenen Ordner).
Filelänge überprüfen trifft nur auf einezelne Files zu.

Da aber in meinen Ordner ganze Verzeichnisse kopiert werden, die auch wieder Unterverzeichnisse besitzen in denen verschiedene Dateien liegen, ist das etwas anderes.

Mein Programm muss ja so lange warten, bis das ganze Verzeichniss mit seinen Unterordnern und Dateien kopiert worden ist.

Dies ist nicht so einfach zu realisieren.

Es würde mir trotzdem weiterhelfen, wenn mir jemand einen Tipp geben könnte, wie man so etwas programmiert.

DANKE

Gruß
Andi

08.05.2006 - 07:52 Uhr

Hi,

ja über den FileSystemWatcher wurde schon viel diskutiert.
Leider trifft aber keine Diskussion auf dieses Problem zu.
Habe nach allem das mir weiter Helfen könnte hier im Forum gesucht.

Hat jemand einen Tipp für mich.

Gruß
Andi

08.05.2006 - 00:05 Uhr

Hallo,

ich bastle zur Zeit an einem Programm, in dem der Ordner D:/aaa auf meiner Festplatte durch einen FileSystemWatcher überwacht wird. Der FileSystemWatcher gibt eine Meldung raus, sobald ich etwas in den Ordner hineinkopiere.

Meistens wird in den zu überwachenden Ordner ein Ordner mit mehreren Unterordnern und Dateien hineinkopiert.
Sobald der komplette Kopiervorgang beendet ist, soll eine weitere Funktion aufgerufen werden.

Wie kann ich es realisieren, das mein Programm so lange wartet mit dem Aufrufen der nächsten Funktion, bis der komplette Kopiervorgang beendet ist?

Hat da jemand eine Idee?

Danke.

Gruß
Andi

12.04.2006 - 19:45 Uhr

OK DANKE

Werde nachsehen.

Gruß
Andi

12.04.2006 - 18:42 Uhr

Hi,

ich habe mir hier ein Programm-Snippet geladen, um mein Verzeichniss D:\
meiner Festplatte nach einer Datei mit der Endung .txt durchsuchen zu lassen.
Leider funktioniert es noch nicht.
Was muss ich in der Main Funktion schreiben oder was muss ich jetzt noch umschreiben?
Hat jemand einen Tipp für mich?


using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Data;
using System.Diagnostics;

namespace File_Exist
{


    class Test
    {
        public static void Main()
        {

        }

        protected void button1_Click(object sender, System.EventArgs e)
        {
            Stream myStream;
            OpenFileDialog openFileDialog1 = new OpenFileDialog();

            openFileDialog1.InitialDirectory (@"D:\a");
            openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
            openFileDialog1.FilterIndex = 2;
            openFileDialog1.RestoreDirectory = true;

            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                if ((myStream = openFileDialog1.OpenFile()) != null)
                {
                    Console.WriteLine("ok");
                    myStream.Close();
                    Console.ReadLine();
                }
           }
      }

    }
}



Fehlermeldungen:

Der Typ- oder Namespacename "OpenFileDialog" konnte nicht gefunden werden. (Fehlt eine using-Direktive oder ein Assemblyverweis?)

Der Name "DialogResult" ist im aktuellen Kontext nicht vorhanden.

Danke im Vorraus.

Gruß
Andi

04.04.2006 - 22:34 Uhr

Hallo,

ok danke für die Aufklärung.
Sorry das ich mich nicht verständlicher ausgedrückt habe.

Werde mich erst nochmal selbst schlau machen.

Danke vorerst mal an alle die eine Antwort geschrieben haben.

Gruß
Andi

04.04.2006 - 21:07 Uhr

Hallo,

da ich im Programmieren von C# Anfänger bin, wäre ich echt dankbar, wenn mir hier im Forum jemand helfen könnte.
Habe das Forum schon durchsucht, aber auf für mich nichts brauchbares gestoßen.

Kann mir jemand bei folgendem Programm weiterhelfen?
Habe einige Programmzeilen schon geschrieben. Komme aber nicht mehr weiter.

Danke im Vorraus.
Gruß
Andi


using System;
using System.Collections.Generic;
using System.Text;
using System.IO;


namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {

            System.IO.FileInfo f1 = new System.IO.FileInfo(@"D:/a/Text.txt");   
            // Datei Text.txt in Variable f1 kopieren
            System.IO.FileInfo f2 = new System.IO.FileInfo(@"D:/a/Text.txt");  
            // Datei Text.txt in Variable f2 kopieren


            // Jetzt soll verglichen werden, ob die Datei Text.txt im Ordner D:/a 
               die Endung .txt besitzt
            
            // Wenn nicht, soll in einem Unterordner die nach einer Datei mit der
               Endung .txt gesucht werden
            
            // Wenn dort auch keine zu finden ist --> Programm beenden


            if (......)    // wenn die Datei die Endung .txt besitzt, soll sie in den Ordner
                                D:/a/b verschoben werden

                f2.CopyTo(@"D:/a/b");

            else
            //Programm verlassen  
              
          
        }


    }
}

04.04.2006 - 17:38 Uhr

ok danke

werde nochmal im Forum suchen.

Gruß
Andi

04.04.2006 - 17:30 Uhr

Danke.
Aber kannst du mir nochmal genau erklären, wie man ein Programm per C# starten kann?
Ich muss Video_files an den Windows Media Encoder übergeben und diesen zur encodierung der Files starten.

Was für ein Befehl ( um wahrscheinlich die exe-Datei des Encoders auszuführen) ist dazu notwendig in C# ??

Danke.

Gruß
Andi

04.04.2006 - 15:57 Uhr

Danke für die Antwort

Gruß
Andi

04.04.2006 - 15:44 Uhr

Hallo,

gibt es für C# schon fertigen Quellcode (Bibliotheken), den man z.B. als Such-, Copy-Algorithmus einsetzen kann?
Ich will eine ganz bestimmte Datei aus einem Ordner mit Unterverzeichnissen finden lassen und diese in einen anderes Ordner verschieben. Gibt es dafür schon Algorithmen?

Wenn ja, wo finde ich solchen fertigen Code?

Da ich ein ziemlich umfangreiches Programm schreiben muss, würde mir schon fertiger Code, den ich nur noch zu meinem dazufügen muss helfen.

Wie kann ich mit C# ein Programm auf meiner Festplatte starten?

Sorry für die vielen Fragen auf einmal.
Bin ein ziemlicher Anfänger beim Programmieren.

Danke im Vorraus.

Gruß
Andi