NukeBoards

Pomoc - [TGF] Listy ciąg dalszy-sortowanie...czy to jest możliwe?

Wos209 - 20-06-2007, 19:03
: Temat postu: [TGF] Listy ciąg dalszy-sortowanie...czy to jest możliwe?
List object

Mam 2 listy w 1 są wartości słowne(aaa,bbb,ccc) w 2 liczbowe np:(1,2,3)
Czy da się to posortować?
W 1 liście alfabetycznie a w 2 numerycznie?
Slawo - 20-06-2007, 19:51
:
Bardzo proste,

Lista ma właściwość sort - odhacz to,

ładujesz z pliku dane do lista, albo wpisujesz (z odhaczonym sortowaniem) a potem fast loopem kopiujesz linijka po linijce to do drugiej listy, albo zapisujesz to w nowym pliku - już posortowane itd.

Nie chce mi się robić przykładu.
Wos209 - 21-06-2007, 15:34
:
Nie kminie...

Przydałby się przykład :-P
Slawo - 21-06-2007, 16:53
:
Nie wiem czy o to Ci chodziło, bo te dane 1,2,3 sortują się tak jak aaa, bbb, ccc, nie rosnąco a tak jakby to był string. Gdyby miały być rosnąco to by trza chyba użyć inne rozszerzenie co ma rozróżnianie wartości.

www.zagrajmy.superhost.pl/online/file/lista.gam
Wos209 - 21-06-2007, 20:26
:
Ale chodzi o to żeby sortowało się synchronicznie w 2 listach...

czyli 1 lista wg. drugiej albo odwrotnie...
Slawo - 21-06-2007, 21:26
:
Chyba wiem o co Ci chodzi, masz np. takie coś:

23. cccc
1. aaa
45.dddd
2. bbb

I po posortowaniu wg. liter ma być:

1.aaa
2.bbb
23.cccc
45.dddd

To jest do zrobienia, ale w MMF, bo lista w MMF ma Find String i Find String Exact.
Masz tekst w LISTA i cyfry w LISTA 2.

Jak wrzucisz linie tekstowe z LISTA do ustawionej na sortowanie LISTA 3 - to się posortują.
W następnym zdarzeniu robisz dodaj do LISTA 4 kolejne linie, linie z cyframi z LISTA 2, ale o numerach linii z LISTA 2 takich, jaki numer ma linia w LISTA, gdzie tekst w LISTA jest EXACT jak w kolejnej sprawdzanej linii z LISTA 3.

Skomplikowane ? Pewnie tak,a le jest do wyklikania bo to robiłęm wielokrotnie w np. Multi Testerze Edukatorze. Przykłądu naprawdę nie zrobię bo nie chce mi się.

[ Dodano: 21-06-2007, 19:52 ]
A udało mi się zrobić animacje do najnowszej mojej gry to masz przykłada

www.zagrajmy.superhost.pl/online/file/listaMMF.cca
Wos209 - 22-06-2007, 15:07
:
Wielkie dzięki :-P Big thx...

3 punkty pomógł for you :biggrin:

[ Dodano: 22-06-2007, 14:28 ]
Za szybko Ci podziękowałem....bo nie umiem przerobić tego na cyfry(sortowanie wg.liczb)

bo niby wszystko ok ale jest takie coś:
1
11
2
35
55
70
dżamper - 22-06-2007, 15:48
:
Może zamiast 1 i 2 daj coś, żeby było 01 i 02...
Slawo - 22-06-2007, 16:40
:
Wos209 napisał/a:
bo niby wszystko ok ale jest takie coś:
1
11
2
35
55
70


szybko kompinuję:

przed wszelkim sortowaniem dodaj do każdej linii z kolumny cyfr po jednej literce z lewej, gdy cyfra mniejsza od 10 - dodaj "a", a gdy większa lub równa 10 i mniejsza od 100 - "b" itd. Potem przerzuć to do kolumny z sortowaniem (tej 3 lub 4) - będzie

a1
a2
b11
b35.

Przerzuć to do LISTY bez sortowania,
potem string parserem w każdej linii odetnij pierwszą literkę (znak) z lewej a dalej ... już wiesz :D

[ Dodano: 22-06-2007, 16:30 ]
No to tradycyjnie masz przykłąda :D

www.zagrajmy.superhost.pl...e/listaMMF2.cca

to szukanie w lista jako EXACT ma taki kod


Kod:
dodaj linię - List Line Text$( "lista", FindStringExact( "lista 2", List Line Text$( "lista 4", Global Value B ), Global Value B ) )

globalna B to kolejna sprawdzana linia

lista ma słowa, lista 2 cyfry, lista 4 posortowane liczby wg. schematu dodaj a gdy liczba sprawdzana <10, b gdy liczba spr. <100 i >10 itp.


Kod:
dodaj linię do lista tymczasowa - "a" + List Line Text$( "lista 2", Global Value C )


Z tego jest wycinana pierwsza literka (znak" string parserem:

Kod:
rightstr$( "String Parser", length( "String Parser" ) - 1 )

uprzednio wrzucone jako źródło do parsera tekst z kolejnej linii w Lista tymczasowa z sortowaniem. A potem szukamy EXACTem - patrz wyżej.
Lista tymczasowa ma sortowanie a inne nie.
Wos209 - 22-06-2007, 19:49
:
Wszystko chodzi, dzięki... :-P
Slawo - 22-06-2007, 20:11
:
Jeszcze tylko dorzucę, że może być błąd, jeśli sortując po liczbach będą dwie takie same liczby dla dwóch różnych słów (np. 34-AS, 34-BOSS) a sortując po słowach dwia takie same słowa i dwie różne liczby (aaa-123, aaa-456) - bo wtedy numer linii zostanie wybrany losowo jeden z dwóch.

Ale ... jak będzie taki problem to sobie trzeba zaradzić ... jak w powyższych kompinacyjach :D
Minty - 22-06-2007, 20:28
:
Żeby uniknąć problemu z różnicą 1 a 001 (np.) można po prostu dodać 1000 (lub inną liczbę poza zasięgiem wpisywanych), np. zamiast:
1
10
2
25

Będzie:
1001
1002
1010
1025
(później możesz tą liczbę odjąć :P )

Sortowanie można zrobić tak:
Do listy T(ymczasowej) z sortowaniem wrzucasz elementy o składzie:
element listy A + "jakiś znak rozdzielający" + element listy B
- sortuje wtedy wg elementów listy A. Zamień kolejność (B|A), aby sortowało wg B.
Po zakończeniu tej procedury czyścisz listy A i B, a następnie dodajesz do nich kolejne elementy, które uzyskasz rozdzielając kolejne elementy listy T (String Parserem). Ilość elementów A i B musi być taka sama.

Bezproblemowo działa w TGF: http://www.romanx.kosa.net.pl/down/ssl.zip
Slawo - 22-06-2007, 22:20
:
RomanX napisał/a:
Bezproblemowo działa w TGF: http://www.romanx.kosa.net.pl/down/ssl.zip


Mi nie działa, użyłeś jakiegoś starego parsera i pod nim jest bug, możesz dać linka do niego ?
Minty - 22-06-2007, 22:29
:
To ten z NS:
http://www.romanx.kosa.ne.../ext_parser.zip

Jeśli użyłem starego parsera to daj linka do nowszego, bo strona producenta nie działa i w ogóle (ale to już na PW).
Slawo - 22-06-2007, 22:51
:
Nie wiem, i demo z Clickteam TGfa, i nie demo z tym parserem z Nukesoft w tym przykładzie nie działa mi. GFact wygenerował błędy i zostanie zamknięty.