Sortowanie bazy danych. Brak idei, i mozliwe ze umiejetnsoci ;)

0

Baza wyglada tak:

123!321
@ AFGJ93 EWA KOT MT MECHANIKA
@ MAKT23 MAREK SZYMECZKO MATSTOS INFORMATYKA
@ KRLP23 WERONIKA SIKORKA GORNICTWA CHEMIA
@ 94JJG3 KRZYSZTOF LAM ARCHITEKTURY RYSUNEK
@ PRA321 IZA ZPRACOWNIKA BUDOWNICTWA BUDOWNICTWO
@ KRR234 MONIKA SLAT MATSTOS MATEMATYKA
@ KRQWJ94 JANUSZ KOT MT MECHANIKA
# 943-423-4234 MGR JAN NOWAK
# 4934-294-34 PROF ANNA MUCHA
123!321 - pliki logowania, nie zwracamy na nie uwagi w tym temacie ;)
@-przynaleznosc do studentow,
#-przynaleznosc do pracownikow.

Musze napisac dwie funkcje, SortujPracownikow() oraz SortujStudentow(). Powiedzmy że sortowanie będzie się odbywac wedlug nazwiska - sam dam rade zedytować odpowiednio pod NIP/NrIndeksu czy też wydział. Ma ktoś jakieś pomysły, gotowym kodem również nie pogardze ;)

0

Chodzi o to, że nie wiem w jaki sposób ominąć, a raczej posortować według znaczników @ i $. Oraz jeżeli już dojdzie do pominięcia ich jak skleić tekst - to przerasta moje obecne umiejetności i możliwości abstrakcyjnego myślenia.

Bo załóżmy ze baza się zmieni i będzie wygladać tak:
[code]
@ abc
@ bcd
$ fgh
@ afgh
$ jjgo
$ jgbe
@ fjnb
[/code]

Wtedy prosta algorytm sortujący na zakresie od wystąpienia @ do pierwszego $ nie zadziała :/

PS. zamieniłem hash na dolara, bo nawet w tagach code nie chcialo go wyswietlac ;)

0

czyli chcesz mieć główne sortowanie w/g typu, a każdą z grup posortowaną w/g nazwiska?

0

Tak, zalozmy ze uzywam funkcji Sort$();

wczesniej podana baza:
[code]
@ abc
@ bcd
$ fgh
@ afgh
$ jjgo
$ jgbe
@ fjnb
[/code]

wyglada nastepujaco:

[code]
@ abc
@ bcd
$ fgh
@ afgh
$ jgbe
$ jjgo
@ fjnb
[/code]

lub

[code]
@ abc
@ bcd
$ fgh
$ jgbe
$ jjgo
@ afgh
@ fjnb
[/code]

każde z tych rozwiazan jest satysfakcjonujace jako ze baze wypisuje z pliku linia po linii sprawdzajac czy linia zaczyna sie @ czy $. pierwsze wydaje sie latwiejsze w zaimplementowaniu jako ze mozemy podzielic baze na mniejsze bazy poczawszy od $ skonczywszy na pierwszym wystapieniu @.

0

nie rozumiem czemu są satysfakcjonujące, bo nie widzę, żeby coś tam było posortowane...

0

posortowane są linie ze znacznikiem $, maja być dwie funkcje sort$ oraz sort@, kazda z nich sortuje linie ktore zawieraja dany znak specjalny nietykajac drugiej

0

ok, jeśli dobrze rozumiem to globalne położenie i wzajemne przeplatanie poszczególnych grup jest nieistotne?

jeśli tak, to posortuj na początku w/g typu, a później odpowiednią "połówkę" bazy alfabetycznie
lub jeśli działasz na listach zrób dwie listy posortuj odpowiednią i połącz je

0

o faktycznie, dziwne ze na to nie wpadlem :D jak juz posortuje wg typu nie bedzie dalszego problemu, dzieki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1