Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Komisches Verhalten (ursache unbekannt)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
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
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.08.2005, 12:29 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja du liest da wieder das nächste element ein?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.08.2005, 12:50 Uhr
RedEagle



häe?? Wenn du PUNKT 2 meinst: ja
Aber wenn ich mit PUNKT 2 arbeite ist auch bei PUNKT 3 überall ein Wort gespeichert

Wenn ich mit PUNKT 2 Arbeite, und PUNKT 1 weg lasse, läuft alles Perfekt. Aber wenn ich mit PUNKT 1 arbeite und PUNKT 2 weg lasse, wird nur in [0] ein wort gespeichert.

ps.: Die Schleife wird natürlich in beiden mehrmals durchlaufen
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.08.2005, 12:54 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ich denke mal das das


C++:
in >> color;



nicht klappt, ich denke nicht das das die konvertierung von "ff0000" in int funktioniert, ich schätze mal das ist der fehler
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
17.08.2005, 18:18 Uhr
RedEagle



oh dass wirds sein...


--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: