ERLEDIGT
JA
JA
ANTWORTEN
2
2
ZUGRIFFE
317
317
EMPFEHLEN
-
15.10.07 16:36 #1
- Registriert seit
- Sep 2007
- Beiträge
- 6
Hallo,
möchte den Inhalt einer Textdatei in ein Eingabefeld angezeigt bekommen.
Die Datei soll über ein Menu"Datei öffnen" aufgerufen werden.
Klappt soweit, jedoch werden am Ende immer ein paar wirre Zeichen mit angehängt.
Naja, hier mal der Quellcode:
void CTextverarbeitungDlg::OnDateiOpen()
{
// TODO: Fügen Sie hier Ihren Befehlsbehandlungscode ein.
UpdateData(TRUE);
CFileDialog ldFile(TRUE);
CString m_strFileName;
CString strString;
CString strFileIn;
char str[50];
// Standarddialogfeld öffnen
if (ldFile.DoModal() == IDOK)
{
m_strFileName = ldFile.GetPathName(); // Dateipfad holen
}
strFileIn = m_strFileName;
// Datei öffnen
CFile filein(strFileIn, CFile::modeRead );
// Datei lesen
while (filein.Read(str,sizeof(str)))
{
m_strLesen = str;
UpdateData(FALSE) ; // Dialogfeld aktualisieren
};
filein.Close();
}
...und hier die Ausgabe:
Erste Zeile.
Zweite Zeile.
ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌp™5
Warum diese dritte Zeile?
Problem durch zuweisung von m_strLesen = str ?
Kann mir jemand helfen?
WinXP
Visual Studio
MFC-Anwendung mit Assistenten
-
Hallo,
du musst das Textende mit Null kennzeichen, sonst wird womöglich der ganze Buffer (50 Zeichen) verwendet, obwohl der eingelesen Text vielleicht kürzer ist. Daher kommen die kryptischen Zeichen bei der Ausgabe. Da die Datei auch länger als 50 Zeichen sein könnte, solltest du das eingelesene Stück an deine Ausgabevariable anhängen und "UpdateData()" nach der Schleife ausführen:
Code cpp:1 2 3 4 5 6 7 8 9
UINT nRead; while( (nRead = filein.Read(str,sizeof(str))) ) { str[nRead] = '\0'; // Nullzeichen für Textende m_strLesen += str; }; UpdateData(FALSE) ; // Dialogfeld aktualisieren
Der Quellcode wird übrigens deutlich lesbarer, wenn du ihn innerhalb von Codetags einfügst: [c]...[/c] bzw. [cpp]...[/cpp]. Bitte beim nächsten Mal daran denken.
Gruß
MCoder"The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
--- Larry Wall
-
15.10.07 17:51 #3
- Registriert seit
- Sep 2007
- Beiträge
- 6
Hallo,
vielen Dank für die schnelle Antwort, klappt jetzt super.
Gruß
Ben.
Ähnliche Themen
-
VC++,Inhalt einer Textdatei in Eingabefeld anzeigen?
Von bendorphin im Forum C/C++Antworten: 5Letzter Beitrag: 20.09.07, 21:19 -
Inhalt einer Textdatei sortieren
Von d4kine im Forum .NET DatenverwaltungAntworten: 3Letzter Beitrag: 07.01.07, 23:49 -
Inhalt einer Textdatei in Textfeld anzeigen (vorläufiger Titel)
Von green_phanta im Forum Flash PlattformAntworten: 2Letzter Beitrag: 22.11.06, 17:02 -
Mit Inhalt einer Textdatei Rechnen ?
Von Corefice im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 22.01.05, 22:09 -
Inhalt einer Textdatei löschen?
Von michischmuki im Forum PHPAntworten: 3Letzter Beitrag: 30.04.04, 01:47





Zitieren
Login






