Buffer trennen

Hi Danke für den Tipp.

Wie so bekomme ich wenn ich wsprintf "(Text, L"%i", strlen(Text))" jedes mal eine eingabe mache die länge 1 anstadt die länge des textes?
Wenn das Edit-Fenster leer ist bekomme den wert 0 so wie es sein sollte.

Code:
GetWindowText(EingabeWnd, Text, sizeof(Text) / sizeof(*Text));
wsprintf (Text, L"%i", strlen(Text));
SetWindowText (AusgabeWnd, Text);


MFG Viper
 
Hi Danke für den Tipp.

Wie so bekomme ich wenn ich wsprintf "(Text, L"%i", strlen(Text))" jedes mal eine eingabe mache die länge 1 anstadt die länge des textes?
Wenn das Edit-Fenster leer ist bekomme den wert 0 so wie es sein sollte.

Code:
GetWindowText(EingabeWnd, Text, sizeof(Text) / sizeof(*Text));
wsprintf (Text, L"%i", strlen(Text));
SetWindowText (AusgabeWnd, Text);
Wie hast du denn jetzt die Variable "Text" deklariert?

Gruß
 
Aha. Du mußt die entsprechenden Funktionen für Unicode bzw. Multibyte Unterstützung verwenden:
C:
wsprintf (Text, L"%i", _tcslen(Text));
Siehe http://msdn2.microsoft.com/en-us/library/ey142t48(VS.80).aspx bzw. http://msdn.microsoft.com/library/d...ry/en-us/vclib/html/_crt_routine_mappings.asp

Eigentlich sollte man erst die Länge des Textes mit der GetWindowTextLength bestimmen, dann Speicher für den Text dynamisch anlegen und zum Schluß den Text abfragen. Außer natürlich du kannst dir sicher sein, das der Text niemals > 255 Zeichen ist.

Gruß
 
Zuletzt bearbeitet:
Hi, nein es wird nie größer als 256, da es nur ein kleiner Test ist.
Habe es getestet und leider geht dies nicht. Er zählt nicht hoch egel wie viele Zeichen ich dort reinschreibe er sagt immer 1.
 
Hi, nein es wird nie größer als 256, da es nur ein kleiner Test ist.
Habe es getestet und leider geht dies nicht. Er zählt nicht hoch egel wie viele Zeichen ich dort reinschreibe er sagt immer 1.
Dann lass dir doch mal ausgeben welche Größe GetWindowTextLength angibt und wie groß dein Text Buffer ist (also den Wert von sizeof(Text) / sizeof(*Text) ).

Evtl. hat die GetWindowText Funktion auch nicht funktioniert. Die Funktion gibt die Länge des kopierten Strings zurück. Wenn die Länge 0 ist kann man mit GetLastError den zuletzt aufgetretenen Fehler bekommen.

Gruß
 
Hi, also habe die größe des Tchar Text wiedergegeben und er sagt mir das die 256 ist. Und nicht die länge die ich eingegeben habe.
 
Hi blöde frage muss aber sein wie soll ich den GetWindowTextLength anwenden. Suche grade bei google :D.

//edit: Habe was gefunden und jetzt gehts.
Danke für deine Zeit und deine Bemühungen :D. Hier die Lösung.

Code:
	TCHAR Text[256];
	int Size;

	Size=GetWindowTextLength (EingabeWnd);
	GetWindowText(EingabeWnd, Text, Size+1);
	wsprintf (Text, L"%i", Size);
	SetWindowText (AusgabeWnd, Text);
 
Zuletzt bearbeitet:
Zurück