Laden...
M
Benutzerbeschreibung

Forenbeiträge von MichiM Ingesamt 14 Beiträge

19.12.2005 - 19:59 Uhr

Hi herbivore,

habs dann kurz drauf doch hinbekommen, weil ich Dispose() aufs Image und nicht auf die PictureBox angewendet hab. Wobei - unlogisch find ich es ja nicht mal, ist halt scheinbar lediglich nicht so vorgesehen. 😉

Wenn übers Image selbst, dann:


this.pictureBox1.Image = null;
this.pictureBox1.Refresh();

Danke!
Michi

19.12.2005 - 19:28 Uhr

Hi,

hab ein Form mit diversen Komponenten, darunter z.B. Button und PictureBox.

Warum lässt sich die PictureBox zwar über .visible = false unsichtbar machen, über .Dispose() jedoch nicht komplett entfernen, sodass sie auch gleich sichtlich verschwindet? Muss dazu erst noch eine Show- bzw. Update-Methode aufgerufen werden?

Ein anschließendes

this.pictureBox1.Show();

bringt jedenfalls noch nicht den gewünschten Effekt.

Ebenso schaff ich es z.B. nicht, eine neue Grafik reinzuladen:

this.pictureBox1.Image = Image.FromFile (filename);

scheitert.

Also scheinbar muss das Objekt erst noch irgendwie aktualisiert werden?

Gruß Michi

07.04.2004 - 01:09 Uhr

Hi C#ler,

wie ist das mit dem isolierten Speicher (System.IO.IsolatedStorage) eines best. Assemblys - Kann da (managed) Code eines anderen Assemblys nur nicht darauf zugreifen (-> Zugriff verweigert?) oder findet er den isolierten Speicher erst gar nicht vor (-> Pfad nicht gefunden?) ?

MfG
Michi

07.04.2004 - 01:02 Uhr

Könnte es vielleicht damit zusammenhängen, dass man XML und SOAP ja eher zur Kommunikation mit anderen Anwendungen verwendet, also von daher auch normalerweise Daten serialisiert haben will, die die anderen was angehen, also nicht private sind, während man bei der binären ja für sich selber serialisiert (z.B. Konfiguration bei Programmende) und da alles serialisiert haben will? Eine andere Erklärung find ich nicht....

06.04.2004 - 13:28 Uhr

Hallo C#-Freunde,

hat hier jemand eine Ahnung, warum .NET die einzelnen Serialisierungsformate bzgl. der Zugriffsmodifizierer bei den Daten unterschiedlich behandelt?
Na gut, weil die Klassen halt so geschrieben sind, ok. 🙂 Aber hat das einen tieferen Sinn?

Warum werden bei der XML- und SOAP-Serialisierung nur diejenigen Daten serialisiert, die als public deklariert sind? Warum sind dagegen bei der binären Serialisierung die Zugriffsmodifizierer dann wieder egal?

MfG
Michi

05.04.2004 - 20:26 Uhr

Trotzdem hab ich es nicht hinbekommen, eine Datei aus dem aktuellen Verzeichnis (relative Angabe) in ein anderes zu verschieben, obwohl die zu verschiebende Datei im aktuellen Verzeichnis existiert. Woran kann das wieder liegen?
Funktioniert File.Move doch nur bei absoluten Pfadangaben?

05.04.2004 - 13:25 Uhr

Das ist mal ein vernünftiger Ansatz: 😁

 System.Console.WriteLine (Directory.GetCurrentDirectory());
05.04.2004 - 11:02 Uhr

Durch Application.StartupPath bekomme ich aber nur das Verzeichnis, in dem das Programm gestartet wurde. Relative Pfadangaben werden jedoch nicht auf diesem Verzeichnis basiert... Zumindest funktionieren meine Versuchsprogramme so nicht -> "System.IO.FileNotFoundException: Die Datei ... konnte nicht gefunden werden."

05.04.2004 - 09:31 Uhr

Hallo C#-Freunde,

wie bekommt man eigentlich das aktuelle Verzeichnis raus?
Beispiel:

  File.Move (@"daten.txt", @"c:\unterverzeichnis\daten.txt");   

Würde so eine Anweisung funktionieren?
Kennt .NET relative Pfadangaben?
Wenn ja: Wie bekommt man dasjenige Verzeichnis raus (-> aktuelles Verzeichnis), in dem nach daten.txt gesucht wird?

Bei mir scheitert der Dateizugriff sowohl dann, wenn sich die Datei (bei relativer Angabe wie im Beispiel, also z.B. @"daten.txt") im Verzeichnis des Programms befindet als auch, wenn sie sich im Arbeitsverzeichnis (das sich z.B. in UltraEdit eingeben lässt) befindet.

MfG
Michi

02.04.2004 - 17:51 Uhr

Nun läufts, danke.

Aber wie es mir scheint, funktioniert das bei XML-Serialisierung nicht, sondern nur bei binärer...

02.04.2004 - 16:56 Uhr

Hi C#-Fans,

hat jemand eine Ahnung, warum in meinem Programm bei der XML-Serialisierung das Interface ISerializable einfach ignoriert wird? Bei der binären (Klasse BinaryFormatter) stürzt das Programm sogar ab, weil irgendein Konstruktor fehlt.
Ich setz es hier ein, um meine Daten vor der Serialisierung bisschen zu verschlüsseln (der Einfachheit halber mal nur über XOR).
Vermutlich mach ich irgendwo einen kleinen, aber grundlegenden Fehler, da ich mir nicht vorstellen kann, dass der Fehler im Interface ISerializable liegt. 🙂


using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.Xml.Serialization;
using System.Drawing;
using System.Windows.Forms;

[Serializable] // -> serialisierbare Klasse
public class MyObject : ISerializable
{
  
  public int n1, n2, n3 = 0; // Eigenschaften mit 0 initialisieren


  public void GetObjectData(SerializationInfo info, StreamingContext ctxt)
  {
             info.AddValue("n1", n1 ^ 43);
             info.AddValue("n2", n2 ^ 65);
             info.AddValue("n3", n3 ^ 145);
  }
  
  public string get_n1 ()
  {  
  	return n1.ToString ();
  }
  
  public string get_n2 ()
  {  
  	return n2.ToString ();
  }
  
  public string get_n3 ()
  {  
  	return n3.ToString ();
  }
   
  public void setValues (int v1, int v2, int v3)
  {
  	n1 = v1; n2 = v2; n3 = v3;
  }
   
}

public class SerializeDemo
{
        static void Write (MyObject d) // schreibt Daten in SerializeFile -> Serialisierung
        { 
        	FileStream s = new FileStream ("e:/SerializeFile", FileMode.Create);
           	XmlSerializer f = new XmlSerializer (typeof (MyObject)); 
        	f.Serialize (s, d);
        	s.Close ();
        }
        	
        static MyObject Read () // liest Daten aus SerializeFile -> Deserialisierung
        {	FileStream s = new FileStream ("e:/SerializeFile", FileMode.Open);
           	XmlSerializer f = new XmlSerializer (typeof (MyObject)); 
                MyObject head = f.Deserialize (s) as MyObject;
                s.Close ();
                return head;
        }
        
        static void Main ()
        {      MyObject data = new MyObject ();
               data.setValues (4, 10, 17);
               Write (data);
               	
               MyObject new_data = Read ();
               Console.WriteLine
               ( "n1 = " + new_data.get_n1 () + " " +
                 "n2 = " + new_data.get_n2 () + " " + 
                 "n3 = " + new_data.get_n3 () + " " );
        }
}

In Sachen Fehleranalyse bin ich als Anfänger mit C# ab und zu ziemlich überfordert... Die MSDN-Beispiele helfen mir auch nur vereinzelt weiter, da die meisten für mich viel zu lang und globig gestrickt sind.

Ciao!
Michi

--> Bitte CodeTags verwenden

19.02.2004 - 10:23 Uhr

Hallo,

ist Entlastung des Arbeitsspeichers eigentlich ein realistisches Argument für die Auslagerung von großen Datenmengen mittels Serialisierung? Ich denke dabei an die Speichermanager (automatische Auslagerung von Arbeitsspeicher in virtuellen Speicher), die auf jedem modernen System vorhanden sein dürften (zumindest auf denen, auf denen C# läuft bzw. jemals zum Einsatz kommen wird) und das Management wahrscheinlich am besten beherrschen?

MfG
Michi

09.02.2004 - 13:03 Uhr

Ok, verstehe.

Ich nehm mal an, dass die Assembly-Infos (zumindest der Schlüssel) im virtuellen .NET-Dateisystem landen, sonst könnte ja jedes Programm drauf zugreifen?
Grad, wenns um isolierte Speicherung geht, die ja auch über .NET hinaus isoliert bzw. sicher sein soll.

Wie wär das aber, wenn so ein C#-Programm samt Daten in Windows in ein anderes Verzeichnis verschoben wird?

Davon kriegt .NET ja nichts mit, oder? Damit würde das Programm beim nächsten Zugriff auf seinen isolierten Bereich nichts mehr finden...
Gilt also auch für .NET-Anwendungen: Nicht einfach verschieben, sondern deinstallieren und neu installieren, auch wenn die Daten nicht in der Registry, sondern im isolated Storage liegen?

Danke!
Michi

09.02.2004 - 09:28 Uhr

Hallo,

werden in .NET Assemblies IMMER erzeugt oder nur, wenn sie beim Kompilieren angefordert werden?

In diesem Fall: Was muss gemacht werden, damit ein Assembly erzeugt wird?

Woher weiß der Compiler, welche Dateien/Module zu einem Assembly gehören?

Ich hoffe, man kann Assemblies auch ohne Visual Studio .NET erzeugen? Da soll ja so ein Tool StoreAdm.exe dabei sein.

Leider kann ich da im Moment nicht recht experimentieren, da mir der Einstiegspunkt fehlt...

Ciao!
Michi