Tyhmät kysymykset (I/2012)

Voit pyytää apua ohjelmointiongelmiin täältä.
Locked
naputtelija
Devoted Member
Posts: 718
Joined: Wed Nov 03, 2010 7:56 pm
Location: Joku piste pohjoisessa.

Re: Tyhmät kysymykset (I/2011)

Post by naputtelija »

Hmm... Jossain täälläpäin oli joku exenpurkamistuto. Voisitteko vähän täsmentää, kuka sen kirjoitti ja mistä se löytyy?
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
Viltzu
Guru
Posts: 1132
Joined: Sun Aug 26, 2007 5:45 pm
Location: Alavieska
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Viltzu »

naputtelija wrote:Hmm... Jossain täälläpäin oli joku exenpurkamistuto. Voisitteko vähän täsmentää, kuka sen kirjoitti ja mistä se löytyy?
Exenpurkamis... UPX pakattu -> UPX -d filu.exe. Tässä vähän varmaa kysymykseesi liittyen asiaa viewtopic.php?p=38114#p38114
naputtelija
Devoted Member
Posts: 718
Joined: Wed Nov 03, 2010 7:56 pm
Location: Joku piste pohjoisessa.

Re: Tyhmät kysymykset (I/2011)

Post by naputtelija »

Viltzu wrote:
naputtelija wrote:Hmm... Jossain täälläpäin oli joku exenpurkamistuto. Voisitteko vähän täsmentää, kuka sen kirjoitti ja mistä se löytyy?
Exenpurkamis... UPX pakattu -> UPX -d filu.exe. Tässä vähän varmaa kysymykseesi liittyen asiaa viewtopic.php?p=38114#p38114
Kiitos. Minulla olisi matematiikassa sellainen yhtälö, jota en ymmärrä:

(2e^4/3e^5)^2 pitäisi olla sievennettynä 4/9e^2. Minä en vain ymmärrä, miten se sievennetään. Auttaisitteko idioottia?
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Tyhmät kysymykset (I/2011)

Post by koodaaja »

(2e^4/(3e^5))² = (2*e*e*e*e/(3*e*e*e*e*e))² = (2/(3e))² = 2²/(3²e²) = 4/(9e²)

Jos millään tapaa selventää. Eli jaettaessa potenssit voi yksinkertaisesti vähentää, a^x/a^y = a^(x-y). Ja koska e:n potenssi jäisi tuossa negatiiviseksi, se jää jakajaan. Ja yleisenä huomiona, virtuaalimaailmoissa pyöriessä kannattaa kirjoittaa a/(bc) eikä vain a/bc, esimerkiksi kaikki näkemäni laskimet laskevat jälkimmäisen muodossa (a/b)c, mikä on tyystin eri asia kuin haluttiin. a/b/c toimii myös.
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: Tyhmät kysymykset (I/2011)

Post by axu »

Olen yrittänyt tässä kirjoittaa koodia, joka järjestäisi typekokoelman jäsenet tietyn numeerisen arvon mukaan, mutta jostakin syystä en nyt saa aikaiseksi edes hitaasti toimivaa järjestysfunktiota. Milloin ohjelma jää ikuiseen silmukkaan, milloin kaatuu Mitä Auttavimpiin Virheilmoituksiin ja sain aikaan jopa virheimoituksen, jota en ollut ennen nähnyt :O
Huomasin myös, että Insertissä on erikoinen bugi. Yritäpä saada joku kokoelman jäsen toiseksi jäseneksi. Insert t, After(First(mytype)) lisääkin t:n yllättävästi kolmanneksi jäseneksi :S
Tässäpä hyvin pelkistetty koodi, jonka tarkoituksena on vain saada jäsenet järjestykseen. Kaatuu Insertin kohdalla seuraavanlaiseen virheilmoitukseen: "ERROR: Memory leak due to invalid type access attempt." (eli älä aja jos tämä pelottaa).

Code: Select all

Type Block
    Field Z#
End Type

For i = 1 To 10
    nB.Block = New(Block)
    nB\Z = Rnd(50)
Next i

Repeat
    Swap = False
    iB.Block = After(First(Block))
    While iB <> NULL
        jB.Block = Before(iB)
        
        If iB\Z > jB\Z Then Insert iB, Before(jB) : Swap = True
        iB = After(iB)
    Wend
Until Swap = False
EDIT:

Tuohan tietenkin kaatuu heti ensimmäisellä kerralla, koska Before(jB) = Before(Before(iB)) = Before(Before(After(First(Block))) = Before(First(Block)). Mutta kaatuu se silti vaikka menisi muuttamaan tuon rivin 12 iB.Block = After(After(First(Block))), en keksi järkevää syytä.

Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Tyhmät kysymykset (I/2011)

Post by Awaclus »

axu wrote:Olen yrittänyt tässä kirjoittaa koodia, joka järjestäisi typekokoelman jäsenet tietyn numeerisen arvon mukaan, mutta jostakin syystä en nyt saa aikaiseksi edes hitaasti toimivaa järjestysfunktiota. Milloin ohjelma jää ikuiseen silmukkaan, milloin kaatuu Mitä Auttavimpiin Virheilmoituksiin ja sain aikaan jopa virheimoituksen, jota en ollut ennen nähnyt :O
Huomasin myös, että Insertissä on erikoinen bugi. Yritäpä saada joku kokoelman jäsen toiseksi jäseneksi. Insert t, After(First(mytype)) lisääkin t:n yllättävästi kolmanneksi jäseneksi :S
Tässäpä hyvin pelkistetty koodi, jonka tarkoituksena on vain saada jäsenet järjestykseen. Kaatuu Insertin kohdalla seuraavanlaiseen virheilmoitukseen: "ERROR: Memory leak due to invalid type access attempt." (eli älä aja jos tämä pelottaa).

Code: Select all

Type Block
    Field Z#
End Type

For i = 1 To 10
    nB.Block = New(Block)
    nB\Z = Rnd(50)
Next i

Repeat
    Swap = False
    iB.Block = After(First(Block))
    While iB <> NULL
        jB.Block = Before(iB)
        
        If iB\Z > jB\Z Then Insert iB, Before(jB) : Swap = True
        iB = After(iB)
    Wend
Until Swap = False
EDIT:

Tuohan tietenkin kaatuu heti ensimmäisellä kerralla, koska Before(jB) = Before(Before(iB)) = Before(Before(After(First(Block))) = Before(First(Block)). Mutta kaatuu se silti vaikka menisi muuttamaan tuon rivin 12 iB.Block = After(After(First(Block))), en keksi järkevää syytä.

Voisin kuvitella, että tämä on helpointa toteuttaa käyttämällä kahta tyyppikokoelmaa, joista ensimmäistä oikeasti käytetään ja toinen on melkein koko ajan jäsenetön, mutta pitää sisällään samat fieldit kuin ensimmäinenkin. Sitten tarkistaa, mikä tyyppikokoelman 1 jäsenistä on tietyltä numeroarvoltaan suurin tai pienin ja tekee identtisen uuden jäsenen tyyppikokoelmaan 2 ja poistaa sen jäsenen tyyppikokoelmasta 1. Sitten toistaa tätä kunnes tyyppikokoelma 1 on tyhjä, ja sitten samaan tapaan "kopioi" jäsenet tyyppikokoelmasta 2 kokoelmaan 1, mutta tällä kertaa sen voi tehdä suoraan järjestyksessä ja sitten poistaa ne kokoelmasta 2.

Ei varmasti ole optimaalisin tapa, ja voi olla vaikea hyödyntää jotain universaalisti toimivaa funktiota tehdessä, mutta tällä tavalla minä tämän ongelman ratkaisin joku aika takaperin kun tällaista systeemiä yhdessä projektissa tarvitsin.
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: Tyhmät kysymykset (I/2011)

Post by axu »

Chaosworm wrote:Voisin kuvitella, että tämä on helpointa toteuttaa käyttämällä kahta tyyppikokoelmaa, joista ensimmäistä oikeasti käytetään ja toinen on melkein koko ajan jäsenetön, mutta pitää sisällään samat fieldit kuin ensimmäinenkin. Sitten tarkistaa, mikä tyyppikokoelman 1 jäsenistä on tietyltä numeroarvoltaan suurin tai pienin ja tekee identtisen uuden jäsenen tyyppikokoelmaan 2 ja poistaa sen jäsenen tyyppikokoelmasta 1. Sitten toistaa tätä kunnes tyyppikokoelma 1 on tyhjä, ja sitten samaan tapaan "kopioi" jäsenet tyyppikokoelmasta 2 kokoelmaan 1, mutta tällä kertaa sen voi tehdä suoraan järjestyksessä ja sitten poistaa ne kokoelmasta 2.

Ei varmasti ole optimaalisin tapa, ja voi olla vaikea hyödyntää jotain universaalisti toimivaa funktiota tehdessä, mutta tällä tavalla minä tämän ongelman ratkaisin joku aika takaperin kun tällaista systeemiä yhdessä projektissa tarvitsin.
Kuulostaa kyllä aika työläältä ja hitaalta tavalta... Mietin, voisiko jotain tehdä tallentamalla muistipaloihin typeosoittimet (converttointeger), järjestämällä muistipalan sisällä osoittimet järjestykseen ja siitä jotenkin muutettua itse tyyppikokoelman jäsenet.
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
User avatar
MetalRain
Active Member
Posts: 188
Joined: Sun Mar 21, 2010 11:17 am
Location: Espoo

Re: Tyhmät kysymykset (I/2011)

Post by MetalRain »

Tai sitten voi käyttää pelkästään muistipaloja.

Code: Select all

määrä=10

//luodaan lista alkioille
lista=MakeMEMBlock(4+määrä*4)

//ensimmäiset neljä tavua merkkaa alkioiden määrää
PokeInt lista,0,määrä
//näin voidaan varata listaan kokoa ennen sen käyttöä
//sillä listan koon muuttaminen jatkuvasti vie aikaa

For i=1 To määrä
    //luodaan uusi alkio
    alkio=MakeMEMBlock(8)
    
    PokeFloat alkio,0,Rnd(-1.0,1.0)
    PokeInt alkio,4,Rand(1,1000)
    
    Print PeekInt(alkio,4)+" "+PeekFloat(alkio,0)

    //kirjoitetaan alkio listaan
    PokeInt lista,i*4,alkio
Next i

Print "---"

t=Timer()

//järjestetään lista 0 tavusta alkavan liukuluvun suhteen
lista=QuickSortByFloat(lista,0)
//tai kokonaisluvun mukaan
//lista=QuickSortByInt(lista,4)

t= Timer()-t

//haetaan niin monta alkiota kuin lista sisältää
For i=1 To määrä
    alkio=PeekInt(lista,i*4)
    //tulostetaan arvot
    Print PeekInt(alkio,4)+" "+PeekFloat(alkio,0)
Next i

Print "Sorting took "+t+" ms!"
WaitKey 



//List on muistipala jonka alussa on kokonaislukuna alkioiden lukumäärä
//Alkiot ovat omia muistipalojansa ja voivat sisältää mitä tahansa arvoja
//Funktio etsii järjestettävää desimaalilukua alkiosta floatposition arvon perusteella, 
//oletuksena alkion alusta.
Function QuickSortByFloat(list,floatposition=0)
    //http://en.wikipedia.org/wiki/Quicksort

    listsize = PeekInt(list,0)
   
    If listsize=1 Then Return list
    
    pivot = Rand(1,listsize)
    
    pivotitem = PeekInt(list,pivot*4)
    
    pivotvalue# = PeekFloat(pivotitem,floatposition)

    For i=1 To listsize
    
        If i<>pivot Then 
            
            iteritem = PeekInt(list,i*4)
    
            If iteritem Then 
            
                itervalue# = PeekFloat(iteritem,floatposition)
            
                If itervalue# < pivotvalue# Then 
                    If Not lesserlist Then lesserlist = MakeMEMBlock(listsize*4)
                    lesserlistitems = lesserlistitems + 1
                    PokeInt lesserlist,lesserlistitems*4,iteritem
                
                ElseIf itervalue# > pivotvalue# Then 
                    If Not greaterlist Then greaterlist = MakeMEMBlock(listsize*4)
                    greaterlistitems = greaterlistitems + 1
                    PokeInt greaterlist,greaterlistitems*4,iteritem
                   
                ElseIf itervalue# = pivotvalue# Then 
                    If Not pivotlist Then pivotlist = MakeMEMBlock(listsize*4)
                    PokeInt pivotlist, pivotlistitems*4,iteritem
                    pivotlistitems = pivotlistitems+1
                EndIf 
            EndIf 
        EndIf 
    Next i
    
    listpointer=4
    
    If lesserlistitems > 0 Then 
    
        PokeInt lesserlist,0,lesserlistitems
    
        If lesserlistitems > 1 Then sortedless = QuickSortByFloat(lesserlist,floatposition) Else sortedless = lesserlist

        sortedlesssize = PeekInt(sortedless,0)
        MemCopy sortedless,4,list,listpointer,sortedlesssize*4
        
        listpointer=listpointer+sortedlesssize*4
        
        DeleteMEMBlock sortedless
    EndIf 
    
    PokeInt list,listpointer,pivotitem
    
    listpointer=listpointer+4
    
    If pivotlistitems > 0 Then 
        
        MemCopy pivotlist,0,list,listpointer,pivotlistitems*4

        DeleteMEMBlock pivotlist
        
        listpointer=listpointer+pivotlistitems*4
    EndIf 
    
    If greaterlistitems > 0 Then 
        
        PokeInt greaterlist,0,greaterlistitems
        
        If greaterlistitems> 1 Then sortedgreater = QuickSortByFloat(greaterlist,floatposition) Else sortedgreater = greaterlist
        
        sortedgreatersize = PeekInt(sortedgreater,0)
        MemCopy sortedgreater,4,list,listpointer,sortedgreatersize*4
        
        DeleteMEMBlock sortedgreater
    EndIf 
        
    PokeInt list,0,(sortedlesssize+1+pivotlistitems+sortedgreatersize)

    Return list
    
End Function

//List on muistipala jonka alussa on kokonaislukuna alkioiden lukumäärä
//Alkiot ovat omia muistipalojansa ja voivat sisältää mitä tahansa arvoja
//Funktio etsii järjestettävää kokonaislukua alkiosta intposition arvon perusteella, 
//oletuksena alkion alusta.
Function QuickSortByInt(list,intposition=0)
    //http://en.wikipedia.org/wiki/Quicksort

    listsize = PeekInt(list,0)
   
    If listsize=1 Then Return list
    
    pivot = Rand(1,listsize)
    
    pivotitem = PeekInt(list,pivot*4)
    
    pivotvalue = PeekInt(pivotitem,intposition)

    For i=1 To listsize
    
        If i<>pivot Then 
            
            iteritem = PeekInt(list,i*4)
    
            If iteritem Then 
            
                itervalue = PeekInt(iteritem,intposition)
            
                If itervalue < pivotvalue Then 
                    If Not lesserlist Then lesserlist = MakeMEMBlock(listsize*4)
                    lesserlistitems = lesserlistitems + 1
                    PokeInt lesserlist,lesserlistitems*4,iteritem
                
                ElseIf itervalue > pivotvalue Then 
                    If Not greaterlist Then greaterlist = MakeMEMBlock(listsize*4)
                    greaterlistitems = greaterlistitems + 1
                    PokeInt greaterlist,greaterlistitems*4,iteritem
                   
                ElseIf itervalue = pivotvalue Then 
                    If Not pivotlist Then pivotlist = MakeMEMBlock(listsize*4)
                    PokeInt pivotlist, pivotlistitems*4,iteritem
                    pivotlistitems = pivotlistitems+1
                EndIf 
            EndIf 
        EndIf 
    Next i
    
    listpointer=4
    
    If lesserlistitems > 0 Then 
    
        PokeInt lesserlist,0,lesserlistitems
    
        If lesserlistitems > 1 Then sortedless = QuickSortByInt(lesserlist,intposition) Else sortedless = lesserlist

        sortedlesssize = PeekInt(sortedless,0)
        MemCopy sortedless,4,list,listpointer,sortedlesssize*4
        
        listpointer=listpointer+sortedlesssize*4
        
        DeleteMEMBlock sortedless
    EndIf 
    
    PokeInt list,listpointer,pivotitem
    
    listpointer=listpointer+4
    
    If pivotlistitems > 0 Then 
        
        MemCopy pivotlist,0,list,listpointer,pivotlistitems*4

        DeleteMEMBlock pivotlist
        
        listpointer=listpointer+pivotlistitems*4
    EndIf 
    
    If greaterlistitems > 0 Then 
        
        PokeInt greaterlist,0,greaterlistitems
        
        If greaterlistitems> 1 Then sortedgreater = QuickSortByInt(greaterlist,intposition) Else sortedgreater = greaterlist
        
        sortedgreatersize = PeekInt(sortedgreater,0)
        MemCopy sortedgreater,4,list,listpointer,sortedgreatersize*4
        
        DeleteMEMBlock sortedgreater
    EndIf 
        
    PokeInt list,0,(sortedlesssize+1+pivotlistitems+sortedgreatersize)

    Return list
    
End Function
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: Tyhmät kysymykset (I/2011)

Post by axu »

MetalRain wrote:Tai sitten voi käyttää pelkästään muistipaloja.
Tämä olisi muuten hyvä idea, mutta koodista tulee helposti vaikeaselkoista kun dataa on paljon (>10 muuttujaa) ja merkkijonoja ei voi toteuttaa järkevästi.
Huomasin muuten, että käytät tuossa QuickSortia järjestysalgoritmina. Itse olin ajatellut käyttää Insertion Sortia, mutta en ole oikein varma. Käyttötarkoitus on järjestää kokoelman jäsenet piirtojärjestykseen. Pelissä ei ole montaa liikkuvaa asiaa, joten järjestys on useimmiten lähes oikea, muutama jäsen on väärässä paikassa. Todennäköisesti järjestettäviä kohteita on 10-40. Kumpi on tällöin nopeampi? Toisaalta minulla olisi kätkössä jo valmis CombSort11 implementaatio, mitenköhän se toimisi tässä?

Hyvin nukutun yön jälkeen aloin miettiä ongelmaa toisesta näkökulmasta. Miksi minun pitäisi käydä tyyppikokoelma läpi For...Each lausekkeella? Edellisestä ajatuksestani voi jättää viimeisen kohdan pois, eli tyypit saa jäädä koskemattomaksi, laaditaan vain taulukko (tai muistipala), joka sisältää jäsenten osoittimet ja läpikäydään aina siinä järjestyksessä. Koodina kutakuinkin näin:

Code: Select all

Dim Tyypit(1)
For iB.Block = Each Block
    n + 1
Next iB
ReDim Tyypit(n)
iB = First(Block)
For i = 0 To n - 1
    Tyypit(i) = ConvertToInteger(iB)
    iB = After(iB)
Next i

//---järjesteleminen tähän

For i = 0 To n - 1
    iB = ConvertToType(Tyypit(i))
    //Tähän jotain toimintaa
Next i
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
User avatar
Konstaduck
Advanced Member
Posts: 267
Joined: Sat Dec 17, 2011 3:09 pm
Location: Nurmijärvi, Finland
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Konstaduck »

Mitähän mahtaisi tarkoittaa kuvan ongelma?

Image
Last edited by Konstaduck on Thu Apr 05, 2012 2:58 pm, edited 2 times in total.
Konstaduck.net
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
User avatar
Timblex
Advanced Member
Posts: 252
Joined: Sun Apr 11, 2010 10:37 am
Location: Kouvola

Re: Tyhmät kysymykset (I/2011)

Post by Timblex »

Johtuu luultavasti siitä, että sinulla on liian paljon täysin samanlaisia komentoja peräkkäin joten CoolBasicin exenkirjoittaja valittaa.
EDIT:

Tämä sama virheilmoitus tulee myös jos yrität tunkea esim. merkkijonoon liian pitkää tekstiä eli toisin sanoen, kun tietotyypin kapasiteetti ylitetään.

Entinen timpe99...
Demokisa 2013 demo valmis, Check it out!
User avatar
duck
Member
Posts: 80
Joined: Sun Sep 09, 2007 4:41 pm

Re: Tyhmät kysymykset (I/2011)

Post by duck »

miten toteutetaan vihollisen tasainen kääntyminen pelaajaa kohti?
eli huolimatta pelaajan kulmasta viholliseen nähden, vihollinen kääntyy samaa tasaista vauhtia pelaajaa kohti.

curveanglella ja pointobjectilla molemmilla tulee tietyissä tilanteissa liian jyrkät kääntymiset.
Lentäjä-ässä:
lentäjä-ässä
User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: Tyhmät kysymykset (I/2011)

Post by axu »

duck wrote:miten toteutetaan vihollisen tasainen kääntyminen pelaajaa kohti?
eli huolimatta pelaajan kulmasta viholliseen nähden, vihollinen kääntyy samaa tasaista vauhtia pelaajaa kohti.

curveanglella ja pointobjectilla molemmilla tulee tietyissä tilanteissa liian jyrkät kääntymiset.
En nyt jaksa miettiä läpikotaisin miten se tapahtuu, mutta kyseessähän on 2 askelta: 1. Selvitetään pitääkö kääntyä myötä- vai vastapäivään. 2. Käännytään halutun määrän verran.
Toinen kohta tuskin tuottaa vaikeuksia, mutta ensimmäinen niinkin. Tätä varten vihollisen nykyisen kulman ja vihollisen ja pelaajan välisen kulman erotus pitää ensin selvittää. Sitten tutkitaan, pitääkö kääntyä vastapäivään (positiivinen suunta), eli onko tuo kulma 0<x<180 vai myötäpäivään, 180<x<360.
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image
User avatar
duck
Member
Posts: 80
Joined: Sun Sep 09, 2007 4:41 pm

Re: Tyhmät kysymykset (I/2011)

Post by duck »

jeps ,kiitos. tuosta oli apua. lähes kaikkea getangleilla leikkimistä olikin jo kokeiltu :D
ehkä vielä illalla saa taas päivitystä projektiin :)
Lentäjä-ässä:
lentäjä-ässä
User avatar
Konstaduck
Advanced Member
Posts: 267
Joined: Sat Dec 17, 2011 3:09 pm
Location: Nurmijärvi, Finland
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Konstaduck »

timpe99 wrote:Johtuu luultavasti siitä, että sinulla on liian paljon täysin samanlaisia komentoja peräkkäin joten CoolBasicin exenkirjoittaja valittaa.
EDIT:

Tämä sama virheilmoitus tulee myös jos yrität tunkea esim. merkkijonoon liian pitkää tekstiä eli toisin sanoen, kun tietotyypin kapasiteetti ylitetään.

Tai sitten siitä, että tuota MakeErroria oli lähemmäs kahtasataatuhattariviä. Pelleilin sisentäjällä, ja siitä tulikin sitten lisääjä. Täytti koko tiedoston ensimmäisellä merkkijonolla :D

Onko CB:ssä muuten minkäänlaista koodirajoitusta? Siis sillein että johonkin pisteeseen asti antaa koodata, mutta sen jälkeen antaa Erroria, että vähennä koodia??
Konstaduck.net
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
User avatar
Timblex
Advanced Member
Posts: 252
Joined: Sun Apr 11, 2010 10:37 am
Location: Kouvola

Re: Tyhmät kysymykset (I/2011)

Post by Timblex »

Konstaduck wrote:
timpe99 wrote:Johtuu luultavasti siitä, että sinulla on liian paljon täysin samanlaisia komentoja peräkkäin joten CoolBasicin exenkirjoittaja valittaa.
EDIT:

Tämä sama virheilmoitus tulee myös jos yrität tunkea esim. merkkijonoon liian pitkää tekstiä eli toisin sanoen, kun tietotyypin kapasiteetti ylitetään.

Tai sitten siitä, että tuota MakeErroria oli lähemmäs kahtasataatuhattariviä. Pelleilin sisentäjällä, ja siitä tulikin sitten lisääjä. Täytti koko tiedoston ensimmäisellä merkkijonolla :D

Onko CB:ssä muuten minkäänlaista koodirajoitusta? Siis sillein että johonkin pisteeseen asti antaa koodata, mutta sen jälkeen antaa Erroria, että vähennä koodia??
No tuotahan minä juuri tarkoitin. Ja ei ole mitään koodirajaa ainakaan minun tietääkseni, jos olisi niin joku jolle se on tullut vastaan olisi varmaan kirjoitellut asiasta foorumille.
Entinen timpe99...
Demokisa 2013 demo valmis, Check it out!
Viltzu
Guru
Posts: 1132
Joined: Sun Aug 26, 2007 5:45 pm
Location: Alavieska
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Viltzu »

Muistelisin että editorissa oli jokin jännyys eikä näyttänyt kaikkia rivejä kun niitä oli paljon. Yli 6000 riviä. En enää edes muista mistä tämä tieto on peräisin enkä edes nyt jaksa testailla.
EDIT:

Chaosworm wrote:Minulla ainakin yli 100 000 riviä näkyi toimivan ihan hyvin.
Okei tämä selvä. :)[/edit]
Last edited by Viltzu on Fri Apr 06, 2012 11:49 am, edited 1 time in total.
Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Tyhmät kysymykset (I/2011)

Post by Awaclus »

Viltzu wrote:Muistelisin että editorissa oli jokin jännyys eikä näyttänyt kaikkia rivejä kun niitä oli paljon. Yli 6000 riviä. En enää edes muista mistä tämä tieto on peräisin enkä edes nyt jaksa testailla.
Minulla ainakin yli 100 000 riviä näkyi toimivan ihan hyvin.
User avatar
Konstaduck
Advanced Member
Posts: 267
Joined: Sat Dec 17, 2011 3:09 pm
Location: Nurmijärvi, Finland
Contact:

Re: Tyhmät kysymykset (I/2011)

Post by Konstaduck »

Taas näitä CB:n hämäriä erroreja... Selittäkääs minulle, mitä tuossa tilanteessa pitäisi tehdä?
EDIT:

Ja tuo koko virheilmoitus menee näin: Sovellus tai DLL C:/Program Files/CoolBasic/Omat/Funktiokirjastot/cbChipmunk/cbChipmunk/cbChipmunk.cb ei ole kelvolinen windows NT - vedos. Tarkista tämä asennuslevykkeeltä

Image
Konstaduck.net
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
User avatar
Timblex
Advanced Member
Posts: 252
Joined: Sun Apr 11, 2010 10:37 am
Location: Kouvola

Re: Tyhmät kysymykset (I/2011)

Post by Timblex »

Tuo Windows NT vedos viittaa siihen että sen pitäisi olla dll mutta tuossa lukee, että tiedosto on cbChipmunk.cb vaikka sen pitäisi varmaankin olla cbChipmunk.dll
Entinen timpe99...
Demokisa 2013 demo valmis, Check it out!
Locked