Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 8 odgovora
  • 3.256 pregleda

Najnovija ↓

Zaglavljivanje programa 19.10.2003. u 13:00 · pre 280 meseci #1
Malo nesrecan naslov al' ajd.

Sladeci (jednostavan) kod se malo cudno ponasa:
Code:

Dim a As String

Private Sub Command1_Click()
    Dim i As Long
    
    For i = 1 To 100000
        Text1.Text = i
        Text1.Refresh
        a = a & "XXXXXXXXXX"
    Next i
End Sub

Naime, kada kliknem na taster Text1 odbroji do 4191 i onda srane. Program ne odgovara. On ne odgovara ni tokom odbrojavanja ali bar odbrojava.

Zna li neko zasto se ovo desava?

Edit: Probao sam da kompajliram program i kada pokrenem .exe on nastavi da broji. Ono o cemu sam ranije pisao je bilo bez pravljenja .exe-a vec samo pokretanje sa Run (F5).
U cemu je razlika?
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Zaglavljivanje programa 19.10.2003. u 15:59 · pre 280 meseci #2
Meni je odbrojao do kraja, bez stajanja sa F5 - znaci ne EXE (trebalo je docekati da odbroji ;))

Ne znam sta podrazumevas pod "Program ne odgovara", ali probaj ovo

Code:

Private a As String

Private Sub Command1_Click()
Dim i As Long

    For i = 1 To 100000
        Text1.Text = i
        Text1.Refresh
        a = a & "XXXXXXXXXX"
        DoEvents
    Next i
End Sub

Private Sub Command2_Click()
Static c As Long
    c = c + 1
    Text2.Text = c
End Sub


i videces da kad imas DoEvents program reaguje na klik na Command2. Bez DoEvents ne reaguje (bar kod mene).
Potpis
Blue Man Group
Re: Zaglavljivanje programa 19.10.2003. u 16:11 · pre 280 meseci #3
Nasao sam delimicno u cemu je problem. Prestane da broji ako je pokrenut Task Mnanager i selektovan BAS VB6.exe. Znaci u trenutku kad ga selektujem u listi procesa onprestane da odbrojava. Mada i kad prestane da odbrojava nastavlja da vrti petlju, provereno.
Sad, zasto se to desava nemam pojma.
Jos se pitam zasto ne odbrojava istom brzinom vec sve sporije i sporije.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Zaglavljivanje programa 20.10.2003. u 00:24 · pre 280 meseci #4
Pa to ti je zbog ovog a = a & "XXXXXXXXXX",
svaki put se promenjiva a duplira.
Re: Zaglavljivanje programa 20.10.2003. u 00:55 · pre 280 meseci #5
Ne duplira se. Uvecava se za "XXXXXXXXXX". Duplirala bi se kada bi bilo a = a & a.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Zaglavljivanje programa 20.10.2003. u 13:18 · pre 280 meseci #6
Verovatno ti je memorija prepuna. Ja sam nesto slicno pokusao ali ne moze da se unese vishe od 2 GB valjda...
Re: Zaglavljivanje programa 20.10.2003. u 13:55 · pre 280 meseci #7
Taj string te sigurno usporava. On bi na kraju trebalo da ima milion karaktera. Mi smo u firmi svojevremeno napravili jednu klasu LongText koja radi sa velikim stringovima. String se cuva kao niz bajtova a konkateniranje se radi sa CopyMem. I radi brze nego &.
Potpis
Blue Man Group
Re: Zaglavljivanje programa 31.10.2003. u 21:14 · pre 280 meseci #8
Citat:
Shadowed:
Ne duplira se. Uvecava se za "XXXXXXXXXX". Duplirala bi se kada bi bilo a = a & a.


Pogresno sam se izrazio za dupliranje.
U svakom slucaju to ti sigurno usporava program.
Re: Zaglavljivanje programa 31.10.2003. u 21:58 · pre 280 meseci #9
Svakako da je taj string ono sto je usporavalo program jer niceg drugog nije ni bilo.
Ono sto je neobicno je to sto se brzina izvrsavanja sve vise i vise smanjivala - svaki prolazak kroz petlju je trajao duze iako se ovak dodaje string iste duzine. Verovatno se ispod haube nesto radi duz celog stringa pa svaki put ima vise posla.
No, ispostavilo se da program ne blokira vec samo prestaje da ispisuje u TextBox-u. S obzirom da ide sve sporije i sporije nikako nisam stizao do kraja sve dok nisam smanjio broj prolaza pa je trajalo krace.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme