Laden...

Forenbeiträge von delphiking1980 Ingesamt 5 Beiträge

03.11.2011 - 18:46 Uhr

Hallo,

ich habe folgenden Code welcher mir mit mehr oder minder erfolg in eine Datei schreibt.


try
            {
                StreamWriter file = new System.IO.StreamWriter(@filename, true);
                foreach (object o in meldungListe) {
                    String s = (String)o;
                    file.WriteLine(s);
                }                                
                file.Flush();
                file.Close();
            }
            catch (IOException ioEx) {
                Console.WriteLine("Fehler");
            }

nur leider bekomme ich in unterschiedlichen Intervallen eine IOException das die Datei von einem anderen Prozess bereits verwendet wird. Was mich doch sehr nachdenklich macht da ich diese Datei nur in der einen Klasse und an dieser Methoder öffne, bearbeite und wieder schließe.

03.11.2011 - 08:36 Uhr

das ist mir von anfang an klar gewesen nur ich möchte gerne den einen Style beibehalten.

03.11.2011 - 08:24 Uhr

mmh komisch hat sich erledigt ohne eine Zeile Code zu verändern.

Microsoft !!

03.11.2011 - 08:10 Uhr

Hallo,

ich komme eigentlich von Java und da ja Java und C# ziemlich Ähnlich sind ist es mir bisher leicht gefallen zu coden nur hier stoße ich auf meine grenzen.
Ich möchte gerne wie zu erkennen ist nur eine Instance der Klasse / des Objektes zulassen.


using System;
using System.Collections;
using System.Linq;
using System.Text;

namespace Logger
{
    /**
     * Diese Klasse dient zum Loggen der Ereignisse wenn der Serverdienst gestartet wurde.
     * **/
    class Logger
    {
        private static Logger instance;
        
        private Logger() { 
        }

        public static Logger getInstance() {
            if (instance == null)
                instance = new Logger();
            return instance;
        }
        
        public void logInfo(String infoText) {
            createLogRow("INFO "+infoText);
        }
        public void logDebug(String debugText) {
            createLogRow("DEBUG " + debugText);        
        }
        public void logError(String errText) {
            createLogRow("ERROR " + errText);
        }

        private void createLogRow(String text) {
            String logText = "[" + DateTime.Now + "] " + text;
           writeLogFile(logText);
        }

        private void writeLogFile(String text) {
            String formatDate = string.Format("{0:ddMMyyyy}", DateTime.Now);
            String filename = System.Threading.Thread.GetDomain().BaseDirectory + "vk8055_" + formatDate + ".log";
            using (System.IO.StreamWriter file = new System.IO.StreamWriter(@filename, true))
            {
                file.WriteLine(text);
            } 
        }

    }
}


nur wenn ich das Objekt instanzieren möchte dann :


private static Logger.Logger logger = Logger.Logger.getInstance();

bekomme ich folgende Fehlermeldung :

Fehlermeldung:
Fehler 1 Für das nicht statische Feld, die Methode oder die Eigenschaft "Logger.Logger.getInstance()" ist ein Objektverweis erforderlich.

Kennt sich jemand damit aus und kann mir helfen, weiß nichtmal wonach ich googeln müsste.

27.10.2011 - 15:58 Uhr

Hallo,

ich komme eigentlich von Java und habe mir eine Anwendung geschrieben welche einen String zwischen 2 ServerClient Anwendungen senden kann. Das funktioniert auch super nur wird der String ja mehrmals gesendet. Kann man unter C# abfragen ob der String schon gesendet wurde und wenn ja wann ? (Quasi ein Timestamp)

Mfg

Delphiking1980