005
08.05.2006, 11:31 Uhr
0xdeadbeef
Gott (Operator)
|
Das hier ist die Holzhammer-Methode: Datei in einen String einlesen, dann darin suchen und das dazwischen ausgeben. Kann bei großen Dateien aber unpraktisch sein.
C++: |
#include <algorithm> #include <fstream> #include <iostream> #include <iterator> #include <string>
int main(int argc, char *argv[]) { if(argc != 4) return -1;
std::ifstream in(argv[1]);
in.unsetf(std::ios::skipws);
std::string start_mark(argv[2]); std::string end_mark(argv[3]); std::string buf;
std::copy(std::istream_iterator<char>(in), std::istream_iterator<char>(), std::back_inserter(buf));
std::string::size_type start_pos = buf.find(start_mark) + start_mark.size(); std::string::size_type end_pos = buf.find(end_mark, start_pos);
std::copy(buf.begin() + start_pos, buf.begin() + end_pos, std::ostream_iterator<char>(std::cout, "")); }
|
Das Programm hier nimmt als ersten Parameter die Datei, als zweiten das startwort und als dritten das endwort entgegen, das kann aber auch fest eingedrahtet werden. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |