Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

VB to C# Prebacivanje?

[es] :: .NET :: .NET Desktop razvoj :: VB to C# Prebacivanje?

[ Pregleda: 2099 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

01011011

Član broj: 561
Poruke: 2341
*.messagelabs.net.



+2 Profil

icon VB to C# Prebacivanje?22.02.2008. u 18:27 - pre 196 meseci
Kad ja moram da userem nesto onda moram. Posto sam dosao na novi projekat da radim i ono sve je u VB, a ja nisam dotakao VB jedno 2-3 godine, ja rpedlozim da je C# bolji, jendostavniji za citnaje, itd, i da je buducnost u tome, da klinci uce C# i tako da ce to biti olja solucija da se trenutne libs prebace u C# i sve. E sad posto radim enhancements na sajtu, verovatno cu im uraditi i sve da bude sa 3 lejera i tako dalje, uglavnom mene nesto interesuje.

Prvo sajt je trenutno u 1.1 a moj novi sajt ce biti uradjen u .NET 3.5. Dakle vec sam poceo da radim master pages i ostalo i privikavam. Sta treba da uradim je jednostavno da kovertujem sve iz 1.1 na 3.5 sto je vec uspijelo i radi kako treba. E sada treba da uradim vb klase u c#. Vidim da ima milione programa na netu koji mogu da prepisu klase u c# iz vb i obratno. Da li je neko imao iskustva sa ovim, i koji su dobri sajtovi ili igracke za konverziju.

Hvala.


Ok nastavak pitanja bi bilo pitanje OPTIONAL PARAMETRA? Kako ovo odraditi u C#???

 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
*.messagelabs.net.



+2 Profil

icon Re: VB to C# Prebacivanje?22.02.2008. u 19:58 - pre 196 meseci
ok ako sam nekoga zbunio, znaci Optional Parameter ne postoji u C# znaci recimo evo jedne funkcije koju bih prebacio.

Code:
Public Sub LogEventToDisk(Optional ByRef Source As Object = Nothing, Optional ByRef Description As String = "")

            Dim FileName As String
            Dim buffer As String

            Try

                FileName = ConfigurationSettings.AppSettings("LogFileDirectory") & "Events-" & Format(Today, "yyyyMMdd") & ".log"

                buffer = Now & " " & GetTickCount() & vbTab & TypeName(Source) & vbTab & Description
                WriteToFile(FileName, buffer)

            Catch ex As Exception
                log.Error(String.Format("Error @ LogEventToDisk: {0}", ex.Message))
            End Try

        End Sub



E sad, kada prebacim u C# ovo dobijem

Code:

public void LogEventToDisk( // ERROR: Unsupported modifier : Ref, Optional object Source, // ERROR: Unsupported modifier : Ref, Optional string Description) 

    
    string FileName; 
    string buffer; 
    
    try { 
        
        FileName = ConfigurationSettings.AppSettings("LogFileDirectory") + "Events-" + Strings.Format(Today, "yyyyMMdd") + ".log"; 
        
        buffer = Now + " " + GetTickCount() + Constants.vbTab + Information.TypeName(Source) + Constants.vbTab + Description; 
        WriteToFile(FileName, buffer); 
    } 
    
    catch (Exception ex) { 
        log.Error(string.Format("Error @ LogEventToDisk: {0}", ex.Message)); 
    } 
    


E sad citam da se ovo radi sa overloading the parameter, ali ako mzoe neko da stavi primjer.

Hvala
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: VB to C# Prebacivanje?22.02.2008. u 20:47 - pre 196 meseci

Pravis overload-e koji sadrze obavezne paramtere (u ovom slucaju ih nema) i sve kombinacije opcionih parametara; imaces 2^n overload metoda za metod sa n opcionih parametara. Nadam se da nemas VB metod sa 8 opcionih parametara

Samo jedan overload, onaj koji tretira sve opcione parametre kao obavezne, implementiras koverzijom koda, sve "parcijalne" overload-e pravis tako da pozivaju tu glavnu implementaciju prosledjujuci default vrednost kao stvarni parametar za one parametre koji su izostavljeni.

Code:


        void LogEventToDisk() 
        { 
            LogEventToDisk(null, ""); 
        }
        void LogEventToDisk(object Source) 
        { 
            LogEventToDisk(Source, ""); 
        }
        void LogEventToDisk(string Description) 
        { 
            LogEventToDisk(null, Description); 
        }

        void LogEventToDisk(object Source, string Description) 
        { 
            // ovde ide implementacija LogEventToDisk prebacena iz VB, "pretvarajuci se" da su parametri obavezni
        }

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

_prompt

Član broj: 64725
Poruke: 30
*.adsl-3.sezampro.yu.



Profil

icon Re: VB to C# Prebacivanje?22.02.2008. u 21:47 - pre 196 meseci
Mozda mislis na optional parameter kao keyword... U C# imas 'params' keyword koga prosledis
ispred parametra funkcije i on u stvari tretira broj parametra kao promenljivu. Takodje, argumenti
moraju biti smesteni u niz. npr.

Code:

public void WriteParams(params object[] objects) 
{   
   if(objects != null) 
   {
      foreach (object o in objects)
      {
         Console.WriteLine(o.ToString());
      }
   }
}



Posto je samo jedan 'params' dozvoljen u metodi, u tvom slucaju bi stavio oba u jedan niz i proverio
posle koji je koji (po index-u ili tipu).

Code:

object[] args = new object[] {source, destination};
LogEventToDisk(args);
LogEventToDisk(); // i ovo prolazi
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
*.messagelabs.net.



+2 Profil

icon Re: VB to C# Prebacivanje?22.02.2008. u 22:04 - pre 196 meseci
Hvala hvala,

mislim da je ovo sto je mmix napisao odlicno, to je ono sto sam trazio. Pitanje? Da li moram da uradim sve implementacije 2n, ili je dovoljno recimo u ovom slucaju da imam samo 2 funkcije...
Code:
void LogEventToDisk(ref Source) 
        { 
            // ovde ide implementacija LogEventToDisk prebacena iz VB, "pretvarajuci se" da su parametri obavezni
            i samo ostavim da mi je description default ""
        }

void LogEventToDisk(ref Source, string Description) 
        { 
            // ovde ide implementacija LogEventToDisk prebacena iz VB, "pretvarajuci se" da su parametri obavezni
        }


A za drugo pitanje niko mi nije dao odgovor. Gde da nadjem efikasan konverter, mislim trazio sam na google.com ali ima ih milion, jednostavno mi treba nesto sto je lako za upravljati, dzabe, i dobro :)
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: VB to C# Prebacivanje?23.02.2008. u 09:10 - pre 196 meseci
@_params, nije to ono sto mu treba, to sam i ja prvo pomislio i da je mmix pogresio (kako li je tako nesto moglo da mi padne na pamet, sram me bilo ).
@01011011, za drugo pitanje ne znam tacno koji bi valjao ali skoro se u nekoj temi pominjali konvertori, ne secam se tacno koja..
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: VB to C# Prebacivanje?25.02.2008. u 17:43 - pre 196 meseci
Citat:
01011011: mislim da je ovo sto je mmix napisao odlicno, to je ono sto sam trazio. Pitanje? Da li moram da uradim sve implementacije 2n, ili je dovoljno recimo u ovom slucaju da imam samo 2 funkcije...

Naravno da ne moras, u krajnjoj liniji ti mozes da izostavis sve overload-e i tretiras opcione parametre kao obavezne i prebacis teret na pozivara koji onda mora da prosledi default vrednost ako ne koristi neki parametar. Ako hoces da napravis minimalno funkcionalno, onda ti trebaju samo kombinacije opcionih parametara koji se pojavljuju bar jednom pri pozivu metode. Jedina nezgodacija je sto onda moras da imas kompletan sors i da pronadjes SVE pozive i da izbistris koji pverload-i ti trebaju. Za mali broj opcionih parametara (1-3) bice ti brze da jednostavno napravis sve overload-e

Citat:
Shadowed: @_params, nije to ono sto mu treba, to sam i ja prvo pomislio i da je mmix pogresio (kako li je tako nesto moglo da mi padne na pamet, sram me bilo ).

znalo je da se desi, al ne danas
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
*.messagelabs.net.



+2 Profil

icon Re: VB to C# Prebacivanje?25.02.2008. u 20:03 - pre 196 meseci
Ok, ajde recimo ovo mi je dio koda koji se nalazi na stranici. Koje bi verzije sada postojale..

Code:
        Public Function Delete(ByVal auctionDate As Date, Optional ByVal branchCode As String = "", Optional ByVal stockNo As String = "", Optional ByVal sDbFlag As String = "C") As Boolean


znaci kako ovo sad bi trebalo da izgleda u C# i koliko funkcija??

mislim koliko meni izgleda ono bice 16 (2^4) funkcija!!! Meni je to malo previse ako cu morati da prepisujem svaku funkciju 8 puta, sa razlicitim parametrima... a i u mikrosoftu su neki... sto nisu napravili isto :)

Mislim moguce je anpraviti generic funkciju i onda pozvati 16 puta sa razlicitim parametrima da bi se napravila implementacija... Meni ce uzeti 300 godina da ovo sve prepisem, ima preko 300 klasa sa ko zna koliko funkcija... i uglavnom koriste optional parameters...

Evo upravo sad jednu klasu sam otvorio i ima 1807 linija koda, a uglavnom su funkcije koje su sa optional parameters. Takodje pitanje... Da li overloading ubija performance kad se uporedi sa VB optional parametrima i jednom funkcijom, ili je samo razlika u kolicini koda koje ce biti napisan.

Evo nasao sam neki software koji radi konverziju i pravi overload funkcije, samo me interesuje koliko je ovo tacno?

Code:

public bool Delete(System.DateTime auctionDate, string branchCode, string stockNo)
{
    return Delete(auctionDate, branchCode, stockNo, "C");
}

public bool Delete(System.DateTime auctionDate, string branchCode)
{
    return Delete(auctionDate, branchCode, "", "C");
}

public bool Delete(System.DateTime auctionDate)
{
    return Delete(auctionDate, "", "", "C");
}

//INSTANT C# NOTE: C# does not support optional parameters. Overloaded method(s) are created above.
//ORIGINAL LINE: Public Function Delete(ByVal auctionDate As Date, Optional ByVal branchCode As String = "", Optional ByVal stockNo As String = "", Optional ByVal sDbFlag As String = "C") As Boolean
public bool Delete(System.DateTime auctionDate, string branchCode, string stockNo, string sDbFlag)
{


[Ovu poruku je menjao 01011011 dana 25.02.2008. u 21:46 GMT+1]
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: VB to C# Prebacivanje?25.02.2008. u 20:48 - pre 196 meseci
Posto imas 1 obavezan i 3 opciona parametra imaces 8 overloada, ne 16 (posto se obavezni parametar auctionDate uvek pojavljuje i ne postoji overload bez njega).

Preformanse su tu i tamo, ovakve overload C# funkcije imaju samo jedan performance penalty a to je da ce poziv overloadovanog metoda rezultovati jednim extra pozivom (iz parcijalnog overloada u glavni), medjutim osim ako ih ne pozivas miliion puta u petlji pad performansi je marginalan.


Ja iskreno ne znam za konvertor nijedan posto to nisam koristio nikad, ali je realno da bar neki od njih mora da ima ovu vrstu konverzije metoda (single optional vb -> overload set c#)

Inace taj konverzioni kod gore je nekompletan, ponasa se kao da su parametri sekvencijalno opcioni, u praksi je moguca bilo koja kombinacija opcionih parametara, pa ako nisi za ovaj metod dobio ukupno 8 (7 parcijalnih + jedan pun) overloada onda nije dobra konverzija. Osim ako konvertor nije provalio da su to jedini pozivi koji se obavljaju, ali sumnjam posto je metod public i time dostupan van klase.

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
*.messagelabs.net.



+2 Profil

icon Re: VB to C# Prebacivanje?25.02.2008. u 21:02 - pre 196 meseci
Pa pazi zbunjen sam jer sam i ja po tome sto si ti rekao skontao da bi trebalo da postoji 8 funkcija, ali gledajuci tvoju formulu i formulu na ovome sajtu sa kojeg sam pokupio koncerter se ne slazu.

Evo sta oni kazu...


C# Equivalent to VB Optional Parameters


C# does not allow optional parameters. Overloaded methods are the alternative in C# to optional parameters (these are inserted into the converted code by Instant C#). A VB method with n optional parameters is converted to n + 1 overloaded methods. The overloaded methods call the overloaded method with the maximum number of parameters (which contains your original method code), passing the default values originally specified for the original optional parameters.



Here's an example of the simplest possible case:

VB:

Code:

Public Sub TestOptional(Optional ByVal x As Integer = 0)

    ...
End Sub



C#:
Code:

public void TestOptional()
{
    TestOptional(0);
}
public void TestOptional(int x)
{

    ...
}
 
 



I jos em ovdje jedan indijac ubjedjiva da je sequential dobro i da necu promasiti sa ovim nista... Sad i ono sto sam kontao vise ne kontam...

haha


[Ovu poruku je menjao Shadowed dana 25.02.2008. u 22:51 GMT+1]
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: VB to C# Prebacivanje?25.02.2008. u 21:44 - pre 196 meseci
Nije u pravu, ja sam u pravu Problem je sa pozivima preko imenovanih parametara.

ok, pogledaj sledeci VB metod i jedan moguci poziv:

Code:

Public Sub Metod(Optional ByVal p1 As Integer = 0, Optional ByVal p2 As String = "",  Optional ByVal p3 As Boolean = false)
End Sub

poziv:

Metod(p3:=true)


U sekvencijalnoj koverziji ne postoji varijanta koja prima samo p3 i samim tim problem se prebacuje na pozivara i mora da bude Metod(0, "", true);

That being said, i moj predlog ima jedno veliko ogranicenje, a to ogranicenje je razlog zbog kojeg oni insistiraju na sekvencijalnim overloadima. Moj predlog mozes da primenis samo na metodama gde su tipovi opcionih parametara razliciti. Npr za sledeci vb.net metod bi isli sledeci overload-i i kompajler bi puko:

Code:

Public Sub Metod(Optional ByVal p1 As Integer = 0, Optional ByVal p2 As Integer = -1)


void Metod ()
void Metod (int p1)
void Metod (int p2)
void Metod (int p1, int p2)


drugi i treci overload imaju identican potpis void Metod(int) i poziv Metod(12) bi bio ambiguous i to nece proci pored kompajlera.
idealno resenje bi zapravo bilo kombinacija sekvencijalnih i kobinovanih poziva da bi se minimizovao pritisak na promenu poziva.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
*.messagelabs.net.



+2 Profil

icon Re: VB to C# Prebacivanje?25.02.2008. u 22:01 - pre 196 meseci
PA dobro, koliko ja razumijem posto cu ja biti onaj koji ce vrsiti pozive ovim funkcijama i pisati pozive iz UI, onda mogu ovako da uradim sequential, i da samo pazim kad pisem pozive ovim funkcijama da uradim pravilno upute.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: VB to C# Prebacivanje?25.02.2008. u 22:22 - pre 196 meseci
Pa iz tog ugla posmatranja kao neko ko ce pozivati te metode, ne moras da imas nikave overload-e, samo iskoristi glavni koji tretira sve parametre kao obavezne :)
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
*.messagelabs.net.



+2 Profil

icon Re: VB to C# Prebacivanje?25.02.2008. u 22:37 - pre 196 meseci
Ok jos jedno pitanje.

Po mojoj logici, koja ti kazes da nije bas najprakticnija ovo gore sto si ti napisao

Code:

Public Sub Metod(Optional ByVal p1 As Integer = 0, Optional ByVal p2 As String = "", Optional ByVal p3 As Boolean = false)


bi trebalo da izgleda ovako

Code:


public void Metod(int p1, string p2)
{
    Metod(p1, p2, false);
}

public void Metod(int p1)
{
    Metod(p1, "", false);
}

public void Metod()
{
    Metod(0, "", false);
}

public void Metod(int p1, string p2, bool p3)
{
}



Jel mozes da mi napises svoju implementaciju ako nije problem, da vidim razlike.

Hvala mnogo na pomoci danas.

 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: VB to C# Prebacivanje?25.02.2008. u 22:52 - pre 196 meseci
Nedostaju:
Code:

public void Metod(string p2, Boolean p3)
{
    Metod(0, p2, p3);
}

public void Metod(int p1, Boolean p3)
{
    Metod(p1, "", p3);
}

public void Metod(Boolean p3)
{
    Metod(0, "", p3);
}

public void Metod(string p2)
{
    Metod(0, p2, false);
}

 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
*.messagelabs.net.



+2 Profil

icon Re: VB to C# Prebacivanje?25.02.2008. u 23:03 - pre 196 meseci
Da li je ispravno napraviti pravilo programersko u firmi da je dozvoljeno samo sekvencionalno raditi i ostaviti sequential ???

hvala Shadowed :)
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: VB to C# Prebacivanje?25.02.2008. u 23:15 - pre 196 meseci
Sad videh da je shadowed iskucao, pa da se ne ponavljamo, to je ono sto fali.

Medjutim, na kraju krajeva, cela ta mudrolija sa overloadima, i pun opseg i sekvencijani, sve to nema mnogo smisla osim ako nema bas puno vec postojecih poziva pa da ti overload-i omoguce automatsku konverziju poziva da ne moras da se maltretiras sa rucnim menjanjem istih. Ako tih poziva nema ili ih ima malo, daj sebi oduska i postavi svoja pravila Ono sto sam ti rekao u prethodnoj poruci je ozbiljna poruka bez zezanja i nipodastavanja, ako poziva zaista nema i ti si taj koji ce ih praviti, nista te ne sprecava da napravis samo jednu implementaciju i da svi parametri budu obavezni.

Ako bas hoces da imas neki intelisense da ti posle pomogne oko toga sta bi trebao da stavis u stvarni parametar kao default, stani red iznad metoda u C# i ukucaj tri kose crte (///) i otvorice ti se intelisense frame za taj metod i u njega ubaci te komentare. Kad budes pravio poziv ti komentari za metod i pojdinacne paramtre ce ti se prikazati u zutom baloncicu. I gotova stvar, opcioni parametri su ionako demode




Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: VB to C# Prebacivanje?25.02.2008. u 23:29 - pre 196 meseci
Citat:
01011011: Da li je ispravno napraviti pravilo programersko u firmi da je dozvoljeno samo sekvencionalno raditi i ostaviti sequential ???


Moze i to, ali onda se postavlja pitanje "kojom sekvencom?"

Ako uzmes gornji primer sa p1, p2 i p3 i napravis overloade tom sekvencom to ne mora biti najbolje resenje; ako je masa poziva tog metoda napravljena tako da prosledjuje samo p3 onda bi mozda bolja sekvenca bila p3, p2, p1.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
*.messagelabs.net.



+2 Profil

icon Re: VB to C# Prebacivanje?26.02.2008. u 16:00 - pre 196 meseci
Mislim da sam shvatio :)

To za /// znam to sam koristio prilikom pravljenja custom kontorla, mislim da cu ici sa varijantom da su svi parametri obavezni, sada za pola sata imam sastanak gdje cu im iznijeti moje misljenje i reci sta je moja solucija.

Hvala mnogo

Sve najbolje
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: VB to C# Prebacivanje?

[ Pregleda: 2099 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.