ERLEDIGT
JA
JA
ANTWORTEN
9
9
ZUGRIFFE
850
850
EMPFEHLEN
-
Hallo Forum,
ich benutze VC++ 2008. Nun habe ich ein für andere wahrscheinlich übliches, aber auch etwas "speziales" Problem.
Der Wunsch ist, daß das Programm sucht ein Stichwort in ner .txt Datei. Dazu möchte ich die Methode Find von Cstring verwenden. Daher kommt die Folgefrage, wie ich zuerst den Inhalt der Datei in Cstring reinschreiben kann.
Ich hab folgendes probiert:
Leider geht es nicht.Code :1 2 3 4 5 6 7 8 9 10
CString c; fstream f; int size = c.GetLength(); f.open("Filename.txt", ios::in); f.read(c.GetBuffer(size), size); cout << c << endl; c.ReleaseBuffer(); f.close();
Hilfe oder Anregungen werden sehr gefreut!
Gruß
-
02.07.09 12:45 #2
Moin,
was genau geht denn nicht ? ? ?
Etwas detaillierte Angaben wären sehr hilfreich !!
Aber zwei Dinge sind mir aufgefallen:
(a) ich würde statt "CString" besser "string" nehmen !
(b) Du initialisierst Dein "nsize" mit der Länge Deines CStrings - dieser ist aber zu dem Zeitpunkt weder initialisiert noch gefüllt !
Ich habe bei mir in älteren Code-Teilen dies gefunden, was Dir vielleicht weiterhilft:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13
string in; ifstream m_fs( "Filename.txt" ); in.erase(); in.reserve( m_fs.rdbuf()->in_avail() ); char c; while( m_fs.get(c) ) { if( in.capacity() == in.size() ) { in.reserve(in.capacity() * 3); } in.append(1, c); }
Gruß
KlausEs ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
Code cpp:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#include <string> #include <fstream> bool saveTextToString(const char* Path, std::string& Buffer){ std::string Temp; Temp.clear(); Buffer.clear(); std::ifstream fin(Path); if(!fin.good()) return false; while(std::getline(fin, Temp)){ Buffer.append(Temp); Buffer.append(std::endl); } return true; }
Ungetestet, aber sollte Funktionieren"2 Dinge sind Unendlich, die Menschliche Dummheit und das Universum, bei 2tem bin ich mir noch nicht ganz sicher", Albert Einstein
"Wenn man keine Ahnung hat, einfach mal Fresse halten", Dieter Nuhr
-
-
Danke schon mal.
Hier Fehlermeldungen nach Kompilieren:
Code :1 2 3 4 5 6 7 8
Error 5 error C2228: left of '.clear' must have class/struct/union d:\Gao\Visual Studio 2008\C++ Projects\BaiduTest\BaiduTest\BaiduTest.cpp 66 Error 6 error C2228: left of '.clear' must have class/struct/union d:\Gao\Visual Studio 2008\C++ Projects\BaiduTest\BaiduTest\BaiduTest.cpp 67 Error 9 error C2780: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem)' : expects 3 arguments - 2 provided d:\Gao\Visual Studio 2008\C++ Projects\BaiduTest\BaiduTest\BaiduTest.cpp 71 Error 7 error C2784: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &)' : could not deduce template argument for 'std::basic_istream<_Elem,_Traits> &' from 'std::ifstream' d:\Gao\Visual Studio 2008\C++ Projects\BaiduTest\BaiduTest\BaiduTest.cpp 71 Error 8 error C2784: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &)' : could not deduce template argument for 'std::basic_string<_Elem,_Traits,_Alloc> &' from 'System::String ^' d:\Gao\Visual Studio 2008\C++ Projects\BaiduTest\BaiduTest\BaiduTest.cpp 71 Error 4 error C3149: 'System::String' : cannot use this type here without a top-level '^' d:\Gao\Visual Studio 2008\C++ Projects\BaiduTest\BaiduTest\BaiduTest.cpp 65 Error 3 error C3699: '&' : cannot use this indirection on type 'System::String' d:\Gao\Visual Studio 2008\C++ Projects\BaiduTest\BaiduTest\BaiduTest.cpp 63 Error 10 fatal error C1903: unable to recover from previous error(s); stopping compilation d:\Gao\Visual Studio 2008\C++ Projects\BaiduTest\BaiduTest\BaiduTest.cpp 71
-
Ich frage anders:
Wie kann ich in VC++ 2008 nach einem Wort z.B. "Er" in einer .txt Datei suchen?
Ich hab zwar ge
t, aber hat mir wenig geholfen.
LG
-
03.07.09 13:54 #7
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Bsp:
GrußCode cpp:1 2 3 4 5 6 7 8 9 10
std::ifstream in("datei.txt"); std::istreambuf_iterator<char> cur(in), end; std::string text("suche"); std::istreambuf_iterator<char> res = std::search(cur, end, text.begin(), text.end()); if (res != end) { std::cout << "found!" << std::endl; }
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Danke euch allen für die Antworten.
Nun habe ichs schon geschafft, den Inhalt der Datei in einen String zu schreiben.
Eine weitere Aufgabe ist, ein Teilstring in dem geschriebenen String zu finden.
Es wird diskutiert hier:
http://www.tutorials.de/forum/c-c/34...ml#post1775735
-
-
27.07.09 11:28 #10
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
Ähnliche Themen
-
CString in CFile schreiben
Von Alex braucht Hilfe im Forum VisualStudio & MFCAntworten: 3Letzter Beitrag: 08.07.10, 09:03 -
[C#] Kanäle aus Stereo WAV Datei in je eine neue WAV Mono Datei schreiben
Von Webrat im Forum .NET Grafik und SoundAntworten: 2Letzter Beitrag: 12.02.08, 18:21 -
Aus Datei lesen und in eine andere Datei schreiben
Von Computerpinguin im Forum C/C++Antworten: 1Letzter Beitrag: 03.05.05, 14:29 -
viele errechnete werte sofort in datei schreiben oder sammeln und dann schreiben?
Von larss im Forum JavaAntworten: 4Letzter Beitrag: 25.04.05, 22:15 -
CList<CString,CString> list; einer Funktion übergeben ?
Von Indian im Forum C/C++Antworten: 15Letzter Beitrag: 26.10.04, 15:06





Zitieren

c++ std::search
Login






