000
17.08.2005, 11:17 Uhr
RedEagle
|
Die Funktion:
C++: |
void LoadSHLFromFile(char *Filename, char *Gruppe, SYNTAX *syntax) { int size; char filename[100]; char inival[100];
GetPrivateProfileString(Gruppe, "size", "0", inival, 100, Filename); size = atoi(inival);
GetPrivateProfileString(Gruppe, "file", "x.shl", inival, 100, Filename); strcpy(filename,".\\shl\\"); strcat(filename,inival);
ifstream in; in.open(filename); char format[10]; int color;
for(int i=0; i<size; i++) { syntax[i].max = size; syntax[i].cfWord.dwMask = CFM_CHARSET | CFM_FACE | CFM_SIZE | CFM_OFFSET | CFM_COLOR | CFM_ITALIC | CFM_BOLD | CFM_STRIKEOUT | CFM_UNDERLINE; syntax[i].cfWord.dwEffects = 0; syntax[i].cfWord.yOffset = 0; syntax[i].cfWord.bCharSet = ANSI_CHARSET; syntax[i].cfWord.bPitchAndFamily = FIXED_PITCH | FF_MODERN; syntax[i].cfWord.dwEffects = 0; syntax[i].cfWord.crTextColor = RGB(0, 0, 0); syntax[i].cfWord.yHeight = 180; strcpy( syntax[i].cfWord.szFaceName, "Courier New"); syntax[i].cfWord.cbSize = sizeof(CHARFORMAT);
//########## PUNKT 1 ########## in >> syntax[i].Word; in >> color; syntax[i].cfWord.crTextColor = color; in >> format; if(format[0]=='1') syntax[i].cfWord.dwEffects |= CFE_BOLD; if(format[1]=='1') syntax[i].cfWord.dwEffects |= CFE_UNDERLINE; if(format[2]=='1') syntax[i].cfWord.dwEffects |= CFE_STRIKEOUT; if(format[3]=='1') syntax[i].cfWord.dwEffects |= CFE_ITALIC; //########## PUNKT 2 ########## /* in >> syntax[i].Word; MessageBox(NULL, syntax[i].Word.c_str(), "", MB_OK); in >> inival; in >> inival;*/ } //########## PUNKT 3 ########## /**/MessageBox(NULL, syntax[0].Word.c_str(), "", MB_OK); /**/MessageBox(NULL, syntax[1].Word.c_str(), "", MB_OK); /**/MessageBox(NULL, syntax[2].Word.c_str(), "", MB_OK); }
|
SYNTAX:
C++: |
struct SYNTAX { string Word; CHARFORMAT cfWord; int max; };
|
Die Datei: (Ausschnitt)
batch.shl: |
call ff0000 1000 echo ff0000 1000 errorlevel ff0000 1000 exist ff0000 1000 if ff0000 1000 in ff0000 1000 not ff0000 1000
|
Mein Problem: Wenn ich die Datei laden möchte (PUNKT 1) dann wird nur die der erste befehl in syntax[i].Word geladen (zu sehen bei PUNT 3) Wenn ich einfach mal testweise das mit der Formatierung weg lasse, und wie in PUNKT 2 die Datei lade, werden alle Wörter richtig geladen. Woran liegt das??
ps.: Der Code ist noch etwas unordentlich Ich hoffe ich versteht das Problem... -- MFG RedEagle |