Forum strony www.multipasko.pl [Regulamin]


Dodaj wpis w tym temacie
Spis tematów
Login:

Hasło:
Strona: 1 2 ... 343 344 345 ... 560 561
Wyślij wiadomość do admina

Przewiń wpisy ↓

moje ... oprogramowanie

2020-05-10 (17:54)

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

14865
wpis nr 1 291 870
[ CZCIONKA MONOSPACE ]

edi8>

Dziękuję Ci bardzo za wyjaśnienie, bo już myślałem, że Centralny System Nerwowy, który tutaj jest bardzo narażany
2020-05-10 (18:03)

status edi8
Data rejestracji: 2007-04-03
Ilość postów: 41774

2623
wpis nr 1 291 873
[ CZCIONKA MONOSPACE ]

fair_play, swego czasu trochę wokół CSN
się na forum dyskusji przewinęło np. w tym
wątku https://forum.multipasko.pl/n_viewtopic.php?id=2872&page=25
2020-05-10 (18:22)

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

14865
wpis nr 1 291 884
[ CZCIONKA MONOSPACE ]

edi8>

Czy Ty specjalnie podajesz mi linki do wpisów Mariusza, żeby narazić mój CSN ?
2020-05-10 (18:39)

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

14865
wpis nr 1 291 890
[ CZCIONKA MONOSPACE ]


kleszek>

Pisałeś, że masz Excela 2016. Ile przy tym masz pamięci i jaką maksymalnie wartość x możesz wpisać w deklaracji makro dim tablica(x) as byte, żeby nie odczytać "Out of memory"

Pytam bo w:

https://docs.microsoft.com/pl-pl/office/troubleshoot/excel/memory-usage-32-bit-edition-of-excel

jest taki fragment:

"Użytkownicy programu Excel, którzy regularnie pracują z dużymi, złożonymi arkuszami programu Excel, mogą korzystać z 64-bitowej wersji pakietu Office 2013, ponieważ 64-bitowe wersje aplikacji z systemem Windows mogą obsługiwać pamięć do 8 terabajtów (TB). "

Pozdrawiam
2020-05-10 (18:45)

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

2047
wpis nr 1 291 892
[ CZCIONKA MONOSPACE ]

Mam excela 64-bit. RAM-u 16GB
cyt. "Ile przy tym masz pamięci i jaką maksymalnie wartość x możesz wpisać w deklaracji makro dim tablica(x) as byte, żeby nie odczytać "Out of memory"

fair_play, jak mam to sprawdzić ?
2020-05-10 (18:56)

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

14865
wpis nr 1 291 895
[ CZCIONKA MONOSPACE ]

kleszek>

metodą prób.

stwórz proste makro:

sub test()

dim tablica(xxx) as byte

end sub

Jaką maksymalną wartość xxx możesz zapodać żeby przy uruchomieniu makra nie zabrakło pamięci.

--- wpis edytowano 2020-05-10 19:02 ---

2020-05-10 (19:02)

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

2047
wpis nr 1 291 899
[ CZCIONKA MONOSPACE ]

Sub test()

Dim tablica(999999999) As Byte

End Sub

więcej sie nie da, bo wyskakuje
Dim tablica(9999999990#) As Byte
compile error overflow
2020-05-10 (19:08)

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

14865
wpis nr 1 291 900
[ CZCIONKA MONOSPACE ]

a spróbuj z mnożnikiem np 999999999*10 bo może excel nie potrafi odczytac takich dużych liczb bez e do n np.

--- wpis edytowano 2020-05-10 19:09 ---

2020-05-10 (19:12)

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

2047
wpis nr 1 291 902
[ CZCIONKA MONOSPACE ]

Makro działa do Dim tablica(999999999 * 2) As Byte. Potem overflow

2020-05-10 (19:18)

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

14865
wpis nr 1 291 904
[ CZCIONKA MONOSPACE ]

999 999 999 * 2 to 1 999 999 998 czyli 2 TB więcej niż teoretycznie masz

a spróbuj w tym makro dodać taką linię tablica(999999999*2) = 255

przejdzie ?

--- wpis edytowano 2020-05-10 19:20 ---

2020-05-10 (19:27)

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

2047
wpis nr 1 291 905
[ CZCIONKA MONOSPACE ]

Przejdzie. .. Jest ok.

--- wpis edytowano 2020-05-10 19:32 ---

2020-05-10 (19:37)

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

14865
wpis nr 1 291 908
[ CZCIONKA MONOSPACE ]

A spróbuj z innym mnożeniem np 500 000 000 * 5
2020-05-10 (19:45)

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

2047
wpis nr 1 291 911
[ CZCIONKA MONOSPACE ]

Działa do tablica(399999999 * 5) = 255
2020-05-10 (19:45)

status sindbad
Data rejestracji: 2008-10-13
Ilość postów: 20532

3794
wpis nr 1 291 912
[ CZCIONKA MONOSPACE ]

1 999 999 998 czyli 2 GB!
2020-05-10 (19:56)

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

14865
wpis nr 1 291 917
[ CZCIONKA MONOSPACE ]

sindbad>

Oczywiście

To jak rozumieć to:

"Użytkownicy programu Excel, którzy regularnie pracują z dużymi, złożonymi arkuszami programu Excel, mogą korzystać z 64-bitowej wersji pakietu Office 2013, ponieważ 64-bitowe wersje aplikacji z systemem Windows mogą obsługiwać pamięć do 8 terabajtów (TB). "

--- wpis edytowano 2020-05-10 19:57 ---

2020-05-10 (20:03)

status sindbad
Data rejestracji: 2008-10-13
Ilość postów: 20532

3794
wpis nr 1 291 918
[ CZCIONKA MONOSPACE ]

Mogą.
2020-05-11 (15:37)

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

1386
wpis nr 1 292 163
[ CZCIONKA MONOSPACE ]

fair_play

wczoraj zrobiłem te wypisy dla 5,6 dla by faiplay
na bazie tych funkcji

liczbcovy_6(yw, brak);
liczbcovy_5(yw, brak);

trochę zmieniłem nazwy dla funkcji
ale wypisuje perfekt z limitem 35 000
błyskawicznie , nie będę pisał szczegółowo .


ale mam pomysł
zrobiłem testy
i jeśli program liczy i gmera
tylko w jednej linii....... to proces dostaje turbo prędkości

bo wtedy

For y := 1 To ilegen do begin

zmieniamy na

y := wskazana:

musielibyśmy na początku


wykonać jedno sprawdzenie
czyli
For y := 1 To ilegen do begin


i zapisać adresy
i to nie ma problemu

ale tez zapis startowy może być
--> maska[adr6]:= 1 ;

natomiast przy petli
buforującej tylko jedna linię
jest do wymyślenia sam proces
bo podczyszczać musimy adresy
dla konkretnej linni
a nie wszystkie
a nie mamy skojarzonych adresów dla konkretnej linii

jeśli to rozumiesz to może
spróbuj coś napisać.......
i przetestuj w excelu

Ja rozkopałem sporo
ale przywróciłem do stanu z wczoraj........
teraz to skompilowałem ponownie.
I muszę wyjść , bo jestem znowu spóźniony.

Koło 18-ej to sprawdzę ponownie
i wtedy wyślę ci link.

Rusz głową , aby inaczej skonstruować adres,by nie przyrosła pamięć
aby gwarancja sprawdzana to był stan bez jednej linni
+ stan w tej ........weryfikowanej....w której proces
dokonuje podmian.
2020-05-11 (17:55)

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

14865
wpis nr 1 292 187
[ CZCIONKA MONOSPACE ]

777ch>

Poruszam się w tym wszystkim po omacku, bo nie jest mi znany sposób podmiany.
Nie opisałeś go.

Pisałeś, że przy wyborze któregoś z wariantów wybierasz linie zawierające np 4 liczby z pierwszego na liście braku.
Tylko tyle wiem.

Jak wygląda sam proces podmiany ?
Potrafisz go opisać słowami nie stosując zbyt dużo skrótów myślowych ?
Bo ja nie wiem co w danym momencie masz na myśli.
2020-05-11 (20:48)

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

1386
wpis nr 1 292 223
[ CZCIONKA MONOSPACE ]

fair_play

Nie każ mi tłumaczyć wszystkiego

Przepraszam....znowu jestem
-->później
niż zakładałem.... dopiero usiadłem do kompa.

Wszystko sprowadza się do

zapełnienia adresów stanem startowym

czyli
1) sprawdzamy wszystkie linie
2) zapełniamy adresy
3 mamy gwarancję startową i ilość braków

zapełniamy tablicę braków
po to by je podstawiać ..... ew z losowymi...... nieważne

chodzi o to żeby w kolejnym etapie

czyli
etapie podmianki ze sprawdzaniem czy jest lepiej po podmianie czy gorzej
nie weryfikować wszystkich linii
według twojej procedury

a
weryfikować jedną linię ,na którą wskoczyliśmy '
bo ta zawiera segment z jakiejś szóstki brakującej

i teraz problem leży w tym
żeby mieć możliwość aktualizowania gwarancji
na bazie tylko jednej linni
bo adresy mamy zapełnione
ale.............
jeśli coś zmieniamy w linni ........
to znikają de fak to jedne szóstki a inne się tworzą
bo zmienia się całe sekwencja
a nie możemy bezpośrednio czyścić adresów tylko z jednej linni
bo nie znamy ich indeksów w masce .............

kpw ?

jeśli nawet w masce umieściłbyś zamiast maska[adr6]:= 1;
to adres linni czyli --> maska[adr6]:= linia ;

to bez problemu policzymy braki .........
If maska[yw] = 0 Then inc(brak);

ale gorzej z podczyszczeniem tych adresów -->maska[adr6]:= linia ;
choć pomysł taki właśnie miałem

zrozum
sprawdzanie gwarancji musi być takie by leciało szybko
a im mniej lini sprawdzamy tym poleci szybciej.......

tylko musimy podczyszczać adresy z linii do której wkraczamy
i gdzie zmieniamy......
aby potem policzyć na końcu



For yw := 1 To adr0 do begin
If maska[yw] = 0 Then inc(brak);
if (bestbrak<brak-1)and(hallo=2) then break; // tu ucieczka
//skoro jest więcej braków niż bestbrak
end;

Rozumiesz to ?

2020-05-11 (21:00)

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

1386
wpis nr 1 292 230
[ CZCIONKA MONOSPACE ]

fair_play --> poczta

pomyśl ...... ja też pomyślę
| Dodaj wpis w tym temacie | Spis tematów | Wyniki lottoStrona: 1 2 ... 343 344 345 ... 560 561
Wyślij wiadomość do admina