Log in

View Full Version : Why isn't this working?


Silicate Wielder
December 6th, 2012, 08:40 PM
Okay Today I made a translator that just turns your letters into random charactors, its monster of a script and I can't seem to get it to use my output variable. I'm not sure what is going on, can anyone help me?

Also how do I retrieve data from files? I can save them but I can't retrieve them.

Translator
var input = prompt("Enter text to convert here.")
var Output;
var letter = 1
var lett = 0
var translate = function (once) {
if(letter < input.length) {;
if(input.substring(letter, lett) === "a") {;
Output = Output + "`";
};
if(input.substring(letter, lett) === "b") {;
Output = Output + "~";
};
if(input.substring(letter, lett) === "c") {;
Output = Output + "1";
};
if(input.substring(letter, lett) === "d") {;
Output = Output + "!";
};
if(input.substring(letter, lett) === "e") {;
Output = Output + "2";
};
if(input.substring(letter, lett) === "f") {;
Output = Output + "@";
};
if(input.substring(letter, lett) === "g") {;
Output = Output + "3";
};
if(input.substring(letter, lett) === "h") {;
Output = Output + "#";
};
if(input.substring(letter, lett) === "i") {;
Output = Output + "4";
};
if(input.substring(letter, lett) === "j") {;
Output = Output + "$";
};
if(input.substring(letter, lett) === "k") {;
Output = Output + "5";
};
if(input.substring(letter, lett) === "l") {;
Output = Output + "%";
};
if(input.substring(letter, lett) === "m") {;
Output = Output + "6";
};
if(input.substring(letter, lett) === "n") {;
Output = Output + "^";
};
if(input.substring(letter, lett) === "o") {;
Output = Output + "7";
};
if(input.substring(letter, lett) === "p") {;
Output = Output + "&";
};
if(input.substring(letter, lett) === "q") {;
Output = Output + "8";
};
if(input.substring(letter, lett) === "r") {;
Output = Output + "*";
};
if(input.substring(letter, lett) === "s") {;
Output = Output + "9";
};
if(input.substring(letter, lett) == "t") {;
Output = Output + "(";
};
if(input.substring(letter, lett) === "u") {;
Output = Output + "0";
};
if(input.substring(letter, lett) === "v") {;
Output = Output + ")";
};
if(input.substring(letter, lett) === "w") {;
Output = Output + "-";
};
if(input.substring(letter, lett) === "x") {;
Output = Output + "_";
};
if(input.substring(letter, lett) === "y") {;
Output = Output + "=";
};
if(input.substring(letter, lett) === "z") {;
Output = Output + "+";
};
if(input.substring(letter, lett) === ".") {;
Output = Output + "q";
};
if(input.substring(letter, lett) === ",") {;
Output = Output + "w";
};
if(input.substring(letter, lett) === "/") {;
Output = Output + "e";
};
if(input.substring(letter, lett) === ";") {;
Output = Output + "r";
};
if(input.substring(letter, lett) === "'") {;
Output = Output + "t";
};
if(input.substring(letter, lett) === "[") {;
Output = Output + "y";
};
if(input.substring(letter, lett) === "]") {;
Output = Output + "u";
};
if(input.substring(letter, lett) === "<") {;
Output = Output + "o";
};
if(input.substring(letter, lett) === ">") {;
Output = Output + "p" ;
};
if(input.substring(letter, lett) === "?") {;
Output = Output + "";
};
if(input.substring(letter, lett) === ":") {;
Output = Output + "[";
};
if(input.substring(letter, lett) === "{") {;
Output = Output + "{";
};
if(input.substring(letter, lett) === "}") {;
Output = Output + "]";
};
if(input.substring(letter, lett) === "|") {;
Output = Output + "}";
};
if(input.substring(letter, lett) === "2") {;
Output = Output + "|";
};
if(input.substring(letter, lett) === "3") {;
Output = Output + "a";
};
if(input.substring(letter, lett) === "4") {;
Output = Output + "s"
};
if(input.substring(letter, lett) === "5") {;
Output = Output + "d";
};
if(input.substring(letter, lett) === "6") {;
Output = Output + "f";
};
if(input.substring(letter, lett) === "7") {;
Output = Output + "g";
};
if(input.substring(letter, lett) === "8") {;
Output = Output + "h";
};
if(input.substring(letter, lett) === "9") {;
Output = Output + "j";
};
if(input.substring(letter, lett) === "0") {;
Output = Output + "k";
};
if(input.substring(letter, lett) === "-") {;
Output = Output + "l";
};
if(input.substring(letter, lett) === "=") {;
Output = Output + ";";
};
if(input.substring(letter, lett) === "`") {;
Output = Output + ":";
};
if(input.substring(letter, lett) === "~") {;
Output = Output + "'";
};
if(input.substring(letter, lett) === "_") {;
Output = Output + "z";
};
if(input.substring(letter, lett) === "+") {;
Output = Output + "x";
};
if(input.substring(letter, lett) === "!") {;
Output = Output + "c";
};
if(input.substring(letter, lett) === "@") {;
Output = Output + "v"
};
if(input.substring(letter, lett) === "#") {;
Output = Output + "b";
};
if(input.substring(letter, lett) === "$") {;
Output = Output + "n";
};
if(input.substring(letter, lett) === "%") {;
Output = Output + "m";
};
if(input.substring(letter, lett) === "^") {;
Output = Output + ",";
};
if(input.substring(letter, lett) === "&") {;
Output = Output + "<";
};
if(input.substring(letter, lett) === "*") {;
Output = Output + ".";
};
if(input.substring(letter, lett) === "(") {;
Output = Output + ">";
};
if(input.substring(letter, lett) === ")") {;
Output = Output + "/";
};
console.log("completed letter " + letter);
letter = letter + 1;
lett = lett + 1;
translate(input);
};
alert("Conversion complete");
console.log(Output);
};
translate();

ethanf93
December 6th, 2012, 11:34 PM
My guess is change the first two lines to
var input = prompt("Enter text to convert here.");
var Output = "";

Just FYI it looks like you've got some pretty bizarre use of semicolons throughout- as far as I see that shouldn't impact the output

Silicate Wielder
December 7th, 2012, 05:07 PM
My guess is change the first two lines to
var input = prompt("Enter text to convert here.");
var Output = "";

Just FYI it looks like you've got some pretty bizarre use of semicolons throughout- as far as I see that shouldn't impact the output


I have no idea why it isn't, thats why I came here to ask.

Maybe I'll make a smaller, looped version that looksup each letter individually instead of all at once.

btw
when making a variable without text you can do without the quotation marks.

var Output;

ethanf93
December 7th, 2012, 06:47 PM
btw
when making a variable without text you can do without the quotation marks.

var Output;
I'm not familiar with whatever language this is (Javascript I presume? That wasn't specified)

Have you tried changing var Output to var Output = ""? Most languages do not deal with uninitialized variables very well. (Not being initialized and being initialized with an empty string are different)

Is there a specific error message (and what you're using to run the program) you could post?

Silicate Wielder
December 9th, 2012, 06:54 PM
It's Javascript

I'm embeding the javascript code within an HTML file I don't get an error message, but after I get the completion notice it dosn't write the output into the webpage.

ethanf93
December 9th, 2012, 08:23 PM
Change the first lines to

var input = prompt("Enter text to convert here.")
var Output = "";
var letter = 0;
var lett = 1;

and add

document.writeln(Output);

on the last line. I've just tested this and it works.

btw
when making a variable without text you can do without the quotation marks.This is not correct; in your code the variable Output is declared but not defined. You want it to be defined to be an empty string. Think about it like this:

You have a variable X which is not defined.
You say X += 1.
Since += is the same as X = X + 1
X is being assigned to a value dependent on X. But X has no defined value. Bad news! If X had been initialized to an empty string that's something we know the value of.
In Javascript X will be given a special undefined value but in other languages you can get really bad results if you try this.