[TP] Sortowanie pliku tekstowego ze stringami i liczbami


(Fruwon) #1

Witam,

dzisiaj mam taki problem.. Mianowicie mam plik tekstowy na wzór:

Chciałbym powyższe rekordy posortować przy użyciu turbo pascala i wyświetlić je już posortowane na ekranie. Generalnie nie miałbym problemu - stworzyłbym zwyczajną tablicę dwuwymiarową. Jednak występuje tu typ stringowy oraz byte. W związku z czym tablica - posiadająca określony typ - nie chce mi przyjmować moich danych. W związku z tym nie wiem jak posortować rekordy według liczb stojących przy wyrazach... :frowning: Jak dla mnie - masakra, choć prawda, iż niezbyt ostatnio myślę. Mimo wszystko do tej pory jakoś szło...


(Drobok) #2

Liczba to też znak :slight_smile: Ew dzielisz string wg spacji i konwertujesz pierwszą część na int :slight_smile:


(Fruwon) #3

Ciężko mi jakoś posortować to według znaku... A dzielenie stringa jest chyba dosyć bezsensowne #-o


(Tomek Matz) #4

@fruwon

Nie to drobok miał na myśli (a przynajmniej tak sądzę). String-i mają pozostać niezmienione. Masz jedynie wyciągnąć z każdego z nich liczbę. Tak jak na początku sugerowałeś możesz sobie zrobić tablicę dwuwymiarową o wymiarach [ilość string-ów] x 2. W każdym wierszu takiej tablicy pierwszy element to byłaby ta wyciągnięta liczba, a drugi element to byłby cały string. Załóżmy teraz, że masz zaimplementowane sortowanie bąbelkowe (bo najprostsze). W miejscu, gdzie jest porównywanie wartości, porównywałbyś pierwsze elementy tablicy (czyli liczby), a w miejscu gdzie jest przestawianie wartości, przestawiałbyś wartości pierwszego i drugiego elementu tablicy (czyli liczby i stringi). I to tyle. Da się to też zrobić bez tablicy dwuwymiarowej, ale będzie to mniej wydajne rozwiązanie.

@drobok

Liczba to na pewno nie jest znak.


(Drobok) #5

Rzeczywiście, cyfrę można uznać za znak, ale liczby już nie :slight_smile: