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

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

11

23.07.2003, 23:40

ich hatte es so gemacht, ich hab alle werte ausgelesen und in nen vector gestopft :)

12

23.07.2003, 23:54

Das fand ich was viel. Vor allem den Speicherverbrauch. Wenn man z.B. INI Files ausließt wie die win.ini. Ich hatte mich auf die Sektionen begrenzt.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

13

24.07.2003, 00:48

@Patrick warum willst du immer dein Portabilitätskram den Leuten aufdrängen ?

Das ist bloss für Linux oder OGL wichtig und beides is nich unbediengt ..... wichtig. Wenn er ey schon auf Win codet kann er auch dabei bleiben und jetzt mal ehrlich mit welchem OS spielen die meisten ? :D

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

14

24.07.2003, 09:12

windows ;) jedoch ich code auch hauptsächlich unter windows ;) und hab nur mal ganz kurz OpenGL gecodet ;) (stell dir vor!) Naja aber man sollte vorausschauen und ich sammle halt gerne portable klassen für evtl. ereignisse in der Zukunft ;)

15

24.07.2003, 14:01

Stell dir vor ich hab hier noch ein halbes RTS (lol...) in OGL liegen :9

Tracert

Treue Seele

Beiträge: 108

Wohnort: Braunschweig

Beruf: Student

  • Private Nachricht senden

16

24.07.2003, 19:40

Irgendwie komme ich mit dem Lesen von INIs noch nicht klar. Irgendwie wardas damals unter good old Delphi viel einfacher... :angel:

Also, ich wollte eine kleine Funktion schreiben, die einen bestimmten Wert aus einer INI ausliest und zwar mit GetPrivateProfileString. Vorher wird allerdings mit PathFileExists geprüft, ob die angegebene Datei überhaupt existiert.

Wenn ich das Programm allerdings ausführe erscheint zwar die MessageBox die sagt "Alles klar, die Datei ist da!", trotzdem erhält meine Char-Variable "temp" von GetPrivateProfileString nur immer den Default-Wert ("Nicht vorhanden!"). Die Sektion und Variable gibts aber definitiv. Was zum Geier läuft hier schon wieder falsch?

Hier ist der Code der Funtion:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
tResult ReadINIString(char* Datei, char* Bereich, char* Variable)
{
    char* temp; 
    if (PathFileExists(Datei))
        MessageBox(NULL, "Alles klar!", "Ausgabe", MB_OK | MB_ICONINFORMATION);
    else 
        MessageBox(NULL, "Nix Klar!", "Ausgabe", MB_OK | MB_ICONINFORMATION);
    char* Default = "Nicht vorhanden!";
    GetPrivateProfileString(Bereich, Variable, Default, temp, sizeof(temp), Datei);
    MessageBox(NULL, temp, "Ausgabe", MB_OK | MB_ICONINFORMATION);
    return T_OK;
}


Das ganze wird dann aufgerufen mit
ReadINIString("test.ini", "Allgemein", "FirstStart");

Ähm ... Hilfe! ;)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

17

24.07.2003, 19:56

"GetPrivateProfileString(Bereich, Variable, Default, temp, sizeof(temp), Datei);"

Das kann garnicht gehen!
Da "temp" nur ein char-Zeiger ist. Der zeigt irgendwo hin. Es müsste eigentlich eine Schutzverletzung geben. Und "sizeof(temp)" anzugeben ist auch Quatsch. Nimm ein char-Array.

Tracert

Treue Seele

Beiträge: 108

Wohnort: Braunschweig

Beruf: Student

  • Private Nachricht senden

18

24.07.2003, 20:10

Ist beim verzweifelten rumprobieren so falsch geworden. Ursprünglich hatte ich für alles Strings genommen, dachte dann es läge vielleicht daran, habe dann char-arrays genommen und dann char-Zeiger. Stimmt, letzteres geht auch gar nicht. Bei den beiden anderen Möglichkeiten kommt jedoch das gleiche raus: "Nicht vorhanden". Sieht also jetzt so aus:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
tResult ReadINIString(char* Datei, char* Bereich, char* Variable)
{
    char temp[255]; 
    if (PathFileExists(Datei))
        MessageBox(NULL, "Alles klar!", "Ausgabe", MB_OK | MB_ICONINFORMATION);
    else 
        MessageBox(NULL, "Nix Klar!", "Ausgabe", MB_OK | MB_ICONINFORMATION);
    char* Default = "Nicht vorhanden!";
    GetPrivateProfileString(Bereich, Variable, Default, temp, sizeof(temp), Datei);
    MessageBox(NULL, temp, "Ausgabe", MB_OK | MB_ICONINFORMATION);
    return T_OK;
}


Trotzdem bleibt das Problem. (?)

Jetzt muss ich aber auch mal meinen Ärger etwas loswerden: Die Doku von VC++ 7 ist absolut DAS LETZTE! Für keine dieser Funktionen finde ich irgendeine vernünftige Beschreibung in der Hilfe. Nichtmal für simple kleine Funktionen wie FileExists oder ähnliches. Oder bin ich nur zu blöd die Hilfe zu bedienen?

Tracert

Treue Seele

Beiträge: 108

Wohnort: Braunschweig

Beruf: Student

  • Private Nachricht senden

19

24.07.2003, 20:23

Haiaiai!

Habs schon gefunden! Mensch, das müsst ihr mir doch sagen, das nicht nur beim Erstellen der Datei bzw. beim Schreiben in diese das Windows-Verzeichnis benutzt wird, wenn keine absolute Pfadangabe gemacht wurde, sondern auch beim Lesen. Ich bin doch nicht so schnelle... :wall:

Jaja, an was man sich aufhalten kann...

Werbeanzeige