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 Borg
Thema: [erledigt] Bericht auslesen
Am im Forum: Rund um die Programmierung

Hast du schon mal die Erweiterung FoxGame für den FireFox ausprobiert? Die kann das und noch mehr.

Thema: [erledigt] Mein Programm läßt den Rechner nicht Herunterfahren, Neustarten usw.
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

OMG = Oh Mein Gott.

Da siehst du mal, was das Entfernen einer Endlosschleife alles für Auswirkungen haben kann...

Thema: [erledigt] Mein Programm läßt den Rechner nicht Herunterfahren, Neustarten usw.
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat

DateTime dtNow = DateTime.Now;

while (dtNow.Date != dtDeadline.Date)
{
        dtNow = dtNow.AddDays(1);
        counter++;
}

OMG. Was ist das denn? Willst du die Anzahl der Tage bis zum Auslaufen einer Frist ermitteln?

Wie wäre es denn mit:

int days = (dtDeadline.Date - DateTime.Now.Date).Days;

Thema: Ich MUSS mit längeren Pfaden arbeiten können
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Relative Pfade bedeutet:

Du setzt den aktuellen Pfad mittels Directory.SetCurrentDirectory() auf "c:/Dokumente und Einstellungen/%USername%/Lokale Einstellungen/Anwendungsdaten" und arbeitest dann mit Pfaden der Form "Ordner1/Ordner2/Datei".
Solange ein Pfad nicht mit "\" beginnt, ist es immer ein relativer Pfad, d.h. er beginnt beim aktuellen Verzeichnis.

Thema: string.Format() Problem
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Nun, dann musst du ja nur wissen, welche Zeichen erlaubt sind und welche nicht.

Ich würde dann in einem Bool-Array speichern, was erlaubte Zeichen sind und was nicht und das ganze so gestalten:

// für jedes Zeichen ein Element, true wenn erlaubt, false wenn verboten
bool[] AllowedBytes = new bool[256] { /* ... */ };

private bool IsValidData( byte[] Data, bool[] AllowedBytes )
{
   if ((AllowedBytes.Length != 256) || (Data == null))
      throw new ArgumentException();
   int i = 0;
   while ((i < Data.Length) && AllowedBytes[ Data[i] ])
     i++;
   return i == Data.Length;
}

Thema: USB-Stick verschlüsseln Windows/Linux
Am im Forum: Smalltalk

Dann ist doch ein verschlüsseltes Archiv der einfachste und sinnvollste Weg, so etwas systemübergreifend zu bewerkstelligen.
Ein verschlüsseltes ZIP-Archiv kann jedes (mir bekannte) System von Haus aus öffnen.
Mit einem RAR kannst du sogar die Dateinamen verschlüsseln.

Thema: string.Format() Problem
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich habe es immer noch nicht richtig verstanden. Wieso schickt dir der Scanner plötzlich zwischendurch einfach mal so sinnlose Daten? Was ist dem voraus gegangen? Musst du den Scanner vielleicht neu initialisieren? Du hast doch geschrieben, dass die sinnlosen Daten kommen, wenn der Scanner falsch konfiguriert ist. Wieso konfiguriert ihn dein Programm nicht entsprechend?

Und was meinst du mit:

Zitat
da diese "Nummer" in dem Datenträger, welcher vom Scanner gelesen wird,

Reden wir hier von einem optischen Scanner? Was für ein Datenträger wird dort gescannt?

Thema: string.Format() Problem
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat
Encoding.ASCII.GetString(byte[]) bringt mir z.B. "0123"
Richtig. Encoding betrachtet die einzelnen Bytes als einzelne Zeichen und erzeugt einen String, der genau aus diesen Zeichen besteht. Wenn du so willst, wandelt er dir jedes Byte einfach in ein Char.
Zitat
und BitConverter.ToString() bringt dann 30-31-32-33...
Das war ja Sinn der Sache. Dein Problem war doch, dass die MessageBox Teile des Textes nicht darstellt, weil in dem String irgendwelche Steuerzeichen drin sind. Dieses Problem hast du damit gelöst, da jetzt die Werte der einzelnen Bytes hexadezimal ausgegeben werden.
Zitat
Wie kann ich das dann widerrum umwandeln?
Wozu? Es ging doch nur darum, das erhaltene Byte-Array zur Ausgabe zu formatieren. Und da du offenbar prüfen willst, welche sinnlosen Daten dir der Scanner schickt, ist dir nicht geholfen, wenn die Hälfte der Bytes nicht angezeigt wird, bloß weil sie Steuerzeichen sind.

Das wichtigste: der Scanner wird dir doch kaum eine Zeichenkette schicken, sondern nur binäre Daten. Warum willst du die überhaupt in eine solche umwandeln? Da kann nur Blödsinn bei raus kommen.

Thema: Dateien mit Platzhalter "*" suchen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

@feadur:

Zitat
ob das allerdings schneller ist bezweifle ich.
Schneller ist es mit Sicherheit. Ob das allerdings in einem spürbaren Rahmen liegt, möchte ich bezweifeln.

@Daneu:
1. Dein Programm erstellt die Datei doch. Dann sollte es doch wohl auch in der Lage sein, sich den Dateinamen zu merken.

2. Wieso erzeugst du temporäre Dateien unterhalb des Installationsordners?
Das funktioniert schon unter XP nur als Admin, unter Vista nicht mal dann.
Merke: niemals in das Anwendungsverzeichnis schreiben.
Um den korrekten Pfad für Anwendungsdaten zu erhalten nutze Environment.GetSpecialFolder().

Thema: USB-Stick verschlüsseln Windows/Linux
Am im Forum: Smalltalk

sudo

Thema: DateTimeStamp aus dem DV-Video lesen
Am im Forum: Grafik und Sound

Die Frage ist zwar simpel, allerdings ist es die Antwort nicht.

Den prinzipiellen Weg habe ich ja oben schon beschrieben.
Allerdings ist der C#-Teil das geringste Problem daran. Du müsstest dich in die Videobearbeitung per DirectShow einarbeiten.
Und das ist nichts, was man einfach mal eben so in ein paar Stunden erledigt.
Erst wenn du DirectShow verstanden hast und damit umgehen kannst, bist du an einem Punkt, an dem du dein Projekt beginnen kannst.
Insofern stellen deine noch geringen C#-Kenntnisse kaum ein Hinderungsgrund dar.

Natürlich nur angenommen, dass du den Aufwand zu leisten bereit bist. Ich würde eher die verlinkte Software nutzen, als das selbst zu machen.

Thema: Ein paar Fragen zu "Prozesse steuern"
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ein vom Benutzer steuerbarer Service besteht aus zwei Teilen.
Der erste ist der eigentliche Service, welchen unter dem SYSTEM-Account läuft. Dieser hat dann auch das Recht, beliebige Prozesse zu beenden und das Sicherheits-Log zu lesen.
Zusätzlich bietet er eine Kommunikationsschnittstelle an. Dies könnte IPC, Named Pipes oder auch TCP/IP sein, je nach Bedarf.

Vom Benutzer wird jetzt ein Steuerprogramm gestartet (evtl. per Autostart), welches sich über die Kommunikationsschnittstelle (Authentifizierung und Verschlüsselung nicht vergessen) mit dem Service verbindet und darüber die Übergabe von Befehlen u.ä. ermöglicht.

Ein Service kann nicht mit dem Desktop interagieren, also auch keine Fenster darstellen. Es ist zwar möglich (durch setzen des UserInteractive-Flags), nur sollte man das nicht tun, da der Benutzer sonst ein Fenster mit erhöhten Rechten hat. Damit kann der Benutzer sehr leicht die gesamte Rechteverwaltung aushebeln (ein simpler Dateidialog reicht schon).

Der richtige Weg läuft über die Trennung in Dienstlogik (SYSTEM-Rechte) und Steuerlogik (Benutzer-Rechte).

Thema: FullName des angemeldeten Benutzers ermitteln
Am im Forum: Rund um die Programmierung

Lass doch mal die Zeile search.PropertiesToLoad.Add("member"); weg, dann überträgt er alle Properties. Dann kannst du mit dem Debugger schauen, wie das gesuchte heißt und dieses im Anschluss auslesen.

Thema: Während Debug Code ändern?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat
Läuft der dann mit dem geänderten Code weiter oder noch mit dem alten, wenn ich wieder resume?

Er läuft mit dem neuen Code weiter. Wenn das aus irgendwelchen Gründen nicht möglich sein sollte, teilt dir VS das mit.

Thema: C# und C++ Stack-Speicher
Am im Forum: Rund um die Programmierung

Ich wollte damit nur ausdrücken, dass man die Rekursion in der interpretierten Sprache nicht als Rekursion in der interpretierenden Sprache ausführen muss.

Thema: string.Format() Problem
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

@Bionic:

Zitat
Oder greift es hier nicht?
Es greift nicht. Das @-Zeichen deaktiviert die Auswertung von Sonderzeichen in String-Literalen, d.h. direkt angegebenen String-Konstanten. Sind Sonderzeichen im String drin, sind sie drin und werden auch ausgewertet, es sei denn man entfernt sie. Einfach "ungültig" machen geht nicht.

@maik:
Ich vermute mal, dass dein String mit einem Nullzeichen ("\000") beginnt.
Ich vermute weiterhin, dass du die Daten als Byte-Array bekommst (bzw. bekommen solltest!?). Dann wandle sie vor der Ausgabe mittels BitConverter.ToString( byte[] ) in einen hexadezimalen String um.

Thema: empfangenes Byte Binär anzeigen
Am im Forum: Datentechnologien

Convert.ToString(Byte, Int32)

Thema: openfiledialog.multiselect????
Am im Forum: GUI: Windows-Forms

1. Wieso übergibst du den Dateinamen nicht als Parameter an getData()? Die Übergabe über eine Instanzvariable ist ... unschön.

2. Zum Zerlegen des Dateinamens bitte die Klasse System.IO.Path benutzen.

3. Wozu entfernst du erst die Extension, nur um sie dann wieder hinzuzufügen? Wenn schon nicht die Path-Klasse, dann wenigstens Test mittels String.EndsWith().

4. Wenn du MultiSelect benutzt, kann der Benutzer beliebig viele Dateien auslesen. Da ist es wenig intuitiv, wenn nur zwei geöffnet werden, vor allem da nicht bestimmt ist, in welcher Reihenfolge sie in FileNames auftauchen.

Thema: MSN code abfangen
Am im Forum: GUI: Windows-Forms

Reaktion auf das Öffenen eines Programms, aber wie?

Thema: C# und C++ Stack-Speicher
Am im Forum: Rund um die Programmierung

Wenn es dein eigener Interpreter ist, kannst du doch die Rekursion beim interpretieren in eine Iteration überführen.
Dazu kannst du in einem Stack<T> den Aufrufstack des interpretierten Programms speichern. Damit ist die Rekursionstiefe des interpretierten Codes nur durch den Arbeitsspeicher begrenzt.

Thema: DateTimeStamp aus dem DV-Video lesen
Am im Forum: Grafik und Sound

Das ist kein C#-spezifisches Problem, sondern eher eins von DirectShow.
Letzendlich läuft es darauf hinaus, das Video zu dekodieren, den Text in jedes einzelne Frame zu schreiben und das Video neu zu kodieren.

Thema: Ein paar Fragen zu "Prozesse steuern"
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

1. Jeder Benutzer kann seine eigenen Prozesse beenden (auch per Kill). Die Prozesse anderer Benutzer nur mit Admin-Rechten. Daher => Service

2. Keine mir bekannte allgemeingültige Möglichkeit. Es wäre dann eh besser, bereits vor dem Starten zu prüfen und den Start gegebenenfalls abzubrechen.

3. In Reaktion auf das Öffenen eines Programms, aber wie? steht, wie du auf das Starten eines Prozesses per Event reagieren kannst.

Thema: webbrowser - htmlcode abfangen
Am im Forum: GUI: Windows-Forms

Fang WebBrowser.Navigatingab, cancel das Event, lade die Seite von Hand, entferne alle ungewollten IMG-Tags (oder besser: setze die Source auf eine 1x1 Pixel große Grafik und blähe mittels "width" und "height" auf die Originalgröße auf, um das Layout zu erhalten) und weise den Code an WebBrowser.DocumentText zu.

Allerdings weiß ich nicht, wie die ganzen Events auf Frames reagieren, die ja in verschiedenen Dateien vorliegen...

Thema: Nach welchen Kriterien Konstruktoren definieren?
Am im Forum: Rund um die Programmierung

Zitat
Ich "sage" also: Ein Gebäude ist auch ein Bodenfeld, daher die Ist-ein-Beziehung.
Dem kann ich mich zwar nicht anschließen, aber vielleicht fehlen mir auch nur weitere Informationen.
In meiner kleinen Denkwelt habe ich ein Objekt vom Typ Gebäude, welches auf einem Objekt vom Typ Grundstück steht. Dennoch sind Grundstück und Gebäude zwei verschiedene Paar Schuhe. Auf einem Grundstück können sogar mehrere Gebäude stehen. Keinesfalls jedoch ist ein Gebäude automatisch ein Grundstück; es hat (steht auf) ein(em) Grundstück.

Thema: Überprüfung auf Änderungen in Ordner
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

NTFS Change Journal

Thema: Nach welchen Kriterien Konstruktoren definieren?
Am im Forum: Rund um die Programmierung

Zitat
Soweit richtig?
Ja.
Zitat
Ich hätte gerne, dass die Location vorne steht, Muss ich dazu dann lediglich die Parameter umdrehen, oder muss ich auch einen neuen Konstruktor einfügen?
Einfach Reihenfolge der Parameterliste tauschen. Siehe unten.
Zitat
Eigentlich macht das keinen Sinn, aber man sollte doch alle Möglichkeiten abdecken?
Nein. Wenn es keinen Sinn macht, brauchst du es auch nicht anzubieten.
Zitat
Dann weiter: ...
1. Occupant sollte einen Standard-Konstruktor anbieten, so dass du dir das String.Empty sparen kannst.
2. Allein von den Namen der Klassen her, vermute ich, dass dein Klassendesign nicht ganz sauber ist. Bei dir ist Building ein Kind von Basement. Das würde aber bedeuten, dass jedes Gebäude automatisch ein Untergeschoss ist.
Gemeint ist aber sicherlich, dass jedes Building ein Basement hat (Aggregation).
Zitat
denn auch hier hätte ich am liebsten die Location ganz vorne.
Siehe oben und folgendes.
Zitat
Entspricht letzteres eigentlich dem, was Du bzgl. der Parameterreihenfolge vorgeschlagen hattest, Borg?
Ich würde die Parameter immer nach Priorität anordnen. Und wenn du selbst schreibst, dass ein Basement zwar ohne Location aber nicht ohne Typ sinnvoll angelegt werden kann, dann ist der Typ der wichtigste Parameter und sollte meines Erachtens nach ganz vorn.
Ansonsten halte ich es für wenig intuitiv, wenn ich einen Konstruktor einen Typ übergebe und ihm später noch die Location hinzufügen will, jedoch diese plötzlich vor dem Typ angeben muss.

Thema: Byte Array mit HEX Werten, einzelne Werte umwandeln nach LSB
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Du kannst die Inversion des Bytes durch ein Exklusiv-Oder mit 0xFF ersetzen. Dann klappt es auch mit dem Wertebereich.

Thema: Uri-Format wird nicht unterstützt
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Wieso nicht einfach Process.Start( @"D:\Development\C#\SarFernGas\SarFernGas\bin\Debug\PCUpdate.exe" );?

Thema: WordPad starten, Datei laden
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Stimmt. Ich glaube mein @ klemmt.

Thema: Nach welchen Kriterien Konstruktoren definieren?
Am im Forum: Rund um die Programmierung

Zitat
Dank Intellisense sollten Parameterlisten auch überschaubar bleiben.

Mittlerweile ist doch bekannt, das herbivore ein Hardcore mit-dem-Editor-programmier-und-ber-die-Kommandozeile-kompilier Programmierer ist. Da ist nichts mit IntelliSense.

Ich bin aber auch der Meinung, dass Eigenschaften, die für die Verwendung der Instanz wichtig sind, bereits bei deren Erzeugung festgelegt werden sollen.

Ansonsten dürfte man nicht mal eben Foo( new Point(5,10) ) schreiben, sondern immer Point p = new Point; p.X = 5; p.Y = 10; Foo(p);.