Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von mosspower
Thema: [gelöst] Art typeof für Namen von Variablen gesucht
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Peter Bucher,

vielen Dank nochmal für Deinen Hint. Codeeinsparung > 95 Prozent

Thema: Datei wird von anderem Prozeß verwendet
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo JAck30lena,

danke für die Antworten.

Naja, bei try/catch gibt es aber keinen Fehlercode, das bedeutet, dass man die Fehlermeldung parsen, bzw. RegExen muss, und dann auch noch aufpassen, auf welcher Umgebung das genze läuft, denn ein deutsches Framework liefert ja deutsche Fehlermeldungen.

Zu 2)
Hm, das bedeutet, dass ich einen Fehler auf einer anderen Umgebung reproduzieren muss. Ist das wirklich "so umständlich"? Ich dachte an eine Webseite, wo alle Fehlermeldungen aufgelistet sind, nach Sprachen - nun, da wird mir leider nix anderes übrigbleiben.

Thema: [gelöst] Art typeof für Namen von Variablen gesucht
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Es geht mit ...


[AttributeUsage(AttributeTargets.Field)]
  class SerializableField : Attribute {
    
  }

braucht man da eigentlich ein eigenes Attribut oder kann man da vordefinierte (welche?) verwenden?

Thema: [gelöst] Art typeof für Namen von Variablen gesucht
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Peter Bucher,

das mit den Attributen ist eine super Idee, vielen Dank. Jetzt muss ich nur noch mal gucken ob das mit privaten Instanzvariablen auch geht und dann mittels Reflection bei der Instanzierung die serialisierten Werte setzen.

Thema: [gelöst] Art typeof für Namen von Variablen gesucht
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo "Kollegen",

ist es möglich für Variablennamen einen Ausdruck zu verwenden, so dass beim Refactoring Anpassungen sofort mit durchgeführt werden.

Zum Beispiel kann man das ja bei Klassen so machen ...

String className = typeof(TestClass).FullName;

Gibt es da auch eine Möglichkeit für Variablen? Hintergrund ist der, dass ich für verschiedene Instanzvariablen in einer Interfacemethode zur Serialisierung anmelden möchte. Gegenwärtig habe ich das so gelöst, dass man eine Set und Get-Methode überschreibt und hier den Namen der Variablen (als String) und den Wert (als Object) in ein Dictionary-Objekt packt.

Jetzt dachte ich, dass das einfacher gehen soll und ohne Variablennamen als String. Ich dachte an eine Methode IList<???Identifier??, Object> GetSerializableVariables nur welchen Identifier nehme ich hier.

Gibt es eine andere Möglichkeit, z.B. int, String, double ect. überladen und neuen Typ, z.B. SerializableInt, SerializableString zuweisen und mittels Reflektion werden dann diese Typen nach dem Instanzieren manipuliert?

Wie löst ihr das?

Danke schon mal für etwaige Antworten im Voraus?

Thema: Datei wird von anderem Prozeß verwendet
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo "Kollegen",

ihr kennt doch sicherlich die folgende Fehlermeldung:

... Der Prozess kann nicht auf die Datei "\\SCSV51001\blablub" zugreifen, da sie von einem anderen Prozess verwendet wird ...

Wie handelt ihr dies, das kommt nämlich sehr oft vor oder anders gefragt, wie bekomme ich raus, dass ich in dem Moment, wo ich drauf zugreife, sich kein anderer Prozess die Datei "gekrallt" hat. Beim lesen sollte das ja egal sein (dachte ich bisher, doch gerade hat es gefunkt, beim Lesen, was so, auch nach Tests, nie der Fall war. Wahrscheinlich geht das immer nur gut, wenn Prozesse "nur" lesen, wenn einer schreibt, dann kracht es).

Danke schon mal für eine etwaige Antwort im Voraus.

Gruß

btw .. wie bekomme ich eigentlich für deutsche Fehlermeldungen die englischen her? Gibt es da eine spezielle Seite .. Fehlercodes is ja leider net

Thema: Tool für Update von Assemblies (+ XML-Beschreibungen)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo "Kollegen",

bevor ich da selbst etwas programmiere mal vorab die Frage hier. Problem ist, dass wir bei einem Projekt sehr viele DLLs einbinden, an denen aber auch zeitgleich gearbeitet wird (ist nun einmal so). Jetzt gibt es für das Hauptprojekt (Solution) meherere Teilprojekte (Projektdateien), die einen Common-Ordner benutzen für alle DLLs. Diese DLLs (Projektunabhängige, bzw. Utility-DLLs) werden aber auch angepasst (teilweise täglich). Nun ist es immer nervig, alle DLLs sich zu besorgen von verschiedenen Pfaden und die dann (mit den XML-Beschreibungsdateien) in den Common-Ordner zu kopieren. Gibt es da ein Tool, das das nach einen Button-Klick durchführen kann? Ich dachte so an ein Tool, dass ich einmal das File auswähle und dann wird das gespeichert (XML oder whatever) und jedesmal nach einem Buttonklich dann alle updated.

Gruß und danke schon mal für eine Antwort im Voraus.

P.S. Include der Projekte fällt aus, da teilweise der Quellcode nicht hin- und herkopiert werden soll, bzw. wenn man sich das Projekt (ohne die Common-Projekte) aus der Sourceverwaltung zieht, dann soll das laufen, mit den includierten DLLs und nicht mit den Verweisen auf Projketen.

Thema: Mehrere Exceptions catchen in einer Abrfrage ...
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von Joetempes

catch(Exception)

...dann fängst Du alle ab!

Ja, das weiß ich, das geht auch mit nur catch { ..., jedoch wollte ich abhängig von mehren Exceptions eine gleiche (oder ungleiche) Behandlung durchführen ... das scheint nicht in einem Catch-Kostrukt zu gehen, hier muss ich halt global catch(Exception ex) machen und dann mit is abfragen, was für ein Typ die Exception ist.

Thema: Mehrere Exceptions catchen in einer Abrfrage ...
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ja, OK, das könnte ich machen und dann abfragen ...

if(ex is SqlException || ex is IOException) ...
,

genau, so kann man das auch machen, ich dachte nur, dass es mit diesem Konstrukt möglich wäre, trotzdem Danke, bin erst nach Deinem Post auf die Idee gekommen.

Thema: Mehrere Exceptions catchen in einer Abrfrage ...
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo "Kollegen",

gibt es für folgendes Konstrukt eine Vereinfachung?


catch(IOException) {
        // Ignore this one, this will be handled
        // by all other dispatch programs, we don't
        // need tons of emails here
      }
      catch(SqlException) {
        // Ignore this one, this will be handled
        // by all other dispatch programs, we don't
        // need tons of emails here
      }
      catch {
        this.notHandledErrroCounter++;
        throw;
      }

.. ich dachte an sowas ...

... catch(IOException, SqlException, BlaException) { ...

Danke schon mal für etwaige Antworten im Voraus.

Thema: Ordner(struktur) und Dateien kopieren mit In/Exclude
Am im Forum: .NET-Komponenten und C#-Snippets

Beschreibung: Ordner(struktur) und Dateien kopieren

Mit dem angehängten Code kann eine ganze Ordnerstruktur (also inklusive Unterverzeichnis) kopiert werden. Zusätzlich kann noch mit regulären Ausdrücken Files / Ordner inkludiert, bzw. excludiert werden.


 /// <summary>
    /// <see cref="IOUtil.CopyDirectory(String, String, String, String)"/>
    /// </summary>
    public static void CopyDirectory(String rootDest, String rootSource) {
      IOUtil.CopyDirectory(rootDest, rootSource, null, null);
    }

    /// <summary>
    /// Copies a directory and the directory graph
    /// with all files. Replaces the files in the
    /// new directory, if existing
    /// </summary>
    /// <param name="rootSource">The qualified root source directory</param>
    /// <param name="rootDest">The qualified root destination directory</param>
    /// <param name="includePattern">The include regex pattern for including files and folders</param>
    /// <param name="excludePattern">The exclude regex pattern for excluding files
    /// and folders. Excludes goes for include, this means, if include and exclude is matching, the the file
    /// or folder will not be copied</param>
    /// <exception cref="ArgumentException">Handles all empty or null values for the passed parameters</exception>
    /// <exception cref="IOException">Handles all file and directory operation exceptions</exception>
    public static void CopyDirectory(String rootSource, String rootDest, String includePattern, String excludePattern) {

      try {
        if(ValueUtil.IsEmptyOrDefault(rootDest, rootSource)) {
          throw new ArgumentException("Parameter rootDest and / or root Source was passed null or empty");
        }

        DirectoryInfo directoryInfo = new DirectoryInfo(rootSource);

        // Create destination directory
        if(!Directory.Exists(rootDest)) {
          Directory.CreateDirectory(rootDest);
        }

        // Get all files in the current directory
        FileInfo[] files = directoryInfo.GetFiles();
        Regex regexInclude = null;
        Regex regexExclude = null;

        if(ValueUtil.IsNotEmptyOrDefault(includePattern)) {
          RegexUtil.Validate(includePattern);
          regexInclude = new Regex(includePattern);
        }

        if(ValueUtil.IsNotEmptyOrDefault(excludePattern)) {
          RegexUtil.Validate(excludePattern);
          regexExclude = new Regex(excludePattern);
        }

        // Iterate all files
        foreach(FileInfo file in files) {
          bool copy = true;

          if(regexInclude != null) {
            if(!regexInclude.IsMatch(file.Name)) {
              copy = false;
            }
          }

          if(regexExclude != null) {
            if(regexExclude.IsMatch(file.Name)) {
              copy = false;
            }
          }

          if(copy) {
            // Copy the file to the destination
            file.CopyTo(Path.Combine(rootDest, file.Name), true);
          }
        }

        // Iterate all directories in the current directory
        // and use recursion
        DirectoryInfo[] directoryInfos = directoryInfo.GetDirectories();

        foreach(DirectoryInfo dirSub in directoryInfos) {
          bool copy = true;

          if(regexInclude != null) {
            if(!regexInclude.IsMatch(dirSub.Name)) {
              copy = false;
            }
          }

          if(regexExclude != null) {
            if(regexExclude.IsMatch(dirSub.Name)) {
              copy = false;
            }
          }

          if(copy) {
            // Copy directory
            IOUtil.CopyDirectory(dirSub.FullName,
              Path.Combine(rootDest, dirSub.Name), includePattern, excludePattern);
          }
        }
      }
      catch(ArgumentException) {
        throw;
      }
      catch(Exception ex) {
        throw new IOException(ex.Message, ex);
      }
    }

Schlagwörter: Directory copy Ordner kopieren

Thema: VS-Code-Snippet Frage - Konstanten?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Kollegen,

ich habe jetzt schon ein bißchen Aufwand betrieben (auch hier im Forum) aber leider nichts gefunden. Ich würde gerne wissen ob es bei Snippets Konstanten gibt, wie z.B. die aktuelle Cursorposition, der Klassenname, Datum, Namespace usw., wie z.B. in Eclipse (${cursor}) usw.

Gibt es da was?

Danke schon mal für eure Antworten im Voraus

Thema: HtmlDocument vor Complete-Event parsen
Am im Forum: Web-Technologien

@Zentauro,

ich denke mal, dass ich Dich schon richtig verstanden habe. Du kannst doch mit style, z.B. ein DIV ausblenden (Ursprungszustand) ... dann wartet .NET bis Event documentload und ruft dann hier die JavaScript-Function auf, hier wird dann alles gesetzt (Größe, Styles, ggf. neue Elemente) ect. , dann wird am Ende der Function das DIV auf visible geschalten und zu guter letzt wird mit .NET (also C#), wenn nötig, die Events mit den Elementen verbunden ;) (was man aber auch widerum mittels JavaScript machen könnte).

Thema: HtmlDocument vor Complete-Event parsen
Am im Forum: Web-Technologien

Man kann aber auch (so mache ich das bis jetzt immer) mittels C# eine JavaScript-Function aufrufen, der übergibt man halt dann den nötigen "Krempel" und die Function manipuliert dann das Dokument ;) ... den Elementen kann man dann auch weiterhin Events mittels C# zuweisen, diese rufen dann ggf. andere JavaScript-Functions auf.

Thema: HtmlDocument vor Complete-Event parsen
Am im Forum: Web-Technologien

Kannst Du das nicht mit JavaScript machen? Musst Du die Dokumentmanipulation mit .NET machen? Wenn nein, dass ist das doch die Lösung.

Thema: [gelöst] \r\r\n-Aufbau einer Datei?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

@norman_timo,

vielen Dank, ich habe jetzt tatsächlich das so angepasst ...

 
        while(reader.Peek() ≥ 0) {
          char currentChar = (char)reader.Read();

          if(currentChar == '\r' && reader.Peek() == '\r') {
            // Only if previous char is not new line
            if(previousChar != '\n') {
              reader.Read();
            }
          }

          previousChar = currentChar;
          sb.Append(currentChar);
        }

Es funzzt jetzt, ich musste das noch anpassen, da Leerzeilen \r hatten

Gruß und Danke

Thema: [gelöst] \r\r\n-Aufbau einer Datei?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich glaub ich spinne .. jetzt hat mein Rechner gesponnen, ich habe neu gestartet und jetzt geht das nicht mehr .. kann mir bitte einer sagen, ob es lokal klappt, dass jemand das \r\r rausbekommt aus der aktuell angehängten Datei?

Ich bekomme das jedenfalls nicht hin .. ich kann zwar ...

String replace = reader.ReadToEnd().Replace((char)13, 'X');

machen, aber das nützt mir nichts, da ich dann XX\n nicht mehr finde ... ich habe keinen Plan mehr hier.

weder das eine noch das andere funzzt

replace = replace.Replace("XX" + Environment.NewLine, Environment.NewLine);
replace = replace.Replace(@"XX\n", Environment.NewLine);

Ich dreh' echt am Rad

Thema: [gelöst] \r\r\n-Aufbau einer Datei?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

@Joetempes,

so hatte ich es ja, Problem ist nur, dass ich auch leere Zeilen validieren wollte, und das geht ja dann nicht, wenn ich eine Datei mit so einem Aufbau bekomme.

Ich habe es jetzt gelöst mit ... String replace = reader.ReadToEnd().Replace(@"\r\r", @"\r");

.. ging aber vorher wirklich nicht, sonst hätte ich den Thread hier nicht eröffnet .. manchmal spinnt VS ..

danke für eure Hilfe!

Thema: [gelöst] \r\r\n-Aufbau einer Datei?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Das ist ja gerade das Problem, das geht eben nicht ... komisch ist auch, dass reader.ReadToEnd() folgendes anzeigt ...

"0083680834;0000066334;Schmid-JSA-Altdorf@xxx.de\r\r\n0083680835;0000015862;"

also "nur" mit einem Backslash ... bei einer "normalen" Datei sind da immer zwei (maskiert) drinnen.

Wenn ich z.B. schreibe

String line = reader.ReadToEnd(), dann spinnt meine Umgebung, die kennt einfach den String line nicht.

Irgendwie ist der Aufbau der Datei total komisch.

Thema: [gelöst] \r\r\n-Aufbau einer Datei?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo "Kollegen",

ich würde gerne die Datei im Anhang Zeilenweise lesen - geht auch, nur ist immer zwischen den Zeilen \r\r\n .. wie bekomme ich das raus? Mit Replace funzzt das nicht? Was das denn für eine komische Datei? Muss irgendswas mit SAP zu tun haben.

 
        StreamReader reader = new StreamReader(@"\\Baws56067\D$\TESTENVIRONMENT_LOEWE\DeliveryNotifier\Import\wtf.txt");
        String readLine = String.Empty;

        while((readLine = reader.ReadLine()) != null) {
          Console.WriteLine(readLine);
        }
       
        reader.Close();

Was kann ich machen, dass die "Leerzeile" (bewusst in Anführungszeichen) nach der 1. Zeile nicht in der Console angezeigt wird? Wie kann ich das abfangen?

Danke schon mal für etwaige Antworten im Voraus

Thema: Auto ArchivDirectory
Am im Forum: .NET-Komponenten und C#-Snippets

Ich habe jetzt noch angepasst, dass jährliche, monatliche und tägliche Ordner erstellt werden. Die ursprünglichen Exceptions habe ich in InnerExceptions verpackt - könnt ihr ja anpassen, wenn nicht gewünscht.

     
    /// <summary>
    /// Gets the full qualified archive path and creates all neccessary sub folders
    /// </summary>
    /// <param name="qArchiveRoot">Thr root archive path</param>
    /// <param name="utc">Whether convert current DateTime to UTC format</param>
    /// <param name="dailyArchive">Whether daily archiving is activated or not</param>
    /// <returns>The full qualified archive path</returns>
    /// <exception cref="ArgumentException">If qArchiveRoot is empty or null, all other
    /// Exceptions will be wrapped in inner exceptions</exception>
    public static String GetArchiveDir(String qArchiveRoot, bool utc, bool dailyArchive) {
      String archiveDir = String.Empty;
      DirectoryInfo processingRootInfo = null;
      DateTime processingDateTime = DateTime.Now;
      String qProcessingDirName = String.Empty;

      try {
        if(ValueUtil.IsEmptyOrDefault(qArchiveRoot)) {
          throw new ArgumentException("Parameter qArchiveRoot was passed null or empty");
        }

        // Check whether archive root exists
        if(!Directory.Exists(qArchiveRoot)) {
          try {
            // Create archive root directory
            processingRootInfo = Directory.CreateDirectory(qArchiveRoot);
          }
          catch(Exception ex) {
            throw new ArgumentException(String.Format("Cannot create archiv " +
              "root '{0}' folder, because of '{1}'",
                new Object[] { qArchiveRoot, ex.Message }));
          }
        }
        else {
          processingRootInfo = new DirectoryInfo(qArchiveRoot);
        }

        // Check UTC
        if(utc) {
          processingDateTime = processingDateTime.ToUniversalTime();
        }

        // Handle annually directory
        qProcessingDirName = Path.Combine(processingRootInfo.FullName,
          processingDateTime.ToString("yyyy"));

        if(!Directory.Exists(qProcessingDirName)) {
          try {
            Directory.CreateDirectory(qProcessingDirName);
          }
          catch(Exception ex) {
            throw new ArgumentException(String.Format("Cannot create annually " +
              "archive folder '{0}' because of '{1}'",
                new Object[] { qProcessingDirName, ex.Message }), ex);
          }
        }

        // Handle monthly directory
        qProcessingDirName = Path.Combine(qProcessingDirName,
          processingDateTime.ToString("MM"));

        // Create monthly archive directory, if not exists
        if(!Directory.Exists(qProcessingDirName)) {
          try {
            Directory.CreateDirectory(qProcessingDirName);
          }
          catch(Exception ex) {
            throw new ArgumentException(String.Format("Cannot create monthly " +
              "archive folder '{0}' because of '{1}'",
                new Object[] { qProcessingDirName, ex.Message }), ex);
          }
        }

        // Handly daily directory
        if(dailyArchive) {
          qProcessingDirName = Path.Combine(qProcessingDirName,
            processingDateTime.ToString("dd"));

          // Create daily archive directory, if not exists
          if(!Directory.Exists(qProcessingDirName)) {
            try {
              Directory.CreateDirectory(qProcessingDirName);
            }
            catch(Exception ex) {
              throw new ArgumentException(String.Format("Cannot create daily " +
                "archive folder '{0}' because of '{1}'",
                  new Object[] { qProcessingDirName, ex.Message }), ex);
            }
          }
        }

        archiveDir = qProcessingDirName;
      }
      catch {
        throw;
      }

      return archiveDir;
    }

Thema: Auto ArchivDirectory
Am im Forum: .NET-Komponenten und C#-Snippets

Beschreibung:

Wer Dateien archivieren möchte, muss ja monatliche oder sogar tägliche Ordner in den monatlichen anlegen. Diese Routine habe ich in die folgende Methode gekapselt. Es wird für das gegenwärtige Datum das Rootdirectory, das monatliche Directory (ISO 8601-Format) und (wenn gesetzt) das tägliche Directory erstellt (wenn jeweils nicht vorhande). Zurück gibt die Methode dann den voll-qualifizierten Archiv-Directory-Namen


    /// <summary>
    /// <see cref="IOUtil.GetArchiveDir(String, bool, bool)"/>
    /// </summary>
    /// <param name="qArchiveRoot">
    /// <see cref="IOUtil.GetArchiveDir(String, bool, bool)"/>
    /// </param>
    /// <returns>
    /// <see cref="IOUtil.GetArchiveDir(String, bool, bool)"/>
    /// </returns>
    public static String GetArchiveDir(String qArchiveRoot) {
      return IOUtil.GetArchiveDir(qArchiveRoot, false, false);
    }

    /// <summary>
    /// <see cref="IOUtil.GetArchiveDir(String, bool, bool)"/>
    /// </summary>
    /// <param name="qArchiveRoot">
    /// <see cref="IOUtil.GetArchiveDir(String, bool, bool)"/>
    /// </param>
    /// <param name="dailyArchive">
    /// <see cref="IOUtil.GetArchiveDir(String, bool, bool)"/>
    /// </param>
    /// <returns>
    /// <see cref="IOUtil.GetArchiveDir(String, bool, bool)"/>
    /// </returns>
    public static String GetArchiveDir(String qArchiveRoot, bool dailyArchive) {
      return IOUtil.GetArchiveDir(qArchiveRoot, false, dailyArchive);
    }
     
    /// <summary>
    /// Gets the full qualified archive path and creates all neccessary folders
    /// </summary>
    /// <param name="qArchiveRoot">Thr root archive path</param>
    /// <param name="utc">Whether convert current DateTime to UTC format</param>
    /// <param name="dailyArchive">Whether daily archiving is activated or not</param>
    /// <returns>The full qualified archive path</returns>
    /// <exception cref="ArgumentException">Handles all possible Exceptions</exception>
    public static String GetArchiveDir(String qArchiveRoot, bool utc, bool dailyArchive) {
      String archiveDir = String.Empty;
      DirectoryInfo processingRootInfo = null;
      DateTime processingDateTime = DateTime.Now;
      String qProcessingDirName = String.Empty;

      try {
        if(ValueUtil.IsEmptyOrDefault(qArchiveRoot)) {
          throw new ArgumentException("Parameter qArchiveRoot was passed null or empty");
        }

        // Check whether archive root exists
        if(!Directory.Exists(qArchiveRoot)) {
          try {
            // Create archive root directory
            processingRootInfo = Directory.CreateDirectory(qArchiveRoot);
          }
          catch(Exception ex) {
            throw new ArgumentException(String.Format("Cannot create archiv " +
              "root '{0}' folder, because of '{1}'",
                new Object[] { qArchiveRoot, ex.Message }));
          }
        }
        else {
          processingRootInfo = new DirectoryInfo(qArchiveRoot);
        }

        // Check UTC
        if(utc) {
          processingDateTime = processingDateTime.ToUniversalTime();
        }

        // Handle monthly directory
        qProcessingDirName = Path.Combine(processingRootInfo.FullName,
          processingDateTime.ToString("yyyy-MM"));

        // Create monthly archive directory, if not exists
        if(!Directory.Exists(qProcessingDirName)) {
          try {
            Directory.CreateDirectory(qProcessingDirName);
          }
          catch(Exception ex) {
            throw new ArgumentException(String.Format("Cannot create monthly " +
              "archive folder '{0}' because of '{1}'",
                new Object[] { qProcessingDirName, ex.Message }));
          }
        }

        // Handly daily directory
        if(dailyArchive) {
          qProcessingDirName = Path.Combine(processingRootInfo.FullName,
            Path.Combine(processingDateTime.ToString("yyyy-MM"),
              processingDateTime.ToString("dd")));

          // Create daily archive directory, if not exists
          if(!Directory.Exists(qProcessingDirName)) {
            try {
              Directory.CreateDirectory(qProcessingDirName);
            }
            catch(Exception ex) {
              throw new ArgumentException(String.Format("Cannot create daily " +
                "archive folder '{0}' because of '{1}'",
                  new Object[] { qProcessingDirName, ex.Message }));
            }
          }
        }

        archiveDir = qProcessingDirName;
      }
      catch {
        throw;
      }

      return archiveDir;
    }

Schlagwörter: Archiv, Archivierung, Autoarchive

Thema: UTF-8-Fehler auf Console?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von rastalt
Also bei mir wird in beiden fällen das Selbe ausgegeben:

]u:#\_{]`0jAÖÇñG|e*Cv\Ä6}v]*ß?U}ñ]Ç-Ç?v`(@>Uvk9[=!`+.Gµ?[B]³[/B]~J[B]³[/B]T)n!B[
}ö<q²)H

Bei mir ja auch, nur das Zeichen der hochgestellten 3 wird als die Zahl 3 eingestellt.

@kleines_eichhoernchen,

wo kann man das denn einstellen?

Naja, die Problematik hat sich erledigt. Ich habe über eine Stunde nach einen Fehler gesucht, nur weil ich den String aus der Console kopiert habe - jetzt schreibe ich (gespeichert UTF-8) in eine Datei und kopiere das dann da raus, das funzzt.

Thema: [gelöst] Feststellen, mit welcher Configuration Programm läuft
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Vielen Dank!

Thema: UTF-8-Fehler auf Console?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo "Kollegen",

kann vielleicht einer mal den Code ausführen ...

String testValue = "]u:#\\_{]`0jAÖÇñG|e*Cv\\Ä6}v]*߀U}ñ]Ç-Ç?v`(@>Uvk9[=!`+.Gµ?[B]³[/B]~J[B]³[/B]T)n!B[}ö<q²)H";
Console.WriteLine(testValue);
Console.WriteLine(new UTF8Encoding().GetString(Encoding.UTF8.GetBytes(testValue)));

Bei mir zeigt der immer die hochgestellten 3er als die Zahl 3 an 8o ... wenn ich die in einem String habe 3 und hochgestellte 3, dann gibt der mir den Index der "normalen" 3 zurück, wenn die vor der hochgestellten 3 kommt. Was das denn? Bei den hochgestellten 2er passt es - sehr komisch.

Thema: [gelöst] Feststellen, mit welcher Configuration Programm läuft
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo "Kollegen",

kann man mit C# (bzw. .NET) feststellen, in welcher Umgebung (Release oder Debug) eine Anwendung gestartet worden ist?

Danke schon mal für etwaige Antworten im Voraus.

Gruß

Thema: DLL Resource freigeben
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat von FZelle
Wozu brauchst du soetwas?

Siehe Eingangspost #2 (wozu man das braucht sollte eigentlich egal sein. Ich wollte einfach nur wissen, wie man das Locking aufheben kann - das muss doch irgendwie gehen)

Thema: DLL Resource freigeben
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

OK, schwammig ausgedrückt, neue Version einer DLL einspielen ;)

Thema: DLL Resource freigeben
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo FZelle,

geht auch nicht, wenn ich den VS Hosting Prozess disable. Nach dem ersten Compilieren sind die DLLs gesperrt. Ich kann dann eine neue DLL nur einspielen, wenn ich das Projekt schließe (und dann wieder öffne)

Thema: DLL Resource freigeben
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo "Kollegen",

zwei Fragen bezüglich "gelockten" DLLs.

1. Wenn ich eine DLL in ein Projekt einbinde und kompiliere, dann ist die DLL gesperrt, das bedeutet, wenn ich eine neue DLL in das Verzeichnis kopieren will, geht das erst dann, wenn ich das Projekt schließe - gibt es da einen anderen Weg, so in etwa unload DLL oder sowas ähnliches? Ist nämlich total nervig.

2. Wie löst man eigentlich den Konflikt, DLL xyz is used by another resource? Hintergrund war, dass ich einene eigenen msbuild-Task in einem Projekt geschrieben hatte und das Projekt als ganzes eingebunden, also nicht die DLL. Den Task habe ich vor dem Kompilieren (im Projektfile BeforeBuild) aufgerufen, dann bekam ich immer eine Fehlermeldung, dass diese DLL nicht verwendet werden kann, da schon von anderer Resource die DLL verwendet wird. Wie kann man dies lösen? OK, Nr. 1 würde mir schon reichen, da man ja nicht immer eigene msbuild-Tasks schreibt

Danke euch schon mal für etwaige Antworten im Voraus.

Gruß