-
Gesamte Inhalte
1804 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von TDM
-
Player in Website einbinden. Aber wie?
TDM antwortete auf Guenny0815's Thema in Skript- und Webserverprogrammierung
HTML EMBED - HTML Code Tutorial Sowas? -
Sagt doch schon alles. Typisches Dos(en)problem.
-
Warum mischst du AWT und Swing?! Warum lässt du nicht alle Unterobjekte (menubar, Buttons, ...) gleich im JFrame erzeugen?! Da bräuchtest du von außen auch keinen AL auf die Unterelemente zu instanziieren, sondern machst das ein mal im Konstruktor. Wenn du zwei (oder mehr) Aktionlistener erzeugst, werden bei einem Event alle benachrichtigt, dass ist dann klar, dass es zu einer doppelten Ausführung kommen kann.
-
Was hast du gegen std::string::c_str()?
-
Lokale Variable. Darauf wirst du nicht mit Standardmitteln zugreifen können. Also entweder du übergibst es als Parameter, deklarierst die Klasse als Singleton oder machst einen static member in den Launchen. Ich persönlich bin für Ersteres.
-
WNetGetResourceParent Function (Windows) Sowas? Der Name müsste dann im ersten Parameter stehen.
-
Aber nicht, wenn du es als String schreibst. Theoretisch nur als Escapesequenz. 'n' ist ja auch nicht '\n'.
-
Ich glaube das geht nicht so einfach, wenn der Focus verlassen wird, nützt dir das bestimmt nichts. Aber du könntest dir den Index merken und wenn das Element wieder den Focus erhält, den Eintrag markieren.
-
Simulink: Logische Operatoren anders ausdrücken
TDM antwortete auf IYTI's Thema in C++: Compiler, IDEs, APIs
Wie willst du bitte Operatoren ausdrücken ? Meinst du value cases? also Fälle? Sowas wie z.b. für AND a b c 1 1 1 1 0 0 etc ? -
Verständnisprobleme beim Programmieren (war: Hilfe:(:()
TDM antwortete auf Nunzio's Thema in C++: Compiler, IDEs, APIs
Texteditor, JDK und JRE. -
Also erstmal: Die Klasse xlsmdbConnection wurde jetzt umbenannt in DbReader. Diese sieht an sich wie folgt aus: private const string connectionString0 = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source="; private const string connectionString1 = ";"; private string path = ""; private string exProperties = ""; private OleDbConnection conn = null; public DbReader(string path, string exProperties) { try { this.path = path; this.exProperties = exProperties; init(); } catch (Exception e) { Console.Write("DbReader:DbReader:\t{0}\n", e); } } private string getConnectionString() { return connectionString0 + path + connectionString1 + exProperties; } private void init() { this.conn = new OleDbConnection(getConnectionString()); } gelesen wird so: public DataSet readDataSet(string sql) { DataSet ret = new DataSet(); try { conn.Open(); OleDbCommand cmd = new OleDbCommand(sql, conn); OleDbDataAdapter da = new OleDbDataAdapter(); da.SelectCommand = cmd; da.Fill(ret); } catch (Exception e) { Console.Write("DbReader:readDataSet:\t{0}\n", e); } finally { conn.Close(); } return ret; } Meine Vermutung: Das DataSet wird nicht geschrieben, weil keine Veränderungen in der Objectlist entsteht und der bei DataAdapter.update (so glaube ich) nur veränderte Werte schreibt. Gibts eine Möglichkeit das zu umgehen oder muss ich eine Iteration (row, col, value) nehmen?
-
i++ gibt doch aber das aktuelle i (1) erst zurück und erhöht dann erst i um 1.
-
Theorie: i = 1 i++ -> i + 1 i = 1 ++i -> i + 1 i = 3 1 + 3 = 4 i = 4 Anfangs-i (1) + 4 i = 5 -> Yeaha, ich wäre der perfekte Compiler. :floet:
-
Tag, ich greife mit einer Funktion auf Datensätze innerhalb einer Tabelle zu und möchte Fremdschlüssel aktualisieren (da es beim Einfügen der DS momentan fehler entstehen und er falsche Werte integriert). Tabelle A ist meine Haupttabelle, welche auf Tabelle B verweist. Außerdem gibt es für jeden Typ in Tabelle A noch einen Haupttyp, welche in Tabelle C stehen. Tabelle B verweißt auch auf Tabelle C. Damit nun die richtige ID zu B in A steht, hab ich eine Funktion geschrieben, die erst alle Haupttypen (Tabelle C) iteriert und dann B durchläuft. Danach schaut er in A, und sucht den Typ mit der jeweiligen Beschreibung von B, folglich wird dann A der richtige FK zugewiesen. Soweit funktioniert das Ganze auch wie es soll, nur wird nach beenden der Funktion der Speicher nicht freigegeben und bei der Anzahl der Datensätze beläuft sich das mitunter auf 500 MB (!!!). Hier mal der Code: public int updateRange() { int ret = 0; DbReader reader = new DbReader("C:\\test.mdb", ""); DataTable dtMT = reader.readDataSet("SELECT NAME FROM HitMainTypes").Tables[0]; DataTable dtLR = reader.readDataSet("SELECT NAME FROM LoadRanges").Tables[0]; string[] aMTs = new string[dtMT.Rows.Count]; string[] aLRs = new string[dtLR.Rows.Count]; for (int i = 0; i < dtMT.Rows.Count; i++) { aMTs[i] = (string)dtMT.Rows[i]["Name"]; } for (int i = 0; i < dtLR.Rows.Count; i++) { aLRs[i] = (string)dtLR.Rows[i]["Name"]; } for (int i = 0; i < dtMT.Rows.Count; i++) { for (int j = 0; j < dtLR.Rows.Count; j++) { int mtId = reader.readID("HitMainTypes", "Name=\'" + aMTs[i] + "\'"); Console.WriteLine("ID.{0}={1}", aMTs[i], mtId); //Assert.AreNotEqual(0, mtId, "updateRange.MT"); int lrId = reader.readID("LoadRanges", "(Name=\'" + aLRs[j] + "\') AND HitMainTypeID = " + mtId + ""); Console.WriteLine("ID.{0}={1}", aLRs[j], lrId); if(lrId != 0 && mtId != 0) { int testerle = reader.readDataSet( "SELECT LoadCarryingCapacity.ID" + " FROM LoadCarryingCapacity INNER JOIN LoadRanges ON LoadCarryingCapacity.LoadRangeID = LoadRanges.ID" + " WHERE (LoadRanges.Name = \'" + aLRs[j] + "\') AND (LoadCarryingCapacity.HitMainTypeID = " + mtId + ")").Tables.Count; DataTable dtUpdateId = reader.readDataSet( "SELECT LoadCarryingCapacity.ID" + " FROM LoadCarryingCapacity INNER JOIN LoadRanges ON LoadCarryingCapacity.LoadRangeID = LoadRanges.ID" + " WHERE (LoadRanges.Name = \'" + aLRs[j] + "\') AND (LoadCarryingCapacity.HitMainTypeID = " + mtId + ")").Tables[0]; int[] aUIDs = new int[dtUpdateId.Rows.Count]; for (int k = 0; k < dtUpdateId.Rows.Count; k++) { aUIDs[k] = (int)dtUpdateId.Rows[k]["ID"]; } string where = ""; for (int k = 0; k < dtUpdateId.Rows.Count; k++) { where += "(ID = " + aUIDs[k] + ")"; if (k + 1 < dtUpdateId.Rows.Count) where += " OR "; } string sql = "UPDATE LoadCarryingCapacity" + " SET LoadRangeID = " + lrId + " WHERE " + where; ret += reader.execute(sql); } } } return ret; } Wieso benötigt er auch nach der Funktion (ja, sogar nach dem Schließen des Programms) immernoch so viel Speicher?!
-
Wie wär's mit if (Process.GetProcessesByName("notepad").Length == 0) ? Ich weiß nicht, was er macht, wenn der nicht gefunden wird, lt. MSDN wird immer ein Array zurückgegeben, also einfach schauen, ob er leer ist. Ansonsten auf null prüfen.
-
goto erinnert mich immer an meine ASM-Programme. Da wird auch im Code immer rumgesprungen.
-
Ok, ich hab es mal ganz trivial gelößt... SELECT * FROM LoadCarryingCapacity WHERE LoadRangeID = (SELECT ID FROM LoadRanges WHERE Name = '14/10' AND HitMainTypeID = (SELECT ID FROM HitMainTypes WHERE Name = 'BD')); :floet:
-
Tag, Ich hab das Problem, dass mein Select-Statement mit 2 Inner Joins in Access nicht aktzeptiert wird. Ich hab 3 Tabellen (LoadCarryingCapacity, LoadRanges und HitMainTypes) Tabelle LoadCarryingCapacity zeigt auf LoadRanges und diese wiederum auf HitMainTypes. Soweit klar. Nun möchte ich bestimme Datensätze in LoadCarryingCapacity, die einen Namen aus LoadRanges und einen aus HitMainTypes brauchen. Problem ist nur, dass Access bei meinem SELECT-Statement meckert, dass da ein Operator fehlt - ich weiß aber nicht wo. SELECT Height, M_Plus, M_Minus, V_Plus, V_Minus FROM LoadCarryingCapacity INNER JOIN LoadRanges ON (LoadCarryingCapacity.LoadRangeID = LoadRanges.ID) INNER JOIN HitMainTypes ON (LoadRanges.HitMainTypeID = HitMainTypes.ID) WHERE (LoadRanges.Name = '14/10') AND (HitMainTypes.Name = 'BD') Wäre dankbar für Vorschläge.
-
Bring mal nichts durcheinander: 1. Ausbildungsjahr != 1. Schuljahr. Mit dem normalen Dritteklassenenglisch kommt man zwar nicht weit, aber spätestens ab der 8. sollte man in der Lage sein, (notfalls kleinere, ) englische Dokumentationen zumindest inhaltlich zu begreifen. Das Englisch in der Ausbildung ist für meinen Teil nur zum Auffrischen da. (Gut, es sei denn bei einem ist Englisch die Unternehmenssprache.)
-
Wieso Manko? C/C++ kannst du, wenn du englisch beherrschst nur um so besser (oder was glaubst du, woher if, switch, etc. kommen?! ) tihi, ist ja irgendwo auch klar, PHP wurde ja auch aus C entwickelt.
-
ihh, static_cast ist aber nicht sauberes C. Der Operator ist meines Wissens für Klassencasts zuständig außerdem brauchst du den hier nicht, denn time(NULL) gibt einen time_t Wert zurück und das ist nur ein typedef-Int. system("PAUSE") würde ich auch nicht nehmen. Dann lieber getch() oder so. Ansonsten aber ok.
-
Eine Schleife für die x-Interation und innere für eine 2 x-Iteration und dann einfach nach doppelten Einträgen suchen. Pseudocode: for (i = 1; i <=6; i++){ for (j = 1; j <=6; j++) if "%x%i%%" == "%x%j%%"( echo %i% doppelt ) } Geht sicher auch schöner und keine Ahnung ob %i% oder !i! Aber Offtopic stinkt eh und Batch ist mir zu lahm.
-
Zufallszahlen c++ - Google-Suche I <3 google. (Meiner Meinung nach müsste es srand auch in PHP geben. )
-
Hallo, z.Z. versuche ich eine xls-Datei in eine mdb zu kopieren. Die xls wird zwar wunderbar eingelesen und so, aber das schreiben in die mdb funktioniert nicht. (Es wird zwar kein Fehler ausgegeben, aber die Datensätze stehen trotzdem nicht drin.) Die Oberfläche besteht aus einem DataGridView (dgv) und 2 Buttons (für den Import der xls und den Export in die mdb). Wie gesagt laden klappt soweit ganz gut: private void btnImport_Click(object sender, EventArgs e) { this.openFileDialog1.FileName = "*.xls"; if (this.openFileDialog1.ShowDialog() == DialogResult.OK) { xlsmdbConnection conn = new xlsmdbConnection(openFileDialog1.FileName, "Extended Properties=Excel 8.0;"); dgv.DataSource = conn.readDataSet("SELECT * FROM [DB$]").Tables[0]; } } Nur schreiben nicht: private void btnExportmdb_Click(object sender, EventArgs e) { this.openFileDialog1.FileName = "*.mdb"; if (this.openFileDialog1.ShowDialog() == DialogResult.OK) { xlsmdbConnection conn = new xlsmdbConnection(openFileDialog1.FileName, ""); dgv.EndEdit(); conn.writeDataSet((System.Data.DataTable)dgv.DataSource, "LoadCarryingCapacity"); } } Die Funktion xlsmdbConnection.writeDataSet sieht wie folgt aus: public void writeDataSet(DataTable datatable, string table) { datatable.TableName = table; try { conn.Open(); OleDbDataAdapter da = new OleDbDataAdapter(); OleDbCommand cmd = new OleDbCommand("INSERT INTO " + table + "(HitMainTypeID, HitSubTypeID, LoadRangeID, Height, M_Plus, M_Minus, V_Plus, V_Minus, Interaction, ConcreteCover, Concrete, ShearForceID) " + "VALUES (@HitMainTypeID, @HitSubTypeID, @LoadRangeID, @Height, @M_Plus, @M_Minus, @V_Plus, @V_Minus, @Interaction, @ConcreteCover, @Concrete, @ShearForceID)", conn); cmd.Parameters.Add("@HitMainTypeID", OleDbType.VarChar, 10, "HitMainTypeID"); cmd.Parameters.Add("@HitSubTypeID", OleDbType.VarChar, 10, "HitSubTypeID"); cmd.Parameters.Add("@LoadRangeID", OleDbType.VarChar, 10, "LoadRangeID"); cmd.Parameters.Add("@Height", OleDbType.Integer, 10, "Height"); cmd.Parameters.Add("@M_Plus", OleDbType.Double, 10, "M_Plus"); cmd.Parameters.Add("@M_Minus", OleDbType.Double, 10, "M_Minus"); cmd.Parameters.Add("@V_Plus", OleDbType.Double, 10, "V_Plus"); cmd.Parameters.Add("@V_Minus", OleDbType.Double, 10, "V_Minus"); cmd.Parameters.Add("@Interaction", OleDbType.Integer, 10, "Interaction"); cmd.Parameters.Add("@ConcreteCover", OleDbType.Integer, 10, "ConcreteCover"); cmd.Parameters.Add("@Concrete", OleDbType.VarChar, 50, "Concrete"); cmd.Parameters.Add("@ShearForceID", OleDbType.VarChar, 10, "ShearForceID"); da.InsertCommand = cmd; da.Update(datatable); } catch (Exception e) { Console.Write("xlsConnection:readDataSet:\t{0}\n", e); } finally { conn.Close(); } } Da nichtmal eine Exception geworfen wird, macht mich das schon etwas stutzig und ich wäre dankbar für Hilfe.
-
ok, ich bin bekloppt. Anstatt %SRC%\*.* zu nehmen, reicht %SRC%. @ECHO OFF SET DST=... SET SRC=... IF "%date:~-10,2%"=="01" ( RAR a -e %DST%\backup_%date:~-4%%date:~-7,2%%date:~-10,2%.rar %SRC% ) EXIT Blödes, dämliches, englisches Schalterhandbuch. :floet: