28. maj 2001 - 23:06
Der er
6 kommentarer og 1 løsning
Omskriv perl til asp!
Er der nogen der kan omskrive det her til asp? my $cmd = join(\'\', map { $_ . \'/\' } @p); $cksum &= 0xFF; return $cmd . sprintf(\'%02X\', $cksum); sub NumSum { my (@NumList) = @_; my $Sum = 0; my $Num; foreach $Num (@NumList) { $Sum += $Num; } return $Sum; }
Annonceindlæg fra Computerworld
Det er jo taget lidt ud af sammenhæng :) Men sæt \"/\" efter alle værdier i arrayet @p, og sæt det hele sammen til én lang streng, f.eks. a/b/ccc/hh/gg/ som $cmd Så masker vi det sidste tegn ud af variablen $cksum, og skriver den i halen af $cmd som 2 cifret hexadecimalt tal, og den værdi returneres. Så er der en funktion, der aldrig bliver kaldt....
Hm..er det?... det ved jeg ik, fik i opgave at omskrive det, men kan ikke helt gennemskue det!
my $to = shift; my $from = shift; my $data = shift; my $udh = @_ ? shift : undef; my @p = (\'\') x $NoOfFields; $p[$TRN] = \'03\'; $p[$LEN] = \'00000\'; $p[$OoR] = \'O\'; $p[$OT ] = \'51\'; $p[$AdC ] = $to; $p[$AdC ] =~ s/^\\+/00/; $p[$OAdC] = $from; $p[$MT ] = \'3\'; if (defined($udh)) { # Treat $data as binary $p[$XSer] = \'01\' . sprintf(\'%02X\', length($udh) / 2) . uc($udh); $p[$MT ] = \'4\'; $p[$DCS ] = \'1\'; $p[$NB ] = sprintf(\'%04d\', length($data) * 8); } else { # Treat $data as ascii $data = &iso2emi($data); } $p[$MSG] = &ToHexStr($data); { my $len = &NumSum(2, map { 1 + length($_) } @p); $p[$LEN] = sprintf(\'%05d\', $len); } my $cmd = join(\'\', map { $_ . \'/\' } @p); my $cksum = &NumSum(map { ord($_) } split(//, $cmd)); $cksum &= 0xFF; return $cmd . sprintf(\'%02X\', $cksum); Det var vidst sårn den var!..
Man kan jo ikke bare skrive den om uden at vide hvor shift får værdierne fra, og hvor f.eks. $TRN kommer fra - måske har du løst den del i ASP, men så fortæl os det .... he he - det kommer til at fylde noget mere i ASP
Jeg fatter nada af perl, tror de selv må omskrive det der :)
Som sagt kunne jeg gøre det, men jeg mener ikke jeg har oplysninger nok.
Kurser inden for grundlæggende programmering