Avatar billede sbarnney Nybegynder
27. december 2002 - 15:18 Der er 6 kommentarer og
1 løsning

Omskruvning af loop

Er der nogen der kan omskrive dette loop, da jeg bruger 14 karakter i min streng.

<form name="myform">
<input type="Text" name="one" >
<input type="Button" value=" test " onclick="fChar();">
</form>

<script language="JavaScript">
//<--

function fChar(){
    var str = document.myform.one.value;
    var a = str.charAt('0');
    var b = str.charAt('1');

    if(a == "1"){
    a = a.replace("1","8"); }
    else if (a == "2"){
    a = a.replace("2","4"); }
    else if (a == "3"){
    a = a.replace("3","c"); }
    else if (a == "4"){
    a = a.replace("4","2"); }
    else if (a == "5"){
    a = a.replace("5","a"); }
    else if (a == "7"){
    a = a.replace("7","e"); }
    else if (a == "8"){
    a = a.replace("8","1"); }
    else if (a == "a"){
    a = a.replace("a","5"); }
    else if (a == "b"){
    a = a.replace("b","d"); }
    else if (a == "c"){
    a = a.replace("c","3"); }
    else if (a == "d"){
    a = a.replace("d","b"); }
    else if (a == "e"){
    a = a.replace("e","7"); }

    if(b == "1"){
    b = b.replace("1","8"); }
    else if (b == "2"){
    b = b.replace("2","4"); }
    else if (b == "3"){
    b = b.replace("3","c"); }
    else if (b == "4"){
    b = b.replace("4","2"); }
    else if (b == "5"){
    b = b.replace("5","a"); }
    else if (b == "7"){
    b = b.replace("7","e"); }
    else if (b == "8"){
    b = b.replace("8","1"); }
    else if (b == "a"){
    b = b.replace("a","5"); }
    else if (b == "b"){
    b = b.replace("b","d"); }
    else if (b == "c"){
    b = b.replace("c","3"); }
    else if (b == "d"){
    b = b.replace("d","b"); }
    else if (b == "e"){
    b = b.replace("e","7"); }

var mac = a + b;
alert(mac);
}

//-->
</script>

MVH Stig
Avatar billede kennie_nm Nybegynder
27. december 2002 - 17:28 #1
1) øøøh, hvor var loopet henne?

2) kan du beskrive dit problem lidt bedre
Avatar billede jespernaur Nybegynder
27. december 2002 - 17:50 #2
Prøv detteher, det udfører konverteringen på samtlige tegn i tekstfeltet (men hvad skal det dog bruges til?):

<form name="myform">
<input type="Text" name="one" >
<input type="Button" value=" test " onclick="fChar();">
</form>

<script language="JavaScript">
//<--

function fChar(){
    var str = document.myform.one.value;
    var mac = '';
    for (var inx = 0; inx < str.length; inx++) {
        var a = str.charAt(inx);

        if(a == "1"){
            a = "8"; }
        else if (a == "2"){
            a = "4"; }
        else if (a == "3"){
            a = "c"; }
        else if (a == "4"){
            a = "2"; }
        else if (a == "5"){
            a = "a"; }
        else if (a == "7"){
            a = "e"; }
        else if (a == "8"){
            a = "1"; }
        else if (a == "a"){
            a = "5"; }
        else if (a == "b"){
            a = "d"; }
        else if (a == "c"){
            a = "3"; }
        else if (a == "d"){
            a = "b"; }
        else if (a == "e"){
            a = "7"; }


        mac = mac + a;
    }
    alert(mac);
}

//-->
</script>

Mvh
Jesper Naur
Avatar billede sbarnney Nybegynder
27. december 2002 - 21:39 #3
Jeg har sat a = char(0), b = char(1) osv. op til char(13).  Men fordi jeg ikke vil lave en konvertering af samtlige 14 indtastede tegn, da konverteringen er ens på alle 14, vil jeg lave et loop. Det jeg har vist er statisk (uden loop).
Det er til at konvertere en mac adresse fra en type til en anden.

MVH Stig
Avatar billede jespernaur Nybegynder
27. december 2002 - 22:13 #4
Hvis det er mac adresser du skal have konverteret, er der flere ting jeg ikke forstår:

1) Koden som den står mangler at kunne håndtere cifrene 0, 6, 9 og f.

2) En mac adresse er 12 cifre lang, ikke 14 (hvis man ser bort fra de minus-tegn, der i visse notationer benyttes til at dele den op i 6 grupper a 2 cifre
Avatar billede sbarnney Nybegynder
28. december 2002 - 09:16 #5
0, 6, 9 og f er lig sig selv. 14 fordi jeg skriver punktum med.
Avatar billede sbarnney Nybegynder
28. december 2002 - 09:24 #6
Hej Jesper, dit script virker. Der er bare en lile hage, jeg glemte at nævne at i konveteringen af adressen byttes der rundt på char0 og 1, 2 og 3, 5 og 6, 7 og 8, 10 og 11, 12 og 13. 4 og 9 er punktum.

stig
Avatar billede sbarnney Nybegynder
28. december 2002 - 09:31 #7
Hej igen.

alert(mac.charAt('1') + mac.charAt('0') + mac.charAt('3') + mac.charAt('2') + mac.charAt('4') + mac.charAt('6') + mac.charAt('5') + mac.charAt('8') + mac.charAt('7') + mac.charAt('9') + mac.charAt('11') + mac.charAt('10') + mac.charAt('13') + mac.charAt('12'));

Så får vi sat tegnnene rigtig.

Tak for hjælpen, godt nytår.

stig

P.S.  Hvis du har en bedre løsning vil jeg meget gerne se den.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Banedanmark

ERTMS Test Manager

Politiets Efterretningstjeneste

AI/ML udvikler i PET

Capgemini Danmark A/S

Client Partner

Zealand Business College

Faglærer til Data/IT på ZBC i Ringsted

Erhvervshus Hovedstaden S/I

Erfaren IT- og AI-specialist