[ jc denton @ 17.02.2002. 01:30 ] @
Treba mi kod u asembleru ili c++ koji ce brzo da uporedi dva niza ili memorijska bloka, a da mogu da ga pozovem iz Visual basic-a i da mi vrati neke rezultate (recimo kao kad zovem neku API funkciju pa mi ta funkcija vrati neku vrednost).

Ja iz VB mogu da prosledim pointer na prvi elemenat niza, tj. pointer na pocetak memorijskog bloka gde je niz (oba niza koji se uporedjuju su byte tipa).

Uporedjivanje nizova treba da se izvrsi na sledeci nacin :

Kod treba da uporedi neparne bajtove iz prvog niza sa neparnim iz drugog, pa onda parne iz prvog i parne iz drugog i da vrati razlike za prvi i drugi slucaj.

znaci ovako:

uporedjivanje neparnih bajtova :

prviniz bajt1 bajt2 bajt3 .... bajtn
| |
drugi bajt1 bajt2 bajt3 .... bajtn
vraca broj razlicitih neparnih

uporedjivanje parnih bajtova :

prviniz bajt1 bajt2 bajt3 .... bajtn
|
drugi bajt1 bajt2 bajt3 .... bajtn
vraca broj razlicitih parnih

Ako je ovo suvise komplikovano u asembleru, kako u Visual C++ da na osnovu pointera na pocetak niza (pointer na memorijski blok), krenem kroz petlju i uporedjujem redom bajtove ?
Kako se uz pomoc pointera kretati kroz niz u C++?

Napomena :
Ovaj kod potreban mi je da bi veoma brzo (real time) mogao da uporedim dve VGA slike i dobijem procentualnu razliku - ajde cik pogodite zasta sluzi ovo poredjenje?

[ Dragi Tata @ 17.02.2002. 02:44 ] @
Za parne:

int BrojRazlicitihParnih (char* niz1, char* iz2, int brojClanova)
{
int retValue = 0;
int i;
for (i = 0; i < brojClanova; i+= 2)
{
if (*(niz1+i) !=*(niz2+i))
retValue++;
}
return retValue;
}

Za neparne isto ovako, samo neka i krene od 1 umesto od 0.

I nema potrebe da se bakćeš sa assemblerom. Dobar C kompajler će ovakvu funkciju da optimizuje bolje nego 99% assembler programera.

Napomena:
char ovde koristim kao 8-bitni int, a one perverzije sa *(niz1+i) koristim jer se na ES-u ne vide uglaste zagrade. Gojko, pomagaj!!!!
[ jc denton @ 17.02.2002. 05:57 ] @
ej, hvala covek - zavrsio si mi poso !

Ubio sam dusu sa ovim poredjenjima, ali sta cu bilo mi prilicno hitno ...

Ajde Dragi Tata jos jedno pitanjce - jel znas nesto o DirectShow-u ?

[ Dragi Tata @ 17.02.2002. 17:12 ] @
Citat:
jc denton:

Ajde Dragi Tata jos jedno pitanjce - jel znas nesto o DirectShow-u ?



Jedino što sam čuo da postoji :)

Nego, pogledaj
http://www.codeproject.com/directx

[ Gojko Vujovic @ 17.02.2002. 21:00 ] @
Citat:
Dragi Tata:
char ovde koristim kao 8-bitni int, a one perverzije sa *(niz1+i) koristim jer se na ES-u ne vide uglaste zagrade. Gojko, pomagaj!!!!


http://www.elitesecurity.org/pomoc.php?

Pogledaj ovu stranicu. Videces koje sve kombinacije uglastih zagrada ne smes da koristis, jer ih forum prebacuje u nesto drugo..
[ Dragi Tata @ 17.02.2002. 21:20 ] @
Citat:
Gojko Vujovic:
Citat:
Dragi Tata:
char ovde koristim kao 8-bitni int, a one perverzije sa *(niz1+i) koristim jer se na ES-u ne vide uglaste zagrade. Gojko, pomagaj!!!!


http://www.elitesecurity.org/pomoc.php?

Pogledaj ovu stranicu. Videces koje sve kombinacije uglastih zagrada ne smes da koristis, jer ih forum prebacuje u nesto drugo..


E, pa da. Logično. Problem je u tome što se često koristi i kao brojač za nizove, pa onda forum to smatra za italic. Isti problem se pojavio u primeru koji je blue dao za trim funkciju. Ljudi će da se čude zašto ne radi, a čovek je sve lepo napisao. Ne znam da li bi bilo dobro da koristiš neko drugo slovo za italic. Ili recimo il?