Witam, nie wiem, czy do końca dobrze zdefiniowałam temat. Mam do napisania program, który będzie wykonywał sortowanie poli-fazowe (zewnętrzne). W sortowaniu biorą udział trzy pliki tekstowe. W pierwszym znajduje się skończona ilość liczb, każda w nowym wierszu. Program najpierw dzieli te liczby do dwóch pozostałych plików według liczb Fibonacciego (np. w wejściowym było 8, więc dzieli to na 5 liczb do drugiego pliku i 3 liczby do trzeciego). Następnie sprawdza, który plik jest pusty (czyli pierwszy w tym przypadku). Wczytuje po jednej z liczb z plików do odczytu, sortuje je i zapisuje posortowane w jednym wierszu w pliku wyjściowym (pierwszym w tym przypadku) ze spacją pomiędzy nimi. Trwa to aż do wyczerpania liczb w którymś z plików. Następnie zmienia się status pliku, który się skończył na plik do zapisu, a tego, który poprzednio był do zapisu na do odczytu. Operacje takie trwają aż do całkowitego posortowania wszystkich elementów.
przykład
plik1
9
4
8
3
7
5
1
2
plik2
9
4
8
3
7
plik3
5
1
2
plik1
5 9
1 4
2 8
plik3
3 5 9
1 4 7
itd.
Niestety mam duży problem z zapamiętywaniem pozycji w pliku do odczytu - program uznaje ten plik za zamknięty, bo StreamReader jest otwarty lokalnie (chyba). Otwarcie globalne nie wchodzi w grę, bo wtedy nie będzie można zapisywać do tego pliku. Proszę o pomoc, nie mam już pomysłów co robić. Z góry dziękuję za wszelkie wskazówki. Zdaję sobie sprawę, że kod nie jest zoptymalizowany, za co przepraszam.
// Plik w wersji VS 2010