Net-srac Geschrieben 31. Mai 2001 Teilen Geschrieben 31. Mai 2001 So, ich wollt mich nun auchmal an den so hochgelobten VC++ machen. Bin allerdings schon bei der leichtesten Aufgabe gescheitert. Gibts es eine Funktion wie bei Borland mit der ich direkt den Wert aus einem Editfeld hole und auch wieder reinstelle? Genau das haben die nämlich auch in : "VC++ in 21 Tagen" vergessen. Thnx4Help Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
toosten Geschrieben 31. Mai 2001 Teilen Geschrieben 31. Mai 2001 UpdateData(TRUE); //fenster->variablen //daten ändern UpdateData(FALSE); //variablen->fenster Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Net-srac Geschrieben 31. Mai 2001 Autor Teilen Geschrieben 31. Mai 2001 Ähm und dass dann bitte nochmal in Deutsch? Ich hab doch erst angefangen mit dem Kram. Gibts da ein 3-zeiler Beispielprogramm? Thnx4Help Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hasi Geschrieben 31. Mai 2001 Teilen Geschrieben 31. Mai 2001 Du musst deinem Edit Feld eine MemberVariale zuweisen (das machst du im ClassWizard) UpdateData(TRUE); schreibst du jetzt das was in dem EditFeld steht in die variable UpdateData(FALSE); schreibst du dass was in der Variable steht in dein edit Feld Ist eigentlich ganz einfach Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crush1 Geschrieben 6. Juni 2001 Teilen Geschrieben 6. Juni 2001 Gehe im Resource-Editor auf den Dialog und wähle das betreffende Fenster aus. Drück Strg-W und rufe so den Class-Wizard auf. Wähle dort die Karte "Member-Variables" und klicke auf die entsprechende Control-ID des Fensters. Drücke "Add Variable" und füge bei m_ irgenwas dahinter wie z.B. m_Fenster (das m_ steht für Member-Variable). Wähle in der Kategorie "Control" aus und Bestätige alles mit "OK". Hiermit ist m_Fenster in Deinem kompletten Source-Code über DDX-Funktionen bekannt (Direct-Data-Exchange) und kann über den Punkt-Operator alle Funktionen die dem Fenster bereitstehen benutzen. So arbeiten die (faulen) Profis! Viel Spaß!!! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Net-srac Geschrieben 6. Juni 2001 Autor Teilen Geschrieben 6. Juni 2001 Supi, hab ich jetzt geschnallt. Hab auch schon meinen ersten Rechner gecodet. Aber nochwas, wie mache ich denn, dass der jetzt meine ganzen ergebnisse in einer Datei abspeichert? fopen?fclose? FILE *MeineDatei; MeineDatei = fopen("C:\\temp.txt", "w+"); fputc('H', MeineDatei); fputc('a', MeineDatei); fputc('l', MeineDatei); fputc('l', MeineDatei); fputc('o', MeineDatei); fclose(MeineDatei); soweit ist klar, aber wie binde ich das jetzt in mein jetziges Prog ein? .h? oder .cpp? ich bin noch net so fit in Visual. Muß ich mir da nen Button IDC_SPEICHERN machen und dann den kram in OnSPEICHERN legen? Thnx4Help Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crush1 Geschrieben 6. Juni 2001 Teilen Geschrieben 6. Juni 2001 Muß ich mir da nen Button IDC_SPEICHERN machen und dann den kram in OnSPEICHERN legen? -> Wäre so denkbar... Alles was den Dialog betrifft würde ich auch da reinsetzen, es sei denn du willst eine universale Speicherfunktion machen, die müstest Du dann mit #include einbinden also eine eigene .CPP und .h dafür anlegen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Net-srac Geschrieben 6. Juni 2001 Autor Teilen Geschrieben 6. Juni 2001 Eigene cpp und h? wie kann ich denn das machen? die wird doch dann im Hauptteil included oder? aber doch nur die .h? PS: Das funktioniert! Aber wenn ich fputc(m_ergebniss, MeineDatei); schreibe sagt er das das mit der konvertierung von double zu int nicht möglich. Kann ich denn keine double speichern? Wie könnte ich denn überhaupt konvertieren. so Float -> Text? Thnx4Help Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crush1 Geschrieben 6. Juni 2001 Teilen Geschrieben 6. Juni 2001 fputc schreibt leider nur ints. Deshalb ist es sinnvoll den double(bei Win98 8 Bytes) in 2 ints(4 Bytes) zu zerlegen. Das geht so: So kann man sehen, wie groß int oder doubles sind: int x=sizeof(int); // int anschauen double y=sizeof(double); // alles klar? und jetzt das Beispiel: double m_ergebniss; int xhi,xlo; double*p1=&m_ergebniss; // Zeiger auf double xlo=*(int*)p1; // lo als int auslesen xhi=*((int*)p1+1); // hi als int auslesen leider muß man den Pointer definieren, da sonst versucht wird den kompletten double auf int zu kürzen. Das heißt der integer-Wert von m_ergebniss wird in den int übertragen und der Exponent in den Gulli geworfen - das wäre falsch (Information geht verloren). Ein double y=5 ist nämlich byteweise nicht 5 sondern: Hi int Lo int 00 00 00 00 | 00 00 14 40 oder am besten gleich in den fputc setzen: int xhi,xlo; double*p1=&m_ergebniss; fputc(*((int*)p1+1), MeineDatei); // lo fputc(*(int*)p1, MeineDatei); // hi Ich hab´s jetzt nicht getestet aber der fputc sollte es so fressen ansonsten halt ein int xhi,und ein int xlo einlesen über als m_ergebniss abspeichern. Das Einlesen muß also auch wieder als xlo und xhi erfolgen und dann muß ein double im speicher so gefüllt werden. Klappt 100%ig! Die Methode ist zwar ein wenig brutal, aber so funktionierts bestimmt. P.S.: Bei STL lassen sich CObjects ganz einfach in Dateien streamen - da ist dann wurst ob´s ints doubles oder strings sind. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Net-srac Geschrieben 7. Juni 2001 Autor Teilen Geschrieben 7. Juni 2001 Ähm sorry, aber das war zu viel. Also das mit dem konvertieren ist klar. Aber welche function,wenn nicht fputc, schreibt denn text in eine Datei? Damit es gleich egal ist was in dem Eingabefeld steht? Thnx4Help Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crush1 Geschrieben 7. Juni 2001 Teilen Geschrieben 7. Juni 2001 Ach so, das geht dann so: Mit Strings: fputs, fputws Write a string to a stream. int fputs( const char *string, FILE *stream ); ACHTUNG: Es werden 0-terminierte-Strings geschrieben!!! Man muß hier falls nicht vorhanden 0er setzen. Oder so mit unformatierten Daten aller Art: fwrite Writes data to a stream. size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream ); Parameters: buffer Pointer to data to be written size Item size in bytes count Maximum number of items to be written stream Pointer to FILE structure Das ist feiner, so kann man die Schreib-Länge im Aufruf bestimmen. Vielleicht hilft Dir das weiter? Aber auch hier muß ein Pointer auf den double gesetzt werden. Da kommt man einfach nicht rum. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hasi Geschrieben 7. Juni 2001 Teilen Geschrieben 7. Juni 2001 versuchs mal hiermit fprintf(deinFileStream,"%d", deinedoublevariable); ist nicht so schoen wie bei crush aber dafuer ziemlich einfach und schnell kapierbar [ 07. Juni 2001: Beitrag editiert von: Hasi ] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Net-srac Geschrieben 7. Juni 2001 Autor Teilen Geschrieben 7. Juni 2001 Ähm, ich habs immernoch nicht verstanden Könnt ihr vielleicht mal nen 3-zeiler schreiben mit nem beispiel, wo oben irgendein Zahlenwert z.B. double reinkommt und der wert dann als text in einer neuen Variable wieder rauskommt? So, mit deklaration und so? Das wäre tierisch guat von euch. Thnx4Help [ 07. Juni 2001: Beitrag editiert von: FaFo ] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Net-srac Geschrieben 7. Juni 2001 Autor Teilen Geschrieben 7. Juni 2001 . Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hasi Geschrieben 7. Juni 2001 Teilen Geschrieben 7. Juni 2001 magst jetzt deinen double in ne Datei schreiben oder in eine andere Variable? und der wert dann als text in einer neuen Variable wieder rauskommt? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Net-srac Geschrieben 7. Juni 2001 Autor Teilen Geschrieben 7. Juni 2001 naja, also am besten in eine Variable, die ich dann später in eine Datei schreibe. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hasi Geschrieben 7. Juni 2001 Teilen Geschrieben 7. Juni 2001 zum schreiben in einen Buffer(char) schau dir das an : #include <stdio.h> void main( void ) { char buffer[200], s[] = "computer", c = 'l'; int i = 35, j; float fp = 1.7320534f; /* Format and print various data: */ j = sprintf( buffer, "\tString: %s\n", s ); j += sprintf( buffer + j, "\tCharacter: %c\n", c ); j += sprintf( buffer + j, "\tInteger: %d\n", i ); j += sprintf( buffer + j, "\tReal: %f\n", fp ); printf( "Output:\n%s\ncharacter count = %d\n", buffer, j ); } zum schreiben des Buffers oder des Double in die datei les mal das: #include <stdio.h> #include <process.h> FILE *stream; void main( void ) { int i = 10; double fp = 1.5; char s[] = "this is a string"; char c = '\n'; stream = fopen( "fprintf.out", "w" ); fprintf( stream, "%s%c", s, c ); fprintf( stream, "%d\n", i ); fprintf( stream, "%f\n", fp ); fclose( stream ); system( "type fprintf.out" ); } OK? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Net-srac Geschrieben 8. Juni 2001 Autor Teilen Geschrieben 8. Juni 2001 Supi, hab es heut früh probiert und es so umgebaut, das es auch wirklich mein ergebniss als char bla[...] speichert. Dankeschön. Auf einen im Netz stehenden Rechner kann man das nicht speichern? oder? ich hab das schonmal probiert, denke aber, dass ich die adresse falsch eingegeben hab. eigentlich müßte doch: \\X0529AP\C\temp.txt auch reichen oder? Greetz Carsten Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Hasi Geschrieben 8. Juni 2001 Teilen Geschrieben 8. Juni 2001 hmm wahrscheinlich muss man mit escape charactern arbeiten, d.h. um einen backslash zu schreiben muss ich zwei machen siehe hier : void main() { cout << "\\ ein Backslash\n"; cout << "\\\\ zwei Backslash"; } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Net-srac Geschrieben 8. Juni 2001 Autor Teilen Geschrieben 8. Juni 2001 yep, funtzt, jetzt kann ich schonmal die daten auf einem anderen rechner abspeichern. Danke, denke das wars erstmal. Greetz Carsten Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.