T
Tatti
Hallo,
ich möchte gerne den cursor an den Anfang einer Zeile setzen ( innerhalb einer Datei ).
Leider habe ich keine Ahnung wie man dies realisieren könnte. Ich wäre für eure Hilfe wirklich sehr dankbar.
Außerdem gibt es noch ein zweites Problem:
Bei dem Programm handelt es sich um ein dictionary.
Es wird ein Wort gesucht und 5 Übereinstimmungen sollen zurückgelliefert werden.
Auf diesem Screenshot könnt ihr beide Probleme sehen ( Das Problem mit dem Anfang der Zeile bzw. Cursorposition und das Problem mit dem überspringen des 1. Ergebnisses ).
Hier gehts zum Screenshot
Beim jetzigen code bekomme ich alleridings 5 mal das gleiche Ergebnis zurückgeliefert, was ja auch logisch ist, weil das erste Ergebnis nicht überprungen wird beim nächsten Durchlauf.
Wie kann ich nun das 1. Ergebnis überspringen und nach der nächsten Übereinstimmung suchen?
Vielen Dank für eure Bemühungen.
Hier der code:
ich möchte gerne den cursor an den Anfang einer Zeile setzen ( innerhalb einer Datei ).
Leider habe ich keine Ahnung wie man dies realisieren könnte. Ich wäre für eure Hilfe wirklich sehr dankbar.
Außerdem gibt es noch ein zweites Problem:
Bei dem Programm handelt es sich um ein dictionary.
Es wird ein Wort gesucht und 5 Übereinstimmungen sollen zurückgelliefert werden.
Auf diesem Screenshot könnt ihr beide Probleme sehen ( Das Problem mit dem Anfang der Zeile bzw. Cursorposition und das Problem mit dem überspringen des 1. Ergebnisses ).
Hier gehts zum Screenshot
Beim jetzigen code bekomme ich alleridings 5 mal das gleiche Ergebnis zurückgeliefert, was ja auch logisch ist, weil das erste Ergebnis nicht überprungen wird beim nächsten Durchlauf.
Wie kann ich nun das 1. Ergebnis überspringen und nach der nächsten Übereinstimmung suchen?
Vielen Dank für eure Bemühungen.
Hier der code:
Code:
#include <iostream>
#include <fstream>
#include <string>
#include <strstream>
using namespace std;
//Global Vars
//start
int main()
{
//Vars
int length;
int currposition;
char * buffer;
//Open File
ifstream datei;
datei.open ("dict.txt", ifstream::in | ifstream::out | ifstream::binary);
//Get length of file
datei.seekg (0, ios::end);
length = datei.tellg();
datei.seekg (0, ios::beg);
//fill buffer
buffer = new char [length];
datei.read(buffer, length);
// ONLY FOR DEBUGGING
//cout << "\nComplete wordlist from buffer: \n" << buffer << "\n";
//Fill string with content from buffer
string wordlist(buffer);
// ONLY FOR DEBUGGING
//cout << "\nComplete wordlist from string: \n" << wordlist << "\n";
//Search
//enter and declare query
string query;
cout << "Please enter a german word: ";
cin >> query;
//set counter, start loop
int counter;
counter = 0;
do
{
//initialize counter
counter++;
//search string for query and return position
string::size_type position = wordlist.find(query);
cout << "\nWord found at: " << position;
//Cursor to position
datei.seekg (position, ios::beg);
// ONLY FOR DEBUGGING ---> Tell position
currposition = datei.tellg();
cout << "\nCurrent read position: " << currposition << "\n\n";
//READ LINE
char line[90000];
datei.getline(line,90000);
//ONLY FOR DEBUGGING
cout << line;
//NOT WORKING - IGNORE! declaring position2
//int position2 = position + 10;
//wordlist.erase(0,position2);
//end loop, check condition
}while(counter < 5);
return 0;
}