Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
philipp_boeing JLI'ler

Alter: 35 Anmeldedatum: 26.07.2003 Beiträge: 188
Medaillen: Keine
|
Verfasst am: 16.05.2005, 15:18 Titel: |
|
|
k problem gelöst: löschen geht, wenn man den String überschreibt und als Wert 0 übergibt, und beim lpFilename muss man den absoluten Pfad angeben, sonst gehts ab ins Windows verzeichnis... |
|
Nach oben |
|
 |
Patrick Dark JLI Master

Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 16.05.2005, 15:19 Titel: |
|
|
philipp_boeing
Wenn Du nur unter Windows arbeitest und ini-Dateien benutzen willst (ohne natürlich Absolute Pfadangaben zu machen) kannste es so machen:
CPP: | // ###########################################################################
// Datei: ini.h
// ###########################################################################
// Autor: Patrick Ullmann
// Erstellt: 11.04.2005
// Änderungen: 11.04.2005 (Patrick) Datei erstellt
// ###########################################################################
// Beschreibung: Basisklasse für ini-Dateien
#if !defined(__ini_h__)
#define __ini_h__
// I N C L U D E S ###########################################################
#include <windows.h>
#include <direct.h>
// S T R U K T U R E N #######################################################
namespace file
{
class ini
{
public:
void loadFile (const char* fileName)
{
char buffer[256];
buffer[0] = 0;
_getdcwd(_getdrive(), buffer, 255);
wsprintf (fileName_, "%s\\%s", buffer, fileName);
}
const char* getValue (const char* keyname, const char* valuename, const char* defvalue)
{ GetPrivateProfileString (keyname, valuename, defvalue, buffer, 128, fileName_); return (buffer); }
private:
char buffer[128];
char fileName_[256];
};
} // Namespace: file
#endif |
Weshalb die Funktionen im Windows-Ordner suchen steht in der MSDN Achja: Diese Funktion gibt zwar einen char* zurück aber es gibt ja sowas wie atoi oder stringstreams. Sich wegen einem int anzupinkeln muss doch nicht sein
- Patrick, der nun aber mit seiner anderen ini-Klasse arbeitet die Portabel ist  _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
 |
KI JLI Master

Alter: 40 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 16.05.2005, 16:43 Titel: |
|
|
Du brauchst keinen absoluten Pfad anzugeben, um die INI-Datei in deinem Programmpfad zu speichern.
Soweit ich weiß recht es ./Ini-Datei.ini zu schreiben. |
|
Nach oben |
|
 |
Patrick Dark JLI Master

Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 16.05.2005, 17:14 Titel: |
|
|
KI
Dem ist nicht so, der LPCTSTR den man dort angeben muss, muss entweder absolut sein oder relativ vom Windowsordner oder Systemordner aus.
Mit ./ini-datei.ini erreicht man was komplett anderes  _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
 |
KI JLI Master

Alter: 40 Anmeldedatum: 04.07.2003 Beiträge: 965 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 16.05.2005, 17:31 Titel: |
|
|
Nein!! Der Punkt wird durch das aktuelle Verzeichnis ersetzt und das ist i.d.R. das Verzeichnis, aus dem heraus das Programm gestartet wurde, wenn man es nicht ändert.
Folgender Code funktioniert:
CPP: | char strBla[8];
GetPrivateProfileString("Bla", "Bla", "Kein Bla", strBla, 8, ".\\HALLO.TXT");
MessageBox(NULL, strBla, "", 0); |
Er liest aus der Textdatei ("HALLO.TXT"):
In der MessagBox steht "Bla".
Ich glaube nicht, dass sich in meinem Windows- oder Systemordner eine solche Datei befindet. |
|
Nach oben |
|
 |
Patrick Dark JLI Master

Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 16.05.2005, 17:42 Titel: |
|
|
KI
Hmn ich hab das aus DOS-Zeiten aber noch anders in erinnerung. Na ja wie dem auch sei: Willste vor jedem Kram ./ schreiben oder einfach direkt den Dateinamen? Wenn das 2. ansprechender ist bitte meine Klasse betrachten  _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
 |
philipp_boeing JLI'ler

Alter: 35 Anmeldedatum: 26.07.2003 Beiträge: 188
Medaillen: Keine
|
Verfasst am: 16.05.2005, 20:47 Titel: |
|
|
@Patrick soweit ich das richtig sehe machst du es doch auch mit absoluten Pfaden? Und die bekommst du durch diese Funktionen, was anderes hatte ich eigentlich auch net vor... |
|
Nach oben |
|
 |
Patrick Dark JLI Master

Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
 |
philipp_boeing JLI'ler

Alter: 35 Anmeldedatum: 26.07.2003 Beiträge: 188
Medaillen: Keine
|
Verfasst am: 16.05.2005, 22:15 Titel: |
|
|
@Patrick - witzbold
gibt es eigentlich ne limitierung der zeichen oder könnte ich auch riesen texte abspeichern? |
|
Nach oben |
|
 |
Patrick Dark JLI Master

Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
Verfasst am: 16.05.2005, 22:21 Titel: |
|
|
Limitierung stellt Dein RAM dar. Doch wenn es um die Datei ansich geht solltest Du Dir mal die ini-File-Standards ansehen. Infos wie immer in der MSDN. _________________ 'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ] |
|
Nach oben |
|
 |
|