Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

21

22.09.2012, 19:55

C-/C++-Quelltext

1
2
char* text = new char[fnn.length()];
text = const_cast<char*>(fnn.c_str());

Bist Du Dir sicher, dass Du schon mit Dateien arbeiten solltest, wenn Dir solch grobe Fehler unterlaufen und Du sie dann einfach abwinkst nach dem Motto: "Ach, diese 20 Bytes sind doch nicht relevant.".
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

22

22.09.2012, 19:57

Wie gesagt: Nie extrem mit solcher Materie befasst. Nur einmal als ich ein VirtualFile Handler gemacht habe. Das ist aber auch schon ewig her. Aber bevor jetzt immer noch jeder weiter drauf rumhackt würde ich sagen, dass man es auf sich beruhen lassen kann.

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

23

22.09.2012, 19:59

Pointer sind Grundlagenwissen. Was heißt da "nie mit solcher Materie befasst"? Ohne die Grundlagen solltest Du lieber diese nochmal durcharbeiten und bei den komplexeren Sachen auch mit entsprechenden Tools arbeiten. Debugger zum Beispiel. Ich glaube irgendwie nicht, dass Du den schon mal genutzt hast, denn sonst wären Dir bei Inspektion vieler Variablen schon Fehler aufgefallen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

24

22.09.2012, 20:03

Tatsächlich hat mein Debugger immer angezeigt, was ich wollte. Könntest du einfach mal lassen, zu denken alles sind dumm und du nicht? Du bist vielleicht gut im Programmieren, aber du weißt nicht, was mein Debugger anzeigt. Ich kann sogar Screenshots machen, dass es funktioniert hat. Wenn du es nicht glaubst würde ich mal deinen Debugger überprüfen. Und ich habe mich mit Pointern befasst. Aber ich habe wie schon gesagt einen Denkfehler gehabt da ich '\0' zu einem Pointer hinzu addiert habe.

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

25

22.09.2012, 20:10

Ignoriere das einfach. Ich habe kein Bock wegen so was noch Streit anzufangen.

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

26

22.09.2012, 21:35

Es gibt lauter Dinge in Deinem Code, die können noch nie funktioniert haben oder richtig angezeigt worden sein. Dazu muss man weder dumm, noch clever sein, denn das sind simple Fakten.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

27

22.09.2012, 22:06

Wie gesagt ich schreibe das ganze jetzt mit i/ofstream und std::string. Damit sollt es kein Problem darstellen. Damit dieses Missverständnis nicht nochmal passiert, werde ich mir mal char* genauer ansehen.

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

28

22.09.2012, 23:39

Es geht nicht um dumm oder schlau. Es geht nicht darum, auf anderen rum zu hacken oder sich über sie lustig zu machen.
Es ist so, dass man einsehen muss, dass man niemals alle Details kennen wird. Das man sich nicht dumm fühlt, wenn man etwas nicht weiß und korrigiert wird, sondern es als Chance nutzt, sich zu verbessern.
Die Idee hinter deinem Code war ja durchaus richtig. Die Umsetzung war nur falsch, weil du ein paar Details nicht wusstest. Und sie war ziemlich spektakulär falsch, weil C++ eine sau komplexe Sprache ist und auf einmal Dinge im Hintergrund abgehen, die man nie erwartet hätte. Und das nicht nur als Anfänger, darauf stößt man später immer wieder. Jedenfalls solange man den Ehrgeiz hat, Neues zu lernen und nicht immer nur das selbe macht.

Der Code könnte in etwa so aussehen (hab ich jetzt nicht getestet):

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
//speichern
std::string str("das hier kommt in die Datei");
unsigned int Length=str.length();
fwrite(&Length, sizeof(unsigne int), 1, File);
fwrite(str.c_str(), sizeof(char), Length, File);

//lesen:
unsigned int Length;
fread(&Length, sizeof(unsigned int), 1, File); //größe lesen
char Data[]=new char[Length]; //temporären Buffer erstellen
fread(Data, sizeof(char), Length, File); //Buffer füllen
std::string str(Data); //String Objekt erstellen
delete[] Data; //temporären Buffer löschen



Die C++ Methode mit Filestreams wäre die hier:
http://www.cplusplus.com/doc/tutorial/files/
Zu beachten ist, dass man da auch nicht immer einfach nur << und >> benutzen kann, da das Leerzeichen normalerweise als Trennzeichen interpretiert wird, was bei Strings natürlich Probleme machen kann.
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige