TCHARS...
-
for(int k = 1; k<=lstrlen(buf1); k++) { if(buf1[k] == (TCHAR)TEXT("\n")) .......richtig? oder eher nicht so ganz?
-
LOL! Richtig...In Bezug auf ... ?
Also wenn du den gesamten Buffer 'bufl' auf NewLine-Zeichen ('\n') prüfen willst, ist Dein Code falsch. Dann muss er so aussehen:
for(int k = 0; k < lstrlen(buf1); k++) { if(buf1[k] == '\n') { // An Position k befindet sich ein NewLine Zeichen: // ... } // ... }Wenn Du UNICODE-Unabhängigkeit erreichen willst, geht das (beispielsweise) so:
#ifdef UNICODE #define SIGN(c) L#c #else #define SIGN(c) c #endif // UNICODE for(int k = 0; k < lstrlen(buf1); k++) { if(buf1[k] == SIGN('\n')) { // An Position k befindet sich ein NewLine Zeichen: // ... } // ... }Oder so (ist Ansichtssache, mir gefällt die voherige Version besser
):for(int k = 0; k < lstrlen(buf1); k++) { #ifdef UNICODE if(buf1[k] == L'\n') #else if(buf1[k] == '\n') #endif // UNICODE { // An Position k befindet sich ein NewLine Zeichen: // ... } // ... }
-
hättest auch einfach schreiben können, dass ich die " durch ' ersetzen soll.

jetzt versteh ich auch, wieso er meinte, dass TEXT("\n") ein integer ist und ich ein (TCHAR) davor setzen musste (obwohl das iwie schwachsinnig ist) - eine zeichenkette ist ja nur die adresse auf die zeichenkette^^ ...
#ifdef UNICODE
#define SIGN(c) L#c
#else
#define SIGN(c) c
#endif // UNICODEbrauchen wir net, wofür gibbet denn TEXT()? :p
Naja, mein Prog klappt trotzdem net richtig - soll den Text in nem Fenster analysieren und die größe des Fensters dadran anpassen, ist aber iwie zu klein.
Hier die WM_CREATE
case WM_CREATE:
hdc= GetDC(hWnd);
GetTextMetrics(hdc, &tm);
cxChar = tm.tmAveCharWidth;
cyChar = tm.tmHeight + tm.tmExternalLeading;
GetWindowRect(hWnd,&rect);
if (!lol)
{
Quadrate(1,80, 3);
lol = true;
}
for(int i = 1; i <=lstrlen(buf1); i++)
{
if(buf1[i] == TEXT('\n'))
cendl++;
if(buf1[i] == TEXT('\0'))
{
for(int k = 1; k<=lstrlen(buf1); k++)
{
if(buf1[k] == TEXT('\n'))
ctendl++;
if(ctendl == (cendl-1))
{
wsprintf(buf2,TEXT("\0"));
for(k; k<=lstrlen(buf1); k++)
{lstrcat(buf2, &buf1[k]);
}
}
}
}
}
cwl = lstrlen(buf2) * 2;
MoveWindow(hWnd,rect.left, rect.top, cwl*cxChar, cendl*cyChar,TRUE);
ReleaseDC(hWnd, hdc);
return 0;
-
Wieso so umständlich? Er kann genauso gut einfach
if(buf1[k] == TEXT('\n'))schreiben. :p
edit:
ich sollte doch öfter mal auf "neu laden" klicken.
-
Ich nehme die beiden Markos zur Unterscheidung... dann sieht man so man einzelne Char's bzw vollständige C-String' verwendet...ist übersichtlicher, aber klar, man kann auch einfach TEXT nehmen
.EDIT: Wobei man natürlich auch einfach schreiben kann:
#define SIGN(c) TEXT(c)
-
vielen dank nochmal an alle, hab das irgendwie hingekriegt mit der berechnung, auch wenns krumm ist xD