veryxRV schrieb:
Danke, das wollte ich wissen!
Und wie setze ich dann letzteres in C# um?
Gar nicht. In C++ wird hier nämlich operator = für die 'string'-Klasse aufgerufen und der Inhalt des Strings ändert sich.
Strings sind in C# aber immutable, d.h. ihr Inhalt kann nicht geändert werden. Jedes Mal, wenn man einen String modifiziert, erstellt man in Wahrheit einen neuen.
Abgesehen davon kann man zwar Operatoren allgemein überladen, den Zuweisungsoperator hingegen nicht.
Ich bin ein Held, juhu! schrieb:
hustbaer schrieb:
Auch Hardware Dongles sind nicht sicher, ebensowenig ein Internetserver, beides kann durch Emulation umgangen werden.
ach was du held.
wenn die kommunikation mit dem dongle bzw. server gut gemacht ist kann man die nicht emulieren. man muss bloss etwas wie RSA oder elliptic curve verwenden um die kommunikation zu verschlüsseln.
natürlich kann man das dann immer noch knacken wenn man das programm modifiziert und z.b. den public key austauscht damit das programm dann mit dem eigenen server redet, bloss wenn man schon soweit ist kann man die überprüfung gleich ganz rauswerfen und das programm damit cracken.
Aha deshalb gibts auch keinerlei Emulatoren für die ganzen Dongles
Vorteil von Emulator: einmal geschrieben funktionieren damit alle Programme die diesen nutzen.
Die Emulatoren gibt es für Dongle die schlecht programmiert sind.
Wenn du RSA oder elliptic curve im Dongle implementierst dann kann man keinen allgemeinen Emulator mehr schreiben. Bzw. schreiben schon, aber er bringt dir nix wenn du bestimmte Bereiche des Dongles nicht auslesen kannst, z.B. die wo diverse Keys drin stehen.
Bei Servern im Inet sieht die Sache gleich aus.
Dass es sehrwohl möglich ist soetwas sicher hinzubekommen sieht man ja am Beispiel der SIM Karten.
Mit Boost dann auch noch anders möglich, boost::spirit ist ein parser-Framework, nimmt dir ein wenig Arbeit ab...:
http://www.oreillynet.com/network/2003/05/06/examples/calculatorexample.html
(oder im examples/ Directory der sources von spirit...
Einen Verweis auf das Projekt legen (wie bei Verweisen auf DLLs, nur bei Karteireiter Projekte das Projekt auswählen. Btw.: Auf diese Art wird fest an eine bestimmte Version Deiner Assembly gebunden.)
ahoi
also, ich habe folgendes problem, ich möchte eine xml datei erzeugen.
um das zu erreichen benutze ich den xmlwriter und es klappt auch perfekt bis auf die 2te zeile welche lauten soll:
<Metadata xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="se_label_std_v1.xsd">
jedoch kommt bei jedem lösungsansatz den ich wähle die meldung:
"Token StartAttribute im Status Document würde in einem ungültigen XML-Dokument resultieren."
da ich keine ahnung von xml habe und deshalb auch nicht weiß was es mit diesen namespaces und xsi's auf sich hat
wollte ich bei euch mal um hilfe bitten.
mein vielversprechenster lösungsansatz sieht folgendermaßen aus:
String metadata = "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"se_label_std_v1.xsd\"";
writer.WriteStartElement("Metadata", metadata);
Du willst multiple dispatch, C# bietet aber nur einfaches.
Ohne zu redisignen bekommst du es so hin
totalValue += b.GetType().InvokeMember("GetTotalValue", System.Reflection.BindingFlags.InvokeMethod, null, b, new object[] { x });
Ansonsten Typecaseing oder was Visitor-artiges.
Öh.
Probier es doch einfach aus.
Mit DCOM geht es. Vorausgesetzt es haut Netzwerkmässig hin dass ClientA direkt mit ClientB kommuniziert, und NAT oder ähnliches funken nicht dazwischen.
NEIN!!
Doch nicht jedesmal das Command erstellen und Prepare()n
1. SQL-String bauen
2. Command erstellen
3. Parameter definieren
4. Prepare
In der Schleife:
{
5. Parameterarry befüllen
6. Abschicken mit Execute()
}
Das ist doch gerade der Sinn bei Bulk Inserts, das nicht jedesmal das Statemment geparst werden muss. Dein Fehler liegt wahrscheinlich daran, dass Du die Parameternamen nur im SQL-String, nicht in der Parametererstellung markieren musst.
str = "INSERT INTO Tabelle2 (Art ,Jahr ,Mitglied)VALUES (?Art, ?Jahr, ?Mitglied)";
MySqlCommand cmd3 = new MySqlCommand(str, conn);
cmd3.Parameters.Add("Art", <hier der Datentyp>);
cmd3.Parameters.Add("Jahr", <hier der Datentyp>);
cmd3.Parameters.Add("Mitglied", <hier der Datentyp>);
cmd3.Prepare();
for (int i = 0; i < i_ind; i++)
{
cmd3.Parameters[0].Value(liste[i, 0]);
cmd3.Parameters[1].Value(liste[i, 1]);
cmd3.Parameters[2].Value(liste[i, 2]);
cmd3.ExecuteNonQuery();
}
MessageBox.Show("Fertig");
@simon.gysi:
DoEvents ist mit Vorsicht zu geniessen, allerdings nicht unbedingt eine Schlechte Idee.
Sonst müsste man auch sagen dass MessageBox.Show eine schlechte Idee ist, oder überhaupt alle modalen Dialoge.
Der einzige Unterschied der modale Dialoge meist weniger problematisch macht ist dass man keine Buttons im Parent-Fenster mehr anklicken kann während der modale Dialog sichtbar ist.
Sobald aber Timer ins Spiel kommen... bekommt man mit modalen Dialogen dasselbe Problem wie mit DoEvents.
Ich persönlich bin auf jeden Fall der Meinung dass bei Threads VIEL mehr Fallstricke warten als bei DoEvents/Modalen Dialogen.
garry_weber schrieb:
Kann ich diese Liste dann so nutzen?
foreeach(ArrayList c in ReadFile(String sFilename))
{
//(...)
}
Da machst Du einen Denkfehler: Du bekommst ja *eine* 'ArrayList' zurück, und willst nun durch all seine Objekte durchgehen. Folgender Code geht also:
foreach (object o in ReadFile(FileName)) { /* … */ }
… aber das hat mehrere Nachteile. Der offensichtlichste ist, dass Du hier nur ein 'object' bekommst, wo Du doch eigentlich einen String haben willst. Außerdem ist die 'ArrayList' veraltet.
Die Abhilfe hat Dir Knuddlbaer schon verraten: Verwende eine 'List<string>' statt der 'ArrayList', dann funktioniert folgender Code:
foreach (string s in ReadFile(FileName)) { /* … */ }
*klatsch* Ja ok soweit verstanden.
Der Witz ist ja das es sich genau darum geht auf Elemente der Form zu zugreifen.
Werde es mir mal durchlesen. Danke.
… noch etwas, was mir gerade einfällt. Eventuell wäre es eine Alternative, die Modus als Decorators zu gestalten, die über eine Map rübergelegt werden. Wenn Dir das nichts sagt, lies mal in der Wikipedia nach.
allerdings sind dies die vorgaben, die ich nicht abaendern kann
Da hier keiner eine Glaskugel hat um zu wissen das es eine unabänderliche Vorgabe ist, gab es schlicht weg die Frage danach. Fändest Du die Antwort auf Deine Frage "wie geht yzx" mit "einmal darfst Du raten :p" angemessen oder Sinnvoll ?
und wenn das hier wirklich ein c# forum ist, dann glaube ich doch noch im richigen zu sein
Falls Du jemanden suchst, der mit einer Kristallkugel umgehen kann oder die Wünsche von Deinen Zeilen ablesen kann, bist Du hier leider im falschen Forum.
C# hat nichts mit Rätselraten zu tun auch wenn manchen die Sprache selbst rätselhaft erscheinen mag. Dein Problem selbst ist passend Platziert.
Genug des Zederns, das bringt nur schlechte Stimmung aber keine Lösung. Von Excell konnte ich mich bisher zum Glück fernhalten bzw. konnte Daten in eine komplett neue Exceltabelle einfügen und habe hierfür 3 Hersteller Libs verwendet die sich um die eigentliche Friemelarbeit kümmern. Ich werde daher vermutlich nur Unbrauchbares von mir geben :o(
- Besteht die Möglichkeit in der Tabelle erst mit XML / PIA die Voraussetzungen für ADO.Net zu schaffen und dann ggf. über PIA den Bereich zu kopieren ?
- Was hat Dir an der XML Variante nicht gefallen bzw. warum ist diese Unbrauchbar für Deinen Fall?
- Was hast Du im Detail mit PIA gemacht ? (Jeden Wert einzeln eingefügt, in großen Happen etc.)
- Darfst Du ein völlig neues Excelsheet generieren oder musst Du ein fremdes Sheet verwenden und dort die Daten einsetzen ?