![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 16.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Cześć
Nie wiem jak rozwiązać taki problem. Mam tabelę w bazie danych, w której kolejne rekordy mają takie przykładowe wartości: 1. B B C A D A B C A C 2. A B C A B C D A B A 3. A C D B A A B A C C Teraz potrzebuję pobrać taki rekord i przetworzyć go następująco. Liczę, które miejsce w szeregu zajmuje konkretna wartość, np. "A", i zapisuję wynik. Następnie zeruję licznik i liczę dalej do kolejnego wystąpienia "A" i zapisuję wynik. Jeśli ostatni ciąg kończy się daną wartością, dopisujemy 0 (brak kolejnych wartości). W efekcie powinienem dla podanych przykładów otrzymać takie wyniki: 1. 4 2 3 1 ("A" było czwarte, potem drugie, potem trzecie a następnie wystąpił ciąg niezakończony wartością "A" o długości 1 - musi być jakoś wyróżniony) 2. 1 3 4 2 0 3. 1 4 1 2 2 Prawdę mówiąc, nie wiem jak się do tego zabrać. Nie wiem czy jest jakaś funkcja, która coś takiego zrobi. Jedyne co przyszło mi do głowy to policzyć miejsca, na których "A" występuje i odejmować je od siebie. Czyli dla rekordu 2 działałoby to tak: "A" jest 1, 4, 8 i 10. Długość ciągu = 10. 10 - 10 = 0 ("A" jest ostatnie) 10 - 8 = 2 8 - 4 = 4 4 - 1 = 3 1 - 0 = 1 Otrzymuję 0 2 4 3 1 i odwracam sobie do 1 3 4 2 0. Niestety nie wiem jak to wykonać. Pozdrawiam |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował CuteOne 21.11.2013, 14:18:21 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 16.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za szybką odpowiedź. Sprawdziłem ale niestety podaje zły wynik. Podaje o jedną serię mniej a te począwszy od drugiej powiększa o 1. Muszę się temu dokładnie przyjrzeć i może uda mi się to wykorzystać.
Ten post edytował marekdominikowski 21.11.2013, 14:48:45 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Usuń "+ 1"
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 16.11.2013 Ostrzeżenie: (0%) ![]() ![]() |
Już widzę czego brakuje!
Ten licznik $k należało zwiększyć o 1 po znalezieniu "a", dodać sprawdzanie czy znak inny niż "a" nie jest przypadkiem ostatni i oprócz wstawienia 0 wpisać też długość ostatniej serii. Wielkie dzięki! Bardzo mi pomogłeś! Ten post edytował marekdominikowski 21.11.2013, 16:16:18 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:47 |