013
07.11.2006, 10:44 Uhr
www.pat
|
Hi!
Wie versprochen melde ich mich wieder. Ich habe mein Problem gelöst und poste meine Lösung als Dankeschön an eure Hilfe.
Mein Problem war, dass ich im gesamten Programm eine Variable abrufen wollte. Das habe ich nun mit einer ini-File gelöst, mit der ich die Info sogar beim nächsten Programmstart habe.
Problem: Um eine ini-File zu lesen oder zu beschreiben braucht man zunächst den kompletten Pfad:
C++: |
char* ini_Commands::GetPathOfFile() {
char *path = new char[500]; // für Pfad incl. Dateiname int laenge = GetCurrentDirectory(499,path); // gibt den Pfad des laufenden Programms und Länge des Arrays an
char* filename = "\\settings.ini";
int i =0; while (filename[i] != 0x00) // Dateiname an den Pfad hängen { path[laenge+i]=filename[i]; i++; }
path[laenge+i]=0x00; // mit dem Hex-Byte 0x00 abschließen
return path; }
|
Wenn wir den Pfad haben können wir auf File nun ungehindert schreiben und von ihr lesen.
schreiben:
C++: |
void ini_Commands::WritePortToFile(char* PortName) { ini_Commands ini; char* path = ini.GetPathOfFile(); WritePrivateProfileString("Serial","PortName",PortName,path); }
|
1. "Überschrift" in der ini-File an. 2. der Name unserer Variablen. 3. Wert der Variable. 4. Pfad, wo die File sein soll mit Datiename. Alles was noch nicht existiert (die Überschrift, die Variable und/oder die File) wird neu erstellt. Alles andere wird überschrieben.
lesen:
C++: |
char* ini_Commands::GetPortFromFile() { ini_Commands ini; char* path = ini.GetPathOfFile(); DWORD destSize=6; char* PortName = new char[6]; GetPrivateProfileString("Serial","PortName","COM1",PortName,destSize,path); return PortName; }
|
Das dritte Argument (hier "COM1") ist der Wert, der im Falle eines Fehlers zurrückgegeben wird (z.B. wenn die Variable nicht existiert) die Funktion von <<char* PortName = new char[6];>> weis ich leider noch nicht, hatte noch keine Zeit dafür. Aber es funktioniert atm, also was solls ^^
Die ini-File sieht dann ungefär so aus:
Code: |
[Serial] PortName=COM1 Baudrate=38400
|
Ich hoffe es wird irgentwen einmal helfen.
cu, man sieht sich!
pAT Dieser Post wurde am 07.11.2006 um 10:52 Uhr von www.pat editiert. |