Zum Inhalt springen

maxim_42

Mitglieder
  • Gesamte Inhalte

    145
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von maxim_42

  1. Das tut's so nicht. Versuchs mal hiermit: #include <stdio.h> #include <limits.h> int main() { typedef struct { unsigned LowPart; int HighPart; } LARGE_INTEGER; LARGE_INTEGER li; int idummy; int iWert=64000; li.LowPart =0xFFFFFFF0; li.HighPart=0; if(UINT_MAX-li.LowPart < iWert) { //Kompilerwarnung ist berechtigt. // Negative Werte für iWert werden // nicht berücksichtigt. li.HighPart++; //Übertrag idummy= (li.LowPart & 1) + (iWert & 1); /* Die Summe der ersten Bit sichern, weil sie gleich anschliesend rausgeschiftet werden.*/ li.LowPart >>= 1; iWert >>=1; /* Jeweils 1 nach rechts schiften, damit die Summe in 32 Bit passt.*/ li.LowPart += iWert; li.LowPart <<=1; li.LowPart+=idummy; } else { li.LowPart += iWert; } printf("li.LowPart: %i\nli.HighPart: %i\n",li.LowPart,li.HighPart); printf("iDummy: %i\n",idummy); return 0; }[/PHP]
  2. Vieleicht hifts weiter wenn du nicht nur explizit angegebene Fehler auffängst sondern ganz zum Schluss jeden Fehler. (Frag nicht nach der Syntax; ist ne weile her das ich in c++ programmiert hab; es geht jedenfalls) In diesem cach-Block solltest du dann das Problem handeln können.
  3. maxim_42

    Vb

    Was DAO betrifft: Über das tabledefs-Objekt (Aufzählung) einer mdb-Datenbank kannst du für jede Tabelle in der Db das tabledef-Objekt jeweiligen Tabelle erreichen. Über das fields-Objekt (Aufzählung) dieses tabledef-Objekts wiederum, jedes einzelne field-Objekt (Spalte in der Tabelle) der Tabelle. Das field-Objekt hat eine Eigenschaft "Name" die den Spaltennamen enthält.
  4. Im Gegensatz zu Feldern, die nur Elemente gleichen Typs enthalten dürfen, kann eine Collection Elemente unterschiedlichen Typs enthalten.
  5. Das form_resize event ist dein Freund. Dort kannst du Code ausführen, der auf die Groessenaenderung der Darstellung reagiert. z.b. die Position einzelner Steuerelemente bestimmt. Am besten schaust du dich im Netz nach instruktiven Beispielen dazu um.
  6. Quote: Const Variable = "c:\programme\programm.exe" Shell "cmd.exe /c start Variable" (ist fehlerhaft) Klar funktioniert das nicht. Wenn du Variable direkt zwischen die "" setzt. Probier doch statt dessen: dim strComString as string strComString=""c:\programme\programme.exe" shell "cmd.exe /c start " & strComString (Auf das Leerzeichen hinter start achten!) Eventuell hilft auch der Schalter /wait für das Start-Kommando weiter. Also: shell "cmd.exe /c start /wait " & strComString
  7. mit gegebenem char feld[2][2] und einer Funktion void funk(char* p), kann man beispielsweise funk(feld[0]) realisieren. Das übergibt einen Zeiger auf das erste Element. funk(feld[1]) würde dann einen Zeiger auf den dritten Char übergeben.
  8. Ein char** ist ein Zeiger, der auf einen Zeiger zeigt. Man kann also ein Char** als eine Schreibweise für ein Feld betrachten, dessen einzelne Elemente Zeiger sind. Im Gegensatz dazu enthält ein Char[][] keine Zeiger! - Sondern nur einzelne Char. Es wird also auch nichts anderes übrigbleiben, als ein char* in der Funktion zu übergeben.
  9. Quote: Die definition deiner Funktion muß so aussehen: suche(char* eindimensional,char** zweidimensional); Ich glaub da liegst du falsch. suche(char* eindimensional,char* zweidimensional) müsste stimmen. Denn ein char[][] - Feld ist kein Array von Strings, sondern eins von chars. Genauso wie das eindimensionale Array. Die Zweidimensionalität bestimmt lediglich die Reienfolge in der die Chars im Speicher liegen.
  10. Also ich würde dafür ne Funktion schreiben: verkürzt: { for(i=0;i<max;i++){ . . for(ii=0;ii<max2;ii++){ . . . if(bFound) return } }
  11. Hi ein beliebter Trick ist folgender: ping -n 61 localhost > NUL Das Pingt den eigenen Rechner 61 mal an. Ein Ping dauert ungefähr eine Sekunde. Das ganze braucht kaum Resource. Um die Anzeige zu unterdrücken, wird sie auf NUL umgeleitet. Hoffe es hilft
  12. @goos gemeint ist doch sicher while(abbrechen== 0) oder? Mit abbrechen = 0 wird die Schleife nie durchlaufen!
  13. Das Ganze ist einigermaßen rätselhaft. Die eleganteste Lösung ist wahrscheinlich nach std::cin>>weiter die Anweisung std::cin.ignore(); einzufügen. Damit wird das nächste Zeichen auf dem istream ignoriert.
  14. Ja, merkwürdig, ich bin auch nicht sicher ob, meine Vorstellung woran das liegt richtig war. Mit etwas Zeit ist es bestimmt interessant das Ganze mal zu debuggen. Dann hat man die entscheidenden Größen im Blick und kann sehen was passiert. Schon probiert?
  15. Der Grund ist wohl, dass cin.getline nicht blockiert. Im getline versucht was vom Stream zu lesen, und wenn es da nichts gibt kommt sie sofort zurück. Folgendes sollte laufen: #include <iostream> int main() { char Person[21], Weiter, c; do { std::cout << "Einen Namen eingeben: "; std::cin>>c;//cin blockiert bis zum Enter std::cin.putback(c);// c zurück auf den Stream std::cin.getline(Person, 21); std::cout << Person; std::cout << std::endl << "Weiter (j/n)? "; std::cin >> Weiter; } while (Weiter == 'j'); return 0; }
  16. mir ist unklar was du mit dem pufffer bezweckst, aber abgesehen davon, kannst du dir i sparen indem du weiter mit 0 initialisierst, und statt if(i>1) if(weiter) schreibst. Ich glaub allerdings, dass ich nicht so ganz verstanden hab, was du genau erreichen willst.
  17. @orfi Wie unterscheidet sich den ein auto_ptr von einem pointer mit "garbage collector"? Arbeitet ein garbage collector nicht so, dass er für Objekte die nicht mehr erreichbar sind den Destruktor aufruft? Und tut das nicht auch der auto_ptr für sein Objekt? sehr interessiert... max
  18. Wenn in C++ programmiert werden soll, und die Rückgabe eines Pointers ok ist, kann man das Ganze doch recht einfach halten: #include <iostream> #include <string.h> class Kunde{ private: char m_name[30]; public: Kunde(const char* const name); const char* const name() const; void name( const char* const newName); };//class Kunde Kunde::Kunde(const char* const name){ strcpy(m_name, name); } const char* const Kunde::name() const{ return m_name; } void Kunde::name( const char* const newName){ strcpy(m_name, newName); } int main( void ){ Kunde einKunde("Heinz Dau"); std::cout<<"Der Kunde "<<einKunde.name()<<" hat jetzt "; einKunde.name("Heinz Gau"); std::cout<<"den Namen "<<einKunde.name()<<std::endl; return 0; }
  19. Du kannst ja mit der Felddefinition einen definierten Anfangszustand schaffen. (Die Definition schafft den Zustand). Dieser Zustand wird veraendert wenn in das Feld geschrieben wird. Du musst also pruefen ob sich das Feld im Ausgangszustand befindet. char Feld[FELDLAENGE]={'\0'}; if(! (Feld[0])){ cout<<"Feld ist noch leer!"; } Für Felder anderer Datentypen ergeben sich natürlich andere Notwendigkeiten.
  20. maxim_42

    ofstream

    @Klotzkopp: Übel, übel; einen Stream als Kopie zu übergeben! Besser void caIntegerList::out(ofstream& Index)
  21. habs glatt übersehen!
  22. @klotzkopp In der Schleife muss man nZahl nur bis Wurzel nZahl laufen lassen. Weiter optimieren könnte man wenn erst auf Teilbarkeit durch 2 getestet wird, und in der Schleife mit 3 begonnen und jeweils mit 2 inkrementiert wird.
  23. @Poldi Soweit ich weiß, wird ein Vektor zwar automatisch größer, wenn der Platz nicht mehr ausreicht um weitere Elemente aufzunehmen, er hat aber nach der Vergrößerung nicht die genau passende Größe. Wär ja auch ziemlich uneffektiv wenn für jedes Einfügen eines Elements, der Vektor neu dimensioniert werden müsste. Soweit ich weiß, verdoppelt der Vektor in den meisten Implementierungen die Größe. Das ist einer der Gründe, der manchmal gegen die Verwendung von std::vector sprich. Ein klasse Artikel dazu hier
  24. maxim_42

    Sos

    Es wird in dem Zusammenhang ja auch von Psoidozufallszahlen gesprochen. Wahrhaftig zufälliges Verhalten lässt sich mit einer deterministischen Maschine wohl gar nicht erreichen.
  25. Ja,sicher Netware Loadable Modules. Allerdings waren meine Probleme Compilerspezifisch und betrafen wahrscheinlich die Reihenfolge der #include. Ich bekam unsinnige Fehlermeldungen in nicht selbst erstelltem Code. Mittlerweile hab ich 'ne zumindest vorläufige Lösung gefunden. Aber Danke für den link.

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...