C#Noob schrieb:
ja hab ich schon gefunden, allerding kann ich da den key nicht mehr nachträglich ändern.
Hmm, das ist doch auch eigentlich gut. Wenn Du den Schlüssel ändern willst, erstell doch einfach ein neues `KeyValuePair`, das ist eine ziemlich billige Operation.
Alternativ musst Du Dir eine eigene `Pair`-Klasse schreiben. Besser noch wäre eine (überladene) `Tuple`-Klasse.
C#Noob schrieb:
ja ist ne dictonary;) ja die lösung mit maskieren und danach löschen hab ich mir auch überlegt, aber das wären ja dann zwei schleifen.
Na ja, es ist aber trotzdem relativ effizient, da würde ich mir also keine zu großen Sorgen machen, und es ist auch nicht viel Code:
var del = new List<Guid>();
foreach(var kvp in m_ClientSessions)
if (shallDelete(kvp))
del.Add(kvp.Key);
del.ForEach(m_ClientSessions.Remove);
Um aus einer Liste zu löschen gibt's übrigens die Methode `RemoveAll`, weil der obige Ansatz dort wesentlich ineffizienter wäre.
Nur vorweg. Bis auf die Unterschiede in SQL-Querys macht es keine Unterschied ob MySQL oder MSSQL wenn man den Connector von MySQL verwendet.
Man kann sich sogar einen Wrapper dazu schreiben und austauschen.
Die Logincontrols (Passwort änderen, vergessen, etc.) haben den Vorteil mit MSSQL das man dafür fast keinen Code braucht.
O.o schrieb:
Dr.Dre schrieb:
Hmm wo müssen die DLL Import Codes den hin?
http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.dllimportattribute.aspx
Dr.Dre schrieb:
Gibts irgendow ne Anleitung zum memhackinhg mit C#?
http://www.gidf.de
Ich weiss das man sowas mit Google suchen kann, nur habe ich nichts für mich brauchbares gefunden.
Hallo,
NES-Spieler schrieb:
Mit StreamReader liest man ja von Anfang bis Ende einer Datei. Gibt es auch eine Möglichkeit, auf selbst ausgewählte Bytes zuzugreifen? Also, daß ich z.B. erst ab Byte 5494 anfange zu lesen, ohne daß er sich erst durch die vorherigen Bytes durchkämpft, sondern direkt auf das Byte, das ich brauche, zugreift?
Und dann müßte ich noch wissen, wie ich rausfinden kann, an welcher Position (also an dem wievielten Byte) einer Datei sich der StreamReader im Moment befindet. Wie mach ich das?
Ein StreamReader wurde nicht dafür konzipiert, wahlfreien Zugriff zu ermöglichen, wohl aber ein FileStream (hat Seek-Methode):
http://msdn.microsoft.com/en-us/library/system.io.filestream.aspx
MfG,
Probe-Nutzer
Design-Fanatic schrieb:
Ok verstehe... das mit der Binärkompatibilität leuchtet mir ein!
Aber ist es eigentlich nicht unsauber mit
public Ferrarifahrer Autofahrer { get { return (Ferrarifahrer)base.Autofahrer; } }
mit dem Property "von außen" auf die Vaterklasse zuzugreifen, obwohl ich ja eigentlich schon "im" Objekt bin und die Objektvariable erben könnte?!
Ne, das ist nicht unsauber. Eher im Gegenteil …
Nee das wars auch nicht.
Es war die Nachrichtenzuordnung falsch. Richtig muss es lauten
wc.DownloadFileCompleted += new AsyncCompletedEventHandler(DownlodComplete);
Trotzdem danke
loks schrieb:
http://msdn.microsoft.com/en-us/library/system.threading.semaphore.aspx
[MSDN]
Semaphores are of two types: local semaphores and named system semaphores. If you create a Semaphore object using a constructor that accepts a name, it is associated with an operating-system semaphore of that name. Named system semaphores are visible throughout the operating system, and can be used to synchronize the activities of processes. You can create multiple Semaphore objects that represent the same named system semaphore, and you can use the OpenExisting method to open an existing named system semaphore.
[/MSDN]
Was willst Du damit sagen?
Simon
Also...ich habe alles ausprobiert, was man tuen kann und nichts hat genutzt...weder eine Exception noch irgendne Fehlermeldung!
Aber ich es hinbekommen! Ich hab die Modi auf "Release" und "Any CPU" gestellt und siehe da es hat funktioniert! Frag mich bitte nicht warum, aber Gott sie Dank ist das problem nun vorbei!
Vielen Dank für deine Hilfe trotzdem!
Grüße
Eine andere Idee von mir wäre mir alle Childs des Panel4 holenzulassen und die dann lösche, aber wie?
http://msdn.microsoft.com/de-de/library/system.windows.forms.control.controls.aspx
Wenn man ganz korrekt sein will, dann ist `Dictionary` nicht die Entsprechung der Map. Stattdessen gibt es `SortedDictionary` und `SortedList`.
Allerdings ist `Dictionary` idr. besser geeignet, da es als Hashtabelle implementiert ist und allgemein bessere Laufzeit-Charakteristiken aufweist.
wups - gar nicht gesehen das du schon was antwortetest
noch fragen offen ?
eine DataTable kannst du mit DataColumn und DataRow jederzeit erweitern - beispielcode findest du in der msdn
aber - in c++ wuerde man auch ein neues groesseres array erstellen und die elemente umkopieren um das feld dynamisch zu vergroessern
so kannst du doch in c# auch verfahren
// pseudo, geht bestimmt auch besser
string[,] arr = new string[1,1]; // small array
arr = Increase(arr, 1, 1, 5, 5); // increased array
internal string[,] Increase[string[,] arrOld, int xOld, int yOld, int xNew, int yNew)
{
string[,] arrNew = new string[yNew,xNew];
for(int y = 0; y < yOld; ++y)
for(int x = 0; x < xOld; ++x)
arrNew[y,x] = arrOld[y,x];
return arrNew;
}
Guten Morgen.
Ich versuche eine Klasse zu entwickeln welche Dateien von einem FTP-Server abholt. Das ganze klappt auch schon recht passabel nur bin ich mir unsicher ob mein Konzept und die Umsetzung so ganz dem Konzept von C# entspricht.
public bool DownloadFile(string source, string dest)
{
SourceFile = source;
DestFile = dest;
if (IsIConChecked == false)
CheckIConnection();
Thread newThread = new Thread(
new ParameterizedThreadStart(DownloadFTPFile.ThreadDownLoad));
// Hier übergebe ich mich selbst
newThread.Start(this);
return true;
}
public static void ThreadDownLoad(object data)
{
WebClient wc = new WebClient();
//macht man das so? oder gibts dazu elegantere Methoden?
DownloadFTPFile ob = (DownloadFTPFile)data;
wc.Credentials = new NetworkCredential(ob.UserName, ob.Password);
wc.BaseAddress = ob.FtpServer;
wc.DownloadFile(ob.SourceFile, ob.DestFile);
}
}
Vor allem das casten in der Klasse auf die Klasse selbst..... Macht man das so? Vielleicht ist sogar die Funktion
wc.DownloadFile(ob.SourceFile, ob.DestFile);
bereits ein Thread...
Vielleicht mag mich hier einer eines besseren belehren.
Noch eine Frage hätte ich:... Wie bekomme ich mit, wieviel bereits von der Datei heruntergeladen ist? Bietet da die Klasse WebClient eine Möglichkeit? Oder muss ich an das Problem ganz anders heran gehen?
Besten Dank für eure Hilfe.
Danke Unix-Tom für deine Antwort. Der Fehler lag zum einen darin dass eine wsdl mit der SOAP1.2 Spezifikation erstellt wurde und zum anderen mochte die wsdl.exe unsere asynchron definierten Services nicht. Mit synchronen Services und einer SOAP1.1 Spezifikation bekomme ich meine wsdl mit wsdl.exe erstellt.
NeulingeCSharp schrieb:
Hmm ok danke, ich schau mir das mal an. Ich kann aber in Visual Studio ein C# WPF projekt erzeugen welches Browserbasierend ist. Ist das nich das Selbe?
Nein, das ist nicht das selbe.