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 trib
Thema: TextErsetzung aus dem Hintergrund heraus
Am im Forum: GUI: Windows-Forms

Die simpelste, auch wenn nicht beste Möglichkeit wäre die Zwischenablage dafür zu benutzen.

Einfach deinen String mit Clipboard.SetText() festlegen und diesen per Strg+V (ebenfalls per Hooks möglich) einfügen. Du bist dann ja schon mit dem Cursor an der richtigen Stelle. Evtl. Vorher 3x Backspace um dein Pattern zu löschen.

Damit du danach nicht immer den Text in der Zwischenablage hast, würde ich vorher den Inhalt als Objekt zwischenspeichern und nach der Ausgabe wieder hinterlegen.

Gruß,
TriB

Thema: Problem mit TableLayoutPanel beim neubefüllen
Am im Forum: GUI: Windows-Forms

Könnte es evtl. daran liegen?

this.main_module0_panel0.AutoSize = true;

Gruß,
TriB

Thema: Access Bericht auslesen
Am im Forum: Datentechnologien

Du kannst per rechter Maustaste auf die References in deinem Projekt, Referenzen hinzufügen.
Dort sollte sich dann auch die Libary für Access wiederfinden.
(Unter COM schauen)

Thema: Dasselbe Javascript - Objekt auf mehreren Seiten gebrauchen
Am im Forum: Web-Technologien

Guten Morgen pro,

ich verstehe gerade nicht genau was du möchtest.
Du kannst die Funktionen in eine *.js Datei auslagern und sie aus jeder HTML-Seite aufrufen.
Hast du ja auch wohl getan.

Was aber natürlich nicht geht, ist auf die selbe Instanz zuzugreifen.
Und genau das scheinst du zu wollen...

Mir fällt auf die schnelle nur php ein, da du damit die Möglichkeit hast Werte von einer Seite an eine andere zu übergeben.
Ansonsten könnte man mit Sessions arbeiten, das jeder User seine eigene Verbindung hat. Macht aber nur Sinn in Verbindung mit SQL.


Zu guter letzt könnte man pro Nutzer eine Textdatei mit den Werten ablegen.
Ist etwas unperfomant und nicht gerade schön gelöst. So benötigst du kein SQL, kommst aber um PHP auch nicht herum.

Gruß,
TriB

Thema: FTP Unique Directory
Am im Forum: Netzwerktechnologien

Hallo zusammen,

ich habe gerade ein kleines Programm geschrieben, welches per Knopfdruck über FTP meine Zwischenablage hochläd.
Alles kein Problem. Nur möchte ich ungerne meine Screenshots immer wieder überschreiben, geschweige denn einen Zähler hart programmieren.

Da habe ich "WebRequestMethods.Ftp.UploadFileWithUniqueName;" gefunden und ging blauäugig davon aus, das dann einfach eine Laufende Nummer angehängt wird o.ä.

Jedoch rassel ich in den Catch Block:
Der Remoteserver hat einen Fehler zurückgegeben: (550) Datei nicht verfügbar oder keinen Zugriff.....

UploadFile Funktioniert hingegen anstandslos.

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(server + "Bild.jpg");                
                request.Credentials = new NetworkCredential(login, password);
                request.Method = WebRequestMethods.Ftp.UploadFileWithUniqueName;
                //request.Method = WebRequestMethods.Ftp.UploadFile;
                request.Proxy = null;
                request.UseBinary = true;

                try
                {
                    WebResponse response = request.GetResponse();
...

Wende ich das ganze falsch an, oder gibt es eine einfache/bessere Alternative?

Gruß,
(ein bei 36° verdammt schwitzender) TriB

Thema: Beziehungen in Access Datenbank
Am im Forum: Datentechnologien

Das angesprochene Problem bezieht sich auf eine unsaubere Tabellenrelation.
Datenredundant ist sie vielleicht nicht, aber normalerweise löst man das Problem, das mehrere User in mehreren Gruppen und andersherum sein können, mit einer n:n Beziehung.

Das heißt, das man eine weitere Tabelle zwischen die beiden packt und dort alle Beziehungen einträgt. (Spalte1 UserID, Spalte2 GruppenID)

So kann auch Access oder ein anderes Programm damit etwas anfangen und nicht nur dein C# Proggie was "hart" diese Verknüpfung ausliest.

Gruß, TriB

Thema: Programmpfad von externer EXE ermitteln
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Guten Morgen zusammen,

wenn ich per ProcessStartInfo nur den Dateinamen starte ("iexplore", "notepad" oder eben "MSaccess"), dann greift die Process Klasse auf die Registry (Programmhandler) zu um an den Pfad des Programmes zu gelangen.
Genau dort könnte ich dann ebenfalls an den/die Pfade kommen.

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\FileExts\.mdb]
"Progid"="MSaccess.exe"

Gruß,
TriB

Thema: Umstieg von Excel 2003 auf Excel 2007
Am im Forum: Office-Technologien

Da Excel2007 neben den neuen Dateiendungen auch noch ein paar neue *.dll´s mitbringt, wirst du in deinem Projekt die Using-Direktive anpassen müssen.

Das reicht aber noch nicht, da sich zusätzlich ein paar Methoden geändert haben.
(Die Zahlen in den Methodennamen stimmen nicht mehr überein)
Solle man aber recht fix mit dem Debugger herausfinden können welche das sind.

Thema: Dynamisches SQL-Statement mit Parameter realisieren
Am im Forum: Datentechnologien

Zitat von jptest
Must declare the scalar variable "@ID",

Das ist sozusagen die Allzweck-Fehlermeldung von SQL
Es muss nicht an der Variable selbst liegen. Es kann auch an jeder Stelle des Codes ein Fehler vorgekommen sein.

Am besten schreibst du dein fertiges SQL-Statement, bevor du es dem Adapter übergibst, in eine Textdatei und schaust es dir dort an.

Das sollte die Fehlersuche vereinfachen.

Thema: Testen, ob eine Internetverbindung vorliegt?
Am im Forum: Netzwerktechnologien

Zitat von Xynratron
naja, und auf meinem Noti macht er dann immer eine UMTS-Verbindung auf, oder?

So isses, sprach Meister Pinguin

Ich musste doch sehr schmunzeln als ich das gelesen habe!

Wenn das ganze auf einem Rechner läuft, der selbstständig keine Verbindung aufbauen kann, könnte man das mit dem Ping so lösen:

System.Net.NetworkInformation.Ping p = new Ping();
                p.PingCompleted += pingHandler;
                hostReachableCheckBox.CheckState = CheckState.Indeterminate;
                p.SendAsync("www.google.de", 20000, null);

Aber aus den o.g. Gründen eben nicht die Lösung...

Thema: Wie viel ernstzunehmende Programmiererfahrung habt ihr?
Am im Forum: Smalltalk

Hiho,

ich reihe mich dann mal mit ein.


In der 1. Ausbildung habe ich Java (1 Jahr), c (0,5) & c++ (1,5) gehabt.
Dazu HTML, CSS, JS & PHP auf die 3 Jahre verteilt. Genauso wie VB in Excel und Access.
Das ganze ist jetzt 2 Jahre her. In der Zwischenzeit habe ich privat viel Webanwendungen gemacht und C eher vernachlässigt.

In Ausbildung Nr. 2 bin ich jetzt seit einem Jahr an C/AL (Job) und C# (Schule).
C# nutze ich aber auch privat oder erstelle kleine Programme die mir den Alltag in der Firma vereinfachen.
(Und alles was in Sachen SQL [Reporting] so anfällt)

Ging aber fix dort wieder rein zukommen. Die Grundlagen aus der Schule waren schon nicht verkehrt.

Vor dem Ganzen gab es noch ein bisschen Basic. Das war aber eher nur Spielerei.

Alles in Summe, komme ich dann auf 5 Jahre einigermaßen ernsthafter Programmierung.

Thema: SQL Spalte nicht gefunden -> komisch
Am im Forum: Datentechnologien

Wie der Name "ANMELDEDAT" schon sagt, denke ich mal das es sich um die Benutzerüberprüfung oder so handelt.

In vielen Datenbanken gibt es ein paar Standard Tabellen für Benutzer, Rollen oder Zuweisungen.
Bevor du an die Daten kommst probiert er evtl. zu checken ob du als Benutzer in der "ANMELDEDAT" eingetragen bist...

Aber das solltest du dann ja sehen, wenn du in dir DB schaust.

Warum das nur manchmal passiert kann ich mir aber nicht erklären. Das sollte eigentlich ein "entweder, oder"-Problem sein.

Thema: SQL Reports - Berichtsparameter
Am im Forum: Datentechnologien

Boahr, SUPER! Dank dir vielmals.

Habe gerade die " alle" Geschichte ausprobiert und sie funktioniert prima.
An das Stored Procedure werde ich mich dann aber erst nach dem Wochenende wagen
Hast genau mein Problem verstanden und super erklärt.

Ich muss mir nur überlegen wie ich das am sinnvollsten in diese ganzen sub selects einbaue. Evtl. kann ich ja ähnliche Abfragen in einem Rutsch mit dem delete bearbeiten.

Schönes Wochenende,
TriB

Thema: SQL Reports - Berichtsparameter
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: SQL 2005 SP2 / VS 2005

Hallo zusammen,

ich habe ein eher allgemeines Problem mit SQL.
Genauer SQL Reporting.
Anhand von Berichtsparametern möchte ich Datensätze filtern bzw. wenn kein Parameter angegeben wird, möchte ich alle Daten sehen.

Jeder Filter der leer gelassen wird, muss mit einem „OR“ abgefangen werden um alle Datensätze ungefiltert zu erhalten.

([Tabelle].[Feld] = @Filter) OR (@Filter = NULL)
Genau dieses böse „OR“ nimmt das gesamte SQL Statement, kopiert es einmal davor und einmal dahinter (eben einmal das gesamte Statement mit Filter & einmal mit Parameter=NULL).

Aufgrund der vielen SubSelects(28stk) und der 12 Filterparameter kämen ich nach Adam Riese auf den 336fachen Quellcode.
Das kann ja nicht die Lösung sein…

Abgesehen davon, das wenn man diesen Berichtsparametern eine Tabelle hinterlegt, hat man garnicht die Möglichkeit einen Leeren Wert zu übergeben und alle Datensätze ungefilter anzeigen zu lassen.

Bin für jede Hilfe Dankbar, auch wenn das ganze (noch) nicht viel mit C# zu tun hat

Gruß,
TriB

Thema: TabPage vergrößern
Am im Forum: GUI: Windows-Forms

Bei einer Standard Tab-Page kann man die Größe so festlegen:

Tab1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
Tab1.ItemSize.Width = 35;
Tab1.ItemSize.Height = 18;

Allerdings nur die selbe Größe für alle Tabs...

Thema: Streamwriter - Datei wird erstellt, ist aber leer
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von w1z4rd2003
hallo zusammen
wenn ich es ganz durchlaufen lasse mit F5 wird es geschrieben.

Das ist ja auch Logisch. Denn wie kleines_eichhoernchen schon sagt, arbeitet das Close()
bei dem StreamWriter wie ein Flush.
Das bedeutet, das alles in einem Rutsch geschrieben wird was du vorher deiner StreamWriter Variablen zugewiesen hast.

Vorher passiert an deiner Textdatei nix.

Gruß,
TriB

Thema: List mit mehrdimensionalem String
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hey, danke JAck30lena!

Habe es mit der Klasse gelöst und es hat auf Anhieb funktioniert.

Klasse "Files.cs" erstellt und 8 Variablen mit Eigenschaften angelegt.

In der Main die List erstellt:

List<Files> Einträge = new List<Files>();

Die Infos speichern...

Files dateien = new Files();
dateien.Info1 = infos.ToString();
...
Einträge.Add(dateien);


...und die Schleife dann so aufgebaut:

foreach(Files dateien in Einträge)
{
       Excel.CellText(dateien.Info1,"Default",true);
       Excel.CellText(dateien.Info2);
       ...


War doch einfacher als ich dachte.
Vielleicht hätte ich in der Klasse besser ein ein string[] Array genommen... Mal schauen. =)

Thema: List mit mehrdimensionalem String
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen,

nach langem Suchen per SuFu und Mr. Google wende ich mich mal an Euch.

Worum gehts:
Ich habe ein Programm welches in Ordnern nach bestimmten Dateitypen (Rekursiv) sucht und diese in eine Excel-Datei listet.
Möchte ich den Ordner dazu ausgeben, müssen die Dateien zwischengespeichert werden um zu verhindern das, 1. der Ordner unter den Dateien steht & 2. die Ordner ohne diesen Dateityp ignoriert werden.

Da es immer um einen Ordner mit 8 Informationen geht habe ich ein Array erstellt.
Für die Dateien benötige ich auch ein Array mit 8 Informationen, jedoch ist die Anzahl der Dateien in dem Ordner natürlich unterschiedlich.
-> Also benötige ich ein mehrdimensionales Array in einer List. (8 Listen wären ja blöd...)

Problem Nr. 1 die Deklaration:


List<string> Einträge = new List<string>(new string[10]);
string[] temp = new string[10];
Einträge.Add(temp);
Kompiler: The best overloaded method match for System.Collections.Generic.List<string>.Add(string)' has some invalid arguments
Habe schon etliche Abwandelungen ausprobiert, bis dato jedoch ohne Erfolg

Problem Nr. 2 das Speichern:


foreach(string[] files in Einträge)
                  {Excel.CellText(files[0],"Default",true);
                   ...
Kompiler: Cannot convert type 'string' to 'string[]‘
-> Was ja auch erstmal Sinn macht, wenn die Liste falsch initialisiert ist.
Aber geht das überhaupt so, wie ich mir das vorstelle?

Vielen Dank für jede Hilfe,

TriB

Thema: Arbeiten mit relativen Pfaden
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi zusammen,
hätte da evtl. was anzubieten:


string directory = Application.StartupPath;;

private string RelativePath(string relativeTo)
        { 
            string absolutePath = directory;
            string[] absoluteDirectories = absolutePath.Split('\\');
            string[] relativeDirectories = relativeTo.Split('\\');
            
            int length = absoluteDirectories.Length < relativeDirectories.Length ? absoluteDirectories.Length : relativeDirectories.Length;
            int lastCommonRoot = -1;
            int index;

            for (index = 0; index < length; index++)
                if (absoluteDirectories[index] == relativeDirectories[index])
                    lastCommonRoot = index;
                else
                    break;

            if (lastCommonRoot == -1)
            {
            	MessageBox.Show("Das Programm befindet sich nicht auf dem selben Datenträger!\" + Path.GetPathRoot(absolutePath)+" & "+Path.GetPathRoot(relativeTo));
            	return relativeTo.ToString();
            }
			else
			{            
            StringBuilder relativePath = new StringBuilder();

            for (index = lastCommonRoot + 1; index < absoluteDirectories.Length; index++)
                if (absoluteDirectories[index].Length > 0)
                    relativePath.Append("..\\");
            
            for (index = lastCommonRoot + 1; index < relativeDirectories.Length - 1; index++)
                relativePath.Append(relativeDirectories[index] + "\\");
            relativePath.Append(relativeDirectories[relativeDirectories.Length - 1]);
         
              return relativePath.ToString();            
			}
        }

Bestimmt nicht der einfachste Weg, aber vielleicht hilft es ja ein bisschen.


EDIT:
@Golo Roden, stimmt habe die Diskussion darüber mal gelesen. thx

Thema: Fenster im Fenster / Taskleiste
Am im Forum: GUI: Windows-Forms

Ich denke, das einfachste wird ein Panel sein.
Dem kannst du einfach Controls zuweisen und recht simpel beibringen, das man das Panel auch verschieben kann.

Du musst dann aber natürlich das Design selbst übernehmen, denn außer einem Rahmen bietet ein Panel dir nichts.

Gruß, TriB

Thema: Das Emoticon ^^
Am im Forum: Smalltalk

Ich schließe mich dem nur an.
Nach meiner Auffassung handelt es sich nicht um Augenbrauen sondern um die Augen selbst, da diese im Anime-Style beim Grinsen in etwa so aussehen.
Wo jetzt der eigentliche Ursprug ist, weiß ich auch nicht.

Einzusetzen ist es parallel zu dem " ;-) " bzw. wenn etwas nicht lustig genug für den " ". Sozusagen noch eine Hirachie unter dem lol.

Mal schauen wann sich ein gewisser Herr Langenscheid dem annimmt. ^^

Thema: Screenshot unterbinden
Am im Forum: GUI: Windows-Forms

Benutzt Jemand ein Programm wie SnagIt oder hat selbst eine Capture-Programm geschrieben, nutzt auch die Abfrage nach den Tasten nichts.

Vielleicht macht es ja mehr Sinn zu kontrollieren, das Screenshots aus dem System nicht herauskommen. (Internet/USB blockieren...)

Und wie Tomot schon schreibt, könnte jeder alternativ sein Handy zücken und trotz aller Bemühungen ein Bild schießen.

Gruß,
TriB

Thema: DLL Import für SpeechLib
Am im Forum: Rund um die Programmierung

Alles klar, danke schön für die Infos.

Dann bleibt mir nur die Möglichkeit mehr Input von Microsoft über die DLL zu bekommen
oder es führt kein anderer Weg dran vorbei mit dem normalen "using" zu arbeiten und die Datei neben die *.exe zu legen.

Thema: DLL Import für SpeechLib
Am im Forum: Rund um die Programmierung

Es ist schon public. Durch den normalen Import funktioniert der Code.
Jedoch wird dann der Pfad "hart" gespeichert und die dll muss neben der Datei oder im System32 Ordner liegen.
Das will ich ja eben nicht.

Per DLLImport kann ich aber nur die Funktion einbinden und nicht den Datentyp SpVoice. (Kompilerfehler)

Genau da liegt mein Problem.

Sorry wenn das vorher unklar gewesen ist.

Thema: DLL Import für SpeechLib
Am im Forum: Rund um die Programmierung

Guten Tag zusammen,

ich habe ein kleines Problem mit der Interop.SpeechLib.dll.

Diese möchte ich gerne relativ einbinden, damit sie in einem Ordner liegt und nicht neben dem Programm. Zusätzlich wird dann gecheckt ob sie existiert und alternativ eine andere Funktion genutzt.

Mein Versuch sieht wie folgt aus:

[DllImport(@"data\Interop.SpeechLib.dll")]
        public extern static void Speak();
.....
.....
if (File.Exists([email protected]"\data\Interop.SpeechLib.dll"))
                    {                        
                        SpVoice voice = new SpVoice();
                        voice.Speak(timerReason,SpeechVoiceSpeakFlags.SVSFDefault);                        
                    }

Jedoch sind "SpVoice" & "SpeechVoiceSpeakFlags.SVSFDefault" natürlich unbekannt, da nur auf die Funktion Speak() aus der *.dll zurückgegriffen wird.

Wie kann ich das am simpelsten realisieren? Prinzipiell muss ich ja nur meinen String + den Defaulttype übergeben.

Per Google habe ich relativ viel zu PInvoke gefunden aber das war mir ehrlich gesagt zu kompliziert. Ich kenne ja die ganzen Parameter aus der dll nicht.
Und per SuFu bin ich leider auch nicht auf das richtige gestoßen...

Gruß,
TriB