.txt lesen/schreiben

shader09

Erfahrenes Mitglied
Hallo erstemal,

meisten denken doch jetzt bestimmt, oh ne das Thema hatten wir schon Tausend mal. Und ja ihr habt recht, aber hier ist es meist nur mit "stream". Das wird aber in meiner Umgebung nicht Unterstützt. (eMbedded Visual C++ 4.0, Windows CE 4.2)

Mein problem ist jetzt grad beim lesen;
Code:
	UINT nActual = 0; 
	char str[1000];
	CFile datei( L"\\My Documents\\data.txt", CFile::modeRead);
	str[nActual] = 0;
	UINT dwBytesRead = datei.Read(str, sizeof(str));
	datei.Close();
	str[dwBytesRead] = 0;
	UpdateData(false);
	MessageBox((const unsigned short *)str);

so wennsch mir dann die MessageBox anucke sind da nur vier Blöcke aber kein Text.
Also muss das doch mit der Formatierung zu tun haben, kann mir vielleicht einer helfen!?
Und sagen wo mein Problem liegt.
Vielen Dank
 
Hi.

Anscheinend verwendest du Unicode bzw. MBCS.

Da kannst du nicht einfach den Typ char für Zeichenketten verwenden. Versuch's mal so:
C++:
TCHAR str[1000];
CFile datei( _T("\\My Documents\\data.txt"), CFile::modeRead);
...
MessageBox(str);
Wenn du beim MessageBox Aufruf irgendwas casten musst, dann kann es nicht richtig sein.

Gruß
 
Naja trotzdem bleiben in meiner MessageBox nur Kästchen.

Code:
{
	TCHAR text[1000];
	UINT nActual = 0; 	
	CFile datei( _T("\\My Documents\\data.txt"), CFile::modeRead);
	text[nActual] = 0;
	UINT dwBytesRead = datei.Read(text, sizeof(text));
	datei.Close();
	text[dwBytesRead] = 0;
//	m_strEdit = str; 
	UpdateData(false);
	MessageBox(text);
}
 
Hi.

Kannst du denn nicht mit dem Debugger schauen was dort wirklich in der Variablen str gespeichert wird?

Was steht denn in der Datei drin? Doch keine chines. Schriftzeichen?

Gruß
 
Um sich das anzukucken, müsste doch man einen Braekpoint setzen und dann auf die Variable klicken bzw drüber "fahren". Wenn ja, danngeht das hier nicht.
In der Datei steht, Hamburg 12345.
Er zeigt mir auch nur Zahlen an, aber nur die letzte. Bei Text halt nur die Kästchen.
Woran könnte das jetzt noch liegen!?
 
habs doch hinbekommen mit dem breakpoint, is voll umständlich in embedded visual.

also variable text (ehemals str), hat bis zu datei.Close() folgende ... [kein plan wie man es nennt] (0x2002eb60 ""), danach hat Sie das gleiche nochmal nur das in den gänsefüsschen folgendes drinne steht (0x2002eb60 "?"). Ich raff es einfach nicht, c is so ne abgebumbste sprache
 
Hi.

Die Interpretation der Zeichenkette text bringt nicht so viel. Kannst du dir denn nicht den Speicherinhalt der Variablen anschauen?

Brauchst du denn eigentlich UNICODE bzw. MBCS Unterstützung? Wenn nicht, dann schalte es doch einfach ab?! (in den Projekteinstellungen _UNICODE _MBCS darf nicht definiert sein).

Gruß
 
project -> project settings -> preprocessor definitions

meinste das hier, is das einzige was ich gefunden wo was mit unicode stand. aber ändern tut sich da auch nichts
 
Habs Neugestartet und dann nochma Kompiliert. und es kommt immer noch das gleiche Ergebnis. Warum rafft der das nich?!

Das mit der HexZahl und den Fragezeichen, war das nicht der Speicherinhalt. Also bei VB hat man immer so den Speicherinhalt lesen können.
 
Zurück