Forum strony www.multipasko.pl [Regulamin]


Dodaj wpis w tym temacie
Spis tematów
Login:

Hasło:
Strona: 1 2 ... 534 535 536 ... 560 561
Wyślij wiadomość do admina

Przewiń wpisy ↓

moje ... oprogramowanie

2025-02-04 (16:50)

status 777ch
Data rejestracji: 2005-11-07
Ilość postów: 23087

1386
wpis nr 1 551 337
[ CZCIONKA MONOSPACE ]

Pierwsza procedura to pierwszy arkusz od Ciebie
pierwszy pomysł adresowania…

druga procedura to tylko option explicit zamiast base1
z ostatnim rozwiązaniem adresowania
u mnie to dla Westa 10s szybciej na korzyść ostatniego adresowania
ale option explicit

2025-02-04 (16:54)

status 777ch
Data rejestracji: 2005-11-07
Ilość postów: 23087

1386
wpis nr 1 551 338
[ CZCIONKA MONOSPACE ]

adresy(L4, 4) - adresy(L5, 5) - adresy(L6, 6) - adresy(L7, 7), 1) = 1
wklejam koniec….
tu jest różnica
i to option explicit

--- wpis edytowano 2025-02-04 16:55 ---

2025-02-04 (16:59)

status fair_play
Data rejestracji: 2016-05-12
Ilość postów: 8971

14865
wpis nr 1 551 340
[ CZCIONKA MONOSPACE ]

Nie wiem czy "poprawiałeś" moją ostatnią wersję. Chyba nie, bo u mnie jest do Case 10, a u Ciebie w Option Explicit deklaracje zmiennych kończą się na 7.

U mnie Case 7 wygląda tak:

Case 7
sprawdzane = "siódemki:"
For y = 1 To zakładów
For x1 = 1 To skreśleń - 6
l1 = zakłady(y, x1)
For x2 = x1 + 1 To skreśleń - 5
l2 = zakłady(y, x2)
For x3 = x2 + 1 To skreśleń - 4
l3 = zakłady(y, x3)
For x4 = x3 + 1 To skreśleń - 3
l4 = zakłady(y, x4)
For x5 = x4 + 1 To skreśleń - 2
l5 = zakłady(y, x5)
For x6 = x5 + 1 To skreśleń - 1
l6 = zakłady(y, x6)
For x7 = x6 + 1 To skreśleń
l7 = zakłady(y, x7)
braki(adresy(l1, 1) - adresy(l2, 2) - adresy(l3, 3) - adresy(l4, 4) - adresy(l5, 5) - adresy(l6, 6) - adresy(l7, 7), 1) = 1
Next
Next
Next
Next
Next
Next
Next
Next

--- wpis edytowano 2025-02-04 17:04 ---

2025-02-04 (17:16)

status 777ch
Data rejestracji: 2005-11-07
Ilość postów: 23087

1386
wpis nr 1 551 341
[ CZCIONKA MONOSPACE ]

Ja porównałem pierwszą wersję adresowania
z ostatnim pomysłem z else
jaki wstawiłeś na forum
tylko pierwszą wersję z base1
do ostatniego pomysłu ale option explicit
którą Ci podesłałem na maila.

Tyle…
2025-02-04 (21:47)

status fair_play
Data rejestracji: 2016-05-12
Ilość postów: 8971

14865
wpis nr 1 551 390
[ CZCIONKA MONOSPACE ]


777ch>
Jak zadeklarować tablicę jako PUBLIC nie znając jej UBound?
2025-02-04 (23:01)

status MultiTest
Data rejestracji: 2020-08-05
Ilość postów: 6561

16235
wpis nr 1 551 412
[ CZCIONKA MONOSPACE ]

Public Unikaty () As Integer (dla VBA)

potem instrukcja REDIM.

Można dynamicznie zwiększyć tablicę o kolejny element co może być bardziej optymalne

--- wpis edytowano 2025-02-04 23:10 ---

2025-02-04 (23:30)

status MultiTest
Data rejestracji: 2020-08-05
Ilość postów: 6561

16235
wpis nr 1 551 419
[ CZCIONKA MONOSPACE ]

Jeżeli powiększać rozmiar zadeklarowanej pustej tablicy kolejnymi elementami tak jak to jest przy instrukcji SetLength to w VBA można spróbować tak:

DIM NewSize as integer
Newsize=UBound(Unikaty) + 1
Redim Preserve Unikaty(1 To newSize)

i dodać nowy element :
Unikaty(newsize) =123;

Powinno zadziałać...

...Było nie do mnie ale 777ch chyba potwierdzi.

--- wpis edytowano 2025-02-04 23:34 ---

2025-02-05 (00:19)

status 777ch
Data rejestracji: 2005-11-07
Ilość postów: 23087

1386
wpis nr 1 551 422
[ CZCIONKA MONOSPACE ]

hej

o tej porze to się śpi

przykład w Twoim module

Option Base 1
Public adresy()
Public Sub pokazbraki()
Cells(1, 2) = adresy(1, 1)
End Sub

'itd itd
Sub sprawdź()

'itd.............................

===========================


deklaracja zmiennej czy tablicy
lub też procedury ,powoduje że zmienna,czy tablica czy procedura
sa widziane w całym projekcie
a nie tylko w jednym module

stąd po kliknięciu w przycisk
pod którym będzie przykładowa procedura o nazwie Sub pokazbraki()
-->Cells(1, 2) = adresy(1, 1)
wskoczy csn do [b1]czyli jeden adres z tablicy adresy
ale!! musi być [coś] najpierw w tej tablicy








czasem to stosowałem

Public Sub scrOF()
Application.ScreenUpdating = False
End Sub
Public Sub scrON()
Application.ScreenUpdating = True
End Sub
=====================================
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'For 32 Bit Systems
Sub pary_snaiper_test_visualny()

For cof = 50 To 1 Step -1
Arkusz31.Cells(1, 6) = cof * 10
Zmienianie
oczekiwanie_pary_pierwsze_snaiper_1w2
Sleep 5000 'delay in milliseconds
oczekiwanie_pary_snaiper_1w2
Sleep 5000 'delay in milliseconds
Next cof
End Sub

--- wpis edytowano 2025-02-05 00:21 ---

2025-02-05 (00:27)

status 777ch
Data rejestracji: 2005-11-07
Ilość postów: 23087

1386
wpis nr 1 551 423
[ CZCIONKA MONOSPACE ]

fair_play

Czyżbyś chciał uzyskać [resultat globalny]
czyli wynik z kilku obliczeń
dostępnych za pomocą deklaracji public

po zakończonych kilku procesach obliczeń ?


dobrej nocki

--- wpis edytowano 2025-02-05 00:27 ---

2025-02-05 (08:57)

status 777ch
Data rejestracji: 2005-11-07
Ilość postów: 23087

1386
wpis nr 1 551 439
[ CZCIONKA MONOSPACE ]

a......tablica z nie znanym .... UBound

nie wiem jak to będzie w excelu
bo nigdy tak nie deklarowałem
w paskalu wiem ......

musisz testować.......

Użyj polecenia ReDim Preserve , aby rozszerzyć tablicę,
zachowując jednocześnie istniejące wartości w tablicy.

ReDim Preserve varArray(UBound(varArray) + 1)


np:

Option Base 1

Public Sub test_Redim_Preserve2()
Public a_braki()
Public tabbraki()
End Sub


Sub a_braki()

Dim arr() As Variant

ReDim arr(10, 10)
arr = Range("a1:b100")
ReDim Preserve arr(UBound(arr, 1), UBound(arr, 2) + 1)
ReDim tabbraki(UBound(arr, 1), UBound(arr, 2))
Cells(1, 10) = UBound(arr, 2)
Cells(1, 11) = UBound(arr, 1)
End Sub




tu:
ReDim Preserve arr(UBound(arr, 1), UBound(arr, 2) +1) '......to wynik=3
ReDim Preserve arr(UBound(arr, 1), UBound(arr, 2) ) '..........to wynik =2

--- wpis edytowano 2025-02-05 09:00 ---

2025-02-05 (11:43)

status fair_play
Data rejestracji: 2016-05-12
Ilość postów: 8971

14865
wpis nr 1 551 461
[ CZCIONKA MONOSPACE ]

777ch>

Problem rozwiązany.
Popełniłam błąd deklarując tabelę jako Public już wstępnie zwymirowaną.
Później stosując w procedurze Redim, pojawiał się błąd, że została już ona zwymiarowana.
Po prostu trzeba zadeklarować tablicę tylko tak: PUBLIC piątki(), a dopiero później w procedurze ją zwymiarować: ReDim piątki(piątek,1).

W trakcie procedury nie zmieniam rozmiaru tablicy więc Preserve niepotrzebne.

--- wpis edytowano 2025-02-05 11:45 ---

2025-02-05 (12:15)

status fair_play
Data rejestracji: 2016-05-12
Ilość postów: 8971

14865
wpis nr 1 551 464
[ CZCIONKA MONOSPACE ]

Czy pętlę:

For Each (element) In (grupa)
instrukcje
Next

da się zastosować do tabeli w pamięci jako (grupa)?
A jeśli tak to jak określić (element) tablicy wielowymiarowej?

--- wpis edytowano 2025-02-05 12:17 ---

2025-02-05 (15:35)

status 777ch
Data rejestracji: 2005-11-07
Ilość postów: 23087

1386
wpis nr 1 551 485
[ CZCIONKA MONOSPACE ]

fair_play

Nie wiem co robisz ........
jeśli masz tablicę wielowymiarową
i w dodatku public ,
to po zapełnieniu tablicy masz
pełny dostęp do danych zawartych w tablicy .

A na jakim etapie jesteś to nie mam bladego
dawno nie piszę w vba ,
choć wydaje mi się
że sporo pamiętam .

Zapewne wiesz .... o co Ci chodzi.
2025-02-05 (16:02)

status fair_play
Data rejestracji: 2016-05-12
Ilość postów: 8971

14865
wpis nr 1 551 486
[ CZCIONKA MONOSPACE ]


777ch>

Aktualnie sen z powiek spędza mi kwestia duplikatów.
Napisałeś:
"Liczba duplikatów nie załatwia sprawy. Bo dalej nie znasz ilości [4 czy 5 czy 6]..... które
nie występują w zbiorze."

Czy na pewno?

Jeśli np. w zbiorze C(40,10,5) rozłożysz wszystkie wiersze na piątki i usuniesz z nich duplikaty to odejmując od kombinacji 40 po 5 = 658008 liczbę piątek, które pozostały po usunięciu duplikatów otrzymasz liczbę braków.

Wtedy zbędne jest odnotowywanie piątek w tablicy CSN.

Kwestia czasu tego procesu to coś nad czym pracuję na bazie kolekcji.

2025-02-06 (10:54)

status 777ch
Data rejestracji: 2005-11-07
Ilość postów: 23087

1386
wpis nr 1 551 571
[ CZCIONKA MONOSPACE ]

fair_play
Aktualnie sen z powiek spędza mi kwestia duplikatów.
Napisałeś:
"Liczba duplikatów nie załatwia sprawy.
Bo dalej nie znasz ilości [4 czy 5 czy 6]..... które
nie występują w zbiorze."

Czy na pewno?


==================================
Liczba duplikatów to problem natury wielkości listy

Otóż lista ta nie mogła by przyrastać w wielki rozmiar
bo się sprzęt ..... powiedzmy sfajczy

istnieje bardzo szybkie rozwiązanie

indexof ()
Raportuje zerowy indeks pierwszego wystąpienia określonego łańcucha w łańcuchu wejściowym. Jeśli łańcuch wyszukiwania lub łańcuch wejściowy nie jest typu łańcuch , funkcja wymuszając rzutowanie wartości na łańcuch.

Metoda IndexOf zwraca lokalizację pierwszego znaku pierwszego wystąpienia podciągów. Indeks jest oparty na 0, co oznacza, że pierwszy znak ciągu ma indeks 0. Jeśli IndexOf podciąg nie zostanie odnaleziony, zwraca wartość -1.



mamy zadeklarowana tablicę
dynam_list_csn: array of string; //deklarujemy tablice dynamiczną typu string [255znaków]

musimy w procedurze wykonawczej zainicjować rozmiar tej tablicy zmienna=ilelinii

SetLength(dynam_list_csn,ilelinii);



if (dynam_list_csn[v_lista].IndexOf(csn[xxx])>-1)and(csn[xxx]<>'') then
w tym przypadku ten csn w tablicy pomocniczej
csn[xxx] już istnieje bo..... >-1 oznacza że jest na liście

if (dynam_list_csn[v_lista].IndexOf(csn[xxx])=-1)and(csn[xxx]<>'') then
w tym przypadku ten csn w tablicy pomocniczej
csn[xxx] jeszcze nie istnieje bo..... -1 oznacza że nie ma go na liście



jedno zapytanie i masz odpowiedź czy na liście unikatów jest
np. kod 1646492110120 [10-ka]

Jeśli nie ma to dopisujesz go na listę
ale zobacz na ten csn.

Taka lista musiała by być podczyszczana
ale ilości jakie na niej były ,musiały by być zliczane przed usuwaniem z listy.

Nie wiem ile to może trwać
podejrzewam że długo ........ raczej
to kwestia ilości możliwości --> maxcsn

niestety
In VBA IndexOf does not exist.
czyli ......... nie zastosujesz w excelu..............




--- wpis edytowano 2025-02-06 10:54 ---

2025-02-06 (13:28)

status 777ch
Data rejestracji: 2005-11-07
Ilość postów: 23087

1386
wpis nr 1 551 588
[ CZCIONKA MONOSPACE ]

PYTANIE
do kolegi kleszka

Jakie największe [v] wraz z najwyższym [k]
możesz ustawić i sprawdzić gwarancję.
i przy okazji .........jaki masz tam limit [b]

Bo nie pamiętam

pozdrawiam
2025-02-06 (13:38)

status fair_play
Data rejestracji: 2016-05-12
Ilość postów: 8971

14865
wpis nr 1 551 589
[ CZCIONKA MONOSPACE ]

777ch>

Powoli zaczynam się w tym gubić.
Czy możesz opisać słowami jak w trakcie realizacji programu, np. "korelacje" korzystasz z procedury adresowej?
Obliczasz ilość braków na starcie programu, ale jak korzystasz z niej w trakcie?

Jedno zasadnicze pytanie"
Interesuje Cię ILOŚĆ czy JAKOŚĆ unikatów?

--- wpis edytowano 2025-02-06 13:42 ---

2025-02-06 (14:01)

status MultiTest
Data rejestracji: 2020-08-05
Ilość postów: 6561

16235
wpis nr 1 551 596
[ CZCIONKA MONOSPACE ]

"Jakie największe [v] wraz z najwyższym [k]
możesz ustawić i sprawdzić gwarancję.
i przy okazji .........jaki masz tam limit [b]

777ch
czy chodzi Ci o pobawienie się kodem aby poznać możliwią najwyższą wydajność w kodzie przy maksymalnych v,k ?
2025-02-06 (14:04)

status MultiTest
Data rejestracji: 2020-08-05
Ilość postów: 6561

16235
wpis nr 1 551 597
[ CZCIONKA MONOSPACE ]

coś takiego na przykład

gwaracja dla 10 dla systemu z 10000 zakładów z 40 liczb v 80
2025-02-06 (14:05)

status kleszek
Data rejestracji: 2006-05-27
Ilość postów: 4983

2047
wpis nr 1 551 598
[ CZCIONKA MONOSPACE ]

777ch, parametry programu Wheeling System Validator są takie jak na screenie, w tym że :
ilość bloków, które program przyjmuje zależy pozostałych parametrów rozpisu. Screen pokazuje (chyba) max. parametrów dla V=90 ale tego tak naprawdę nie jestem pewien


| Dodaj wpis w tym temacie | Spis tematów | Wyniki lottoStrona: 1 2 ... 534 535 536 ... 560 561
Wyślij wiadomość do admina