Zum Inhalt springen

Manfred.Becker

Mitglieder
  • Gesamte Inhalte

    148
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Manfred.Becker

  1. Hi, time_t ist lediglich ein Datentyp (long integer). Instanzvariable dieses Typs werden dazu verwendet die Systemzeit zu speichern. #include "stdafx.h" #include "time.h" int main(int argc, char* argv[]) { time_t ltime; struct tm *today; char tmpbuf[128]; _tzset(); time( &ltime ); today = localtime( &ltime ); strftime( tmpbuf, 128, "%Y.%m.%d %H:%M:%S", today ); printf("Aktuelles Datum=%s\n",tmpbuf); return 0; } [/PHP] Das bringt dich nicht weiter. Welchen Compiler verwendest du? Falls Microsoft, dann gibt's da die [b]Sleep(DWORD dwMilliseconds)[/b] Funktion. Falls Borland, dann [b]sleep(unsigned sekunden)[/b] Das sollte funktionieren.
  2. Nochmal Hi, inzwischen hab ich den Programmers Notepad 2 mal runtergeladen. Jetzt ist mir auch klar, warum du es mit cmd versucht hast. Die Lösung ist aber eine Batch! Erstelle ein Batchfile (RUN.BAT) und kopiere sie in ein beliebiges Verzeichnis (z.B. c:\data\pn\RUN.BAT). Hier der Inhalt der Batchdatei: @echo off if "%1"=="" goto NOPARAMETER call %1 %2 %3 %4 %5 goto EXIT :NOPARAMETER echo Es wurden keine Parameter übergeben! :EXIT pause [/PHP] Danach erstellt du im Programmers Notepad ein neues Tool: Tools->Options->Tool->Add Folgende Parameter: Name:RUN Command:C:\Data\PN\RUN.BAT Folder: Parameters:"%d%n.exe" Console I/O: No Capture output Damit lässt sich dann die EXE-Datei starten.
  3. Hi, wie wär's damit: Enhanced BrowseForFolder styled TreeView
  4. Hi, wozu brachst du cmd.exe um deine exe zu starten? Lass einfach die cmd.exe weg.
  5. Einen Programmierer (egal ob Anfänger oder Profi) zeichet aus, wie er mit Fehlermeldungen umzugehen weis. Das deutet doch ziemlich genau darauf hin, dass auf eine geschlossene Datenbank zugegriffen wurde, oder nicht? Wenn du deinen Quelltext genau anschaust wirst du feststellen, dass der Fehler kommen musste, da du versuchst eine SQL-Anweisung abzusetzen bevor die Datenbank geöffnet hast! Dreh das ganze mal herum: Übrigens hatte ich das bereits im ersten Posting so angegeben.
  6. Hi, da du bereits eine gültige SqlConnection hast, brauchst du nur noch die Insert-Anweisung als SqlCommand abzusetzen: SqlCommand cmSQL; String strSQL; String ID="4711"; String Name=txtTest.Text; String Firma="Firma YX"; String Zeitaufwand="0"; try { // Build Insert statement strSQL = "INSERT INTO [B]ZEIT[/B] (ID,Name,Firma,Zeitaufwand) VALUES (" + ID + "," + Name + "," + Firma + "," + Zeitaufwand + ")"; cmSQL = new SqlCommand(strSQL, sqlConnection1); cmSQL.ExecuteNonQuery(); // Close and Clean up objects cmSQL.Dispose(); } catch(SqlException Exp) { MessageBox.Show(Exp.Message, "SQL Error"); } catch(Exception Exp) { MessageBox.Show(Exp.Message, "General Error"); } [/PHP] Achtung bei dem Beispiel gehe ich davon aus, dass deine Tabelle ZEIT heist!
  7. Hi Mirmi, das Problem bei der OnComm Ereignis ist, dass es aufgerufen werden kann, obwohl noch garnicht alle Zeichen übertragen wurden. Damit kann es eben vorkommen, dass du Zeichen übersiehst, wenn du nicht in der OnComm Funktion danach schaust. Ich hatte das mal in VB so gemacht: Private Sub MSComm1_OnComm() Dim ReceiveData(1024) As Integer Dim BytesLeft As Integer Dim i As Integer Dim nBytes As Integer Dim ch As Byte Dim strIn As String nBytes = 0 BytesLeft = MSComm1.InBufferCount Do While BytesLeft > 0 strIn = MSComm1.Input nBytes = nBytes + 1 If strIn <> "" Then ReceiveData(nBytes) = AscB(strIn) Else ReceiveData(nBytes) = 0 End If DoEvents BytesLeft = MSComm1.InBufferCount Loop strIn = "" For i = 1 To nBytes ch = ReceiveData(i) Select Case ch Case 0 To 31 If optData(0).Value = True Then strIn = strIn & "[" & ch & "]" ElseIf optData(1).Value = True Then strIn = strIn & "[" & Hex(ch) & "]" Else strIn = strIn & "." End If Case 32 To 255 strIn = strIn & Chr(ch) End Select Next i If strIn <> "" Then Call lstData.AddItem(Time$ & " Recv: " & strIn, 0) End If End Sub [/PHP] OK, das Beispiel ist jetzt nicht das was du brauchst, und es ist nur VB-Code, aber zwei wichtige Dinge sind zu erkennen: 1.) Die Prüfung ob's noch Zeichen gibt 2.) Das Ergebnis ist eine Zusammensetzung der einzelnen Input Daten. Ausserdem ist wichtig, die InBufferSize-Eigenschaft auf 1 zu setzen. Dadurch ist sichergestellt, dass selbst wenn nur ein Zeichen ankommt, das Ereignis ausgelöst wird.
  8. Hi, ist auf dem anderen Rechner bereits das .Net Framework installiert? Wenn nein, dann installiere das mal zu Fuß, ich weis nämlich nicht, ob InstallShield das für dich macht.
  9. Hi, um Daten in ein Datenbanktabelle zu schreiben muss eine INSERT-Anweisung abgesetzt werden. So ähnlich könnte das aussehen: private void InsertStatement() { string Connectionstring = "Server=localhost; DataBase=myDatabase; Integrated Security=SSPI" ; SqlConnection cnSQL; SqlCommand cmSQL; SqlDataReader drSQL; String strSQL; try { // Build Insert statement strSQL = "INSERT mytable VALUES (" + txtField1.Text + "," + txtField2.Text + "," + txtField3.Text + ")"; cnSQL = new SqlConnection(Connectionstring); cnSQL.Open(); cmSQL = new SqlCommand(strSQL, cnSQL); cmSQL.ExecuteNonQuery(); // Close and Clean up objects drSQL.Close(); cnSQL.Close(); cmSQL.Dispose(); cnSQL.Dispose(); } catch(SqlException Exp) { MessageBox.Show(Exp.Message, "SQL Error"); } catch(Exception Exp) { MessageBox.Show(Exp.Message, "General Error"); } } [/PHP] myDatabase und myTable sind natürlich nur Beispielwerte! Ganz ähnlich geht's für die SQL-Anweisungen UPDATE, INSERT, DELETE usw. Ich denke, da kommst du jetzt selbst dahinter. PS: Der Quellcode wurde von mir stark abgeändert. Das Orginal stammt von: Microsoft 101 Visual Basic and C# Code Samples
  10. Hi Snipero2, Du bist wohl noch ganz am Anfang was Datenbank-Programmierung angeht? Deshalb rate ich dir ein paar Tutorials bzw. Bücher zu SQL im Netz zu suchen, und diese durchzuarbeiten. Du brauchst unbedingt die Grundlagen! Dennoch will ich dir ein paar Anhaltspunkte geben, wie man das mit VB.NET realisieren könnte (es gibt noch andere Ansätze). Die notwendigen Optionen und Imports fügst du ganz am Anfang in deinem Modul ein (Form1.vb) Option Strict On Option Explicit On Imports System.Data Imports System.Data.SqlClient [/PHP] Die DB-Verbindung wird über einen Connection-String definiert. Hier ein Beispiel für die Northwind Datenbank, die ja bei jeder MSSQL-Installation automatisch angelegt wird. [PHP] Public Class Form1 Inherits System.Windows.Forms.Form Protected Const SQL_CONNECTION_STRING As String = _ "Server=localhost;" & _ "DataBase=Northwind;" & _ "Integrated Security=SSPI;Connect Timeout=5" Private ConnectionString As String = SQL_CONNECTION_STRING So sieht eine typische Funktion aus: Private Sub SelectStatement() Dim cnSQL As SqlConnection Dim cmSQL As SqlCommand Dim drSQL As SqlDataReader Dim strSQL As String Dim strValue As String Dim intValue As Integer Try ' Open the Database cnSQL = New SqlConnection(ConnectionString) cnSQL.Open() ' Build Select statement to query Category Name from the Categories table. strSQL = "SELECT CategoryID, CategoryName FROM Categories" cmSQL = New SqlCommand(strSQL, cnSQL) drSQL = cmSQL.ExecuteReader() ' Loop through the result Do While drSQL.Read() strValue = drSQL.Item("CategoryName").ToString() intValue = CInt(drSQL.Item("CategoryID")) Loop ' Close and Clean up objects drSQL.Close() cnSQL.Close() cmSQL.Dispose() cnSQL.Dispose() Catch e As SqlException MsgBox(e.Message, MsgBoxStyle.Critical, "SQL Error") Catch e As Exception MsgBox(e.Message, MsgBoxStyle.Critical, "General Error") End Try End Sub [/PHP] Ganz ähnlich geht's für die SQL-Anweisungen UPDATE, INSERT, DELETE usw. Ich denke, da kommst du jetzt selbst dahinter. PS: Der Quellcode wurde von mir etwas abgeändert. Das Orginal stammt von: Microsoft 101 Visual Basic and C# Code Samples
  11. Hi, das geht mit Format->Bedingten Formatierung... Einfach eine Formel hinzufügen.
  12. Hi, keine! Wenn du auf zusätzliche Programme (Access/MSSQL/MySQL/Oracle usw.) verzichten willst, bleiben eigentlich nur Textdateien (*.csv, *.xml) oder die Registry. Allerdings würde ich die Registry nicht zum Ablegen solcher Daten missbrauchen. Obwohl das einfach und schnell geht, kommen da meiner Meinung nach nur Konfigurationsdaten rein. Bleiben also CSV-Dateien (Cursor-Seperated-Files) oder XML-Dateien, von denen ich XML-Dateien im .NET klar den Vorzug gebe.
  13. Hi Bukker, also das mit dem Programm immer im Vordergrund halten ist kein Problem. dazu gibts die Eigenschaft: MainForm->FormStyle = fsStayOnTop; Allerdings wirst du mit deinem Programm nicht die Kontrolle über das Betriebsystem übernehmen können! Wenn du also den Computer sperren willst, schreib doch einen Bildschirmschoner. Bei dem kann dann die Passwortsperre aktiviert werden
  14. Hi, ich hab das hier gefunden: Beispiel Schau mal rein.
  15. Hi, keine Sorge, tabelle.EOF funktioniert schon. Das Problem bei deiner Abfrage ist, das beim letzten Datensatz ein MoveNext gemacht wird, und danach ohne Gültigkeitsabfrage der Zugriff erfolgt!!!! Machs besser so: If tabelle.EOF Then Exit Sub tabelle.MoveNext If Not tabelle.EOF Then TNr.Text = tabelle("nr") TBezeichnung.Text = tabelle("bezeichnung") TPreis.Text = tabelle("preis") TZutat.Text = tabelle("zutat") TMwSt.Text = tabelle("mwst") End If [/PHP]
  16. Hi, es gibt eine super Forensuche! Da kannst du einfach nach "Buch Empfehlung" suchen lassen...
  17. Hi, also, wenn man über die IDE eine neue Klasse hinzufügt, wird für diese auch ein neues Modul (CPP-Datei + Header-Datei) angelegt. Der Dateiname entspricht (im Allgemeinen) dem Klassennamen ohne das führende C (z.B. Klasse CMyClass -> MyClass.cpp + MyClass.h). Das muss man aber nicht für ALLE Klassen machen, die im Projekt verwendet werden. Mal angenommen du willst ein Programm schreiben, das Logische Gatter simuliert. Da gibt's ja jede Menge unterschiedlicher Typen (AND,NAND,OR,NOR,NOT usw.). Damit ist klar, das du 'ne Basisklasse für die Logik brauchst (1.Modul). Auch eine Basisklasse für die Darstellung ist notwendig (2.Modul). Es wäre aber übertrieben, für die einzelnen Gattter, die von den Basisklassen abgeleitet werden, jeweils ein Modul zu verwenden. Die landen also alle in einem Modul (3.Modul). Aber das war nur EIN Beispiel. Immer dann wenn dein Quellcode zu unübersichtlich (zu gross) wird, solltest du dir Gedanken machen, diesen in meherer Module zu Teilen. Das mit den Makefiles must du dir anlesen. Ich kann dir nur soviel sagen, dass darin die Abhängigkeiten der einzelnen Module, die Anweisungen für den Compiler, und die Anweisungen für den Linker stehen. Das wird, je mehr Module Verwendung finden, umso aufwendiger. Wenn du den steinigen Weg gehen willst, tue das. Für einfache Konsolenanwendungen wirst du auch ganz gut damit klarkommen. Sobald du aber die erste Windows-Applikation schreibst, rate ich dir ausschliesslich die IDE zu verwenden.
  18. Hi, 'ne dll kannst du entweder im Header (*.h) #import "my.dll" no_namespace oder im Modul (*.cpp) m_hMyLib = LoadLibrary("my.dll"); einbinden. Dann benötigst du die Header-Datei der DLL, in der die ganzen Typ-Definitionen stehen. Weitere Infos findest du über die F1-Hilfe.
  19. Hi, so wie ich dich verstanden habe, willst du deinen (riesigen) Quellcode in mehrere Dateien aufteilen. Diese Dateien sind nicht zwangsläufig nur Header Dateien (*.h bzw *.hpp), sondern eben auch C-Dateien (*.c bzw *.cpp), die ich hier mal als Module bezeichnen will. Diese Vorgehensweise findet meine vollste Unterstützung! Folgendes musst du beachten. Alle Funktionen die vom Thema her zusammengehören in einem Modul zusammenfassen. Zu jedem Modul eine gleichnamige Header-Datei erstellen. In jedem Modul das Funktionen eines anderen Modul nutzt, ein #include "modulxxx.h" einfügen, sonst meckert der Compiler. Da du ja alles von Hand machst, und der Linker nicht wissen kann was nun zu tun ist, muss du eine Make-Datei (*.mak) erstellen. Die EXE-Datei erstellst du dann mit make <makefile> Allerdings spricht nichts dagegen die IDE zu verwenden. Alle oben beschriebenen manuellen Arbeiten werden dir abgenommen, und du kannst dich auf das Wesentliche (die Programmierung) konzentrieren...
  20. viel Spass: ASP Forum (Themen: ASP, ASP.Net, VB.Net, C#, ...)
  21. alles was in der DOS-Box mittels SET aufgelistet wird sind die sog. Umgebungsvariable. Diese liefert bereits die Parameter der main-Funktion. Hier ein Beispiel (Turbo C++): #include <string.h> #include <stdio.h> #define GOOD 0 #define BAD 1 int main( int argc, char *argv[], char *env[] ) { int retWert=BAD; int i; /* In argv[0] steht immer der aufgerufene Programmname, */ /* auch dann, wenn kein Parameter angegeben wurde. */ printf("\nProgramm: %s\n",argv[0]); if (argc>1) { retWert=GOOD; printf("\nDie Übergabeparameter sind:\n"); for (i=1; i<argc; i++) printf("- argv[%d] = %s\n",i,argv[i]); } else printf("\nKeine Parameter angegeben.\n"); /* In env[] stehen alle DOS-Umgebungsvariablen. */ /* Diese wurden im DOS mit dem SET-Befehl gesetzt. */ if (env[0]!=NULL) { printf("\n\nDie DOS-Umgebungsvariablen sind:\n"); for (i=0; env[i]!=NULL; i++) printf("- env[%d] = %s\n",i,env[i]); } else printf("\n\nKeine DOS-Umgebungsvariablen definiert.\n"); return(retWert); /* Dieser Return-Wert kann in Batch-Dateien mittels */ /* ERRORLEVEL abgefragt werden. */ /* Bsp.: IF ERRORLEVEL 1 ECHO Fehler */ } [/PHP]
  22. Hi, anhand der Beschreibung des Interfaces zu meinem Link dachte ich das wäre was für dich: Aber von welcher Klasse kommt denn die Methode RemoteRead(). Darüber kann ich überhaupt nichts finden.
  23. Hi Vampire, also wenn's nur das ist. Kontrolliere folgende Eigenschaften von deinem MSComm-Objekt: 1.) CommPort=1 2.) InputLen=1 3.) InputMode=1 (commInputModeText) 4.) RThreshold=1 5.) Settings=9600,n,8,1 Dann muss noch die EreignisRoutine OnComm() ausprogrammiert sein (Doppelclick auf dein MSComm-Objekt. Sende das Zeichen ENQ: MSComm1.Output = Chr(&H5&) Die Antwortdaten landen in: MSComm1.Input
  24. Hi Horrido, das hier liefert die F1-Hilfe: Du solltest deshalb besser CreateProcess() verwenden.
  25. Hi HuDeanY, ich selbst hatte zwar unter C# noch nichts mit IStream's zu tun, jedoch auf meiner Lieblingsseite hab ich folgendes gefunden: How to Pass Managed Objects As a Parameter of a Queued Component. Ich hoffe das hilft dir weiter...

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...