Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem SMS preloz do textu

Nevite nekdo proc mi nejde tento script, zdroj je z morseovky. Chci aby uzivatel kdyz napise m tak mu to prelozi do 6, kdyz napise n tak mu to prelozi do 66 viz:

<SCRIPT language=JavaScript>
<!--
function preloz(formular1) {
znaky = new Array(
"0","1","2","3","4","5","6","7","8","9",
"A","B","C","D","E","F","G","H","I","J",
"K","L","M","N","O","P","Q","R","S","T",
"U","V","W","X","Y","Z",
"a","b","c","d","e","f","g","h","i","j",
"k","l","m","n","o","p","q","r","s","t",
"u","v","w","x","y","z",
" ","_",".",",","?",":",";","-","!","/");

morseovka = new Array(
"-----",".----","..---","...--","....-",
".....","-....","--...","---..","----.",
".-","-...","-.-.","-..",".","..-.",
"--.","....","..",".---","-.-",".-..",
"--","-.","---",".--.","--.-",".-.",
"...","-","..-","...-",".--","-..-",
"-.--","--..",
".-","-...","-.-.","-..",".","..-.",
"--.","....","..",".---","-.-",".-..",
"--","-.","---",".--.","--.-",".-.",
"...","-","..-","...-",".--","-..-",
"-.--","--..",
" "," ",".-.-.-",
"--..--","..--..","---...","-.-.-.", "-....-","!","-..-.");

var vstup = formular1.vstup.value;
var vystup = ""
formular1.vystup.value = vystup;
for(poradi = 0; poradi < vstup.length; poradi++) {
znak = vstup.charAt(poradi);
for (i = 0; i < znaky.length; i++) {
if (znak == znaky[i]) {

vystup += morseovka[i];
break;
  }
 }
}
formular1.vystup.value = vystup;
}

-->
</SCRIPT>

<form name="formular1">
<textarea name=vstup rows=3 cols=70></TEXTAREA>
<p><input onclick=javascript:preloz(this.form) type=button value=Přelož></p>
<textarea readonly name=vystup rows=3 wrap=physical cols=70>
</TEXTAREA>
</form>

Ale nejak mi to nepreklada :(

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Po opravení syntaktických chýb by to fungovalo, ale ak by si to chcel zapísať trochu kratšie a efekt… poslední
los 19.12.2007 11:08
los

Po opravení syntaktických chýb by to fungovalo, ale ak by si to chcel zapísať trochu kratšie a efektívnejšie, tak by sa to dalo ďalej upraviť. Napr. by si nemusel mať v tabuľke preklad z malého a veľkého písmena na ten istý reťazec, prípadne by si si mohol ušetriť jedno lineárne vyhľadávanie.

Výsledok by mohol vyzerať nejako takto:

function preloz(form) {
	var morse = {
		"A":"2","B":"22-","C":"222-","D":"3-","E":"33-","F":"333-","G":"4-",
		"H":"44-","I":"444-","J":"5-","K":"55-","L":"555-","M":"6-","N":"66-",
		"O":"666-","P":"7-","Q":"77-","R":"777-","S":"7777-","T":"8-","U":"88-",
		"V":"888-","W":"9-","X":"99-","Y":"999-","Z":"9999-",
		" ":" ","_":" ",".":".-.-.-",",":"--..--",
		"?":"..--..",":":"---...",";":"-.-.-.","-":"-....-",
		"!":"!","/":"-..-."
	}

	var result = ""
	var text = form.vstup.value.toUpperCase();

	for (var i = 0; i < text.length; ++i)
	    morse[text.charAt(i)] && (result += morse[text.charAt(i)]);

	form.vystup.value = result;
}

Zpět do poradny Odpovědět na původní otázku Nahoru