Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #34389
| Newsgroups | comp.lang.javascript |
|---|---|
| Date | 2017-11-22 18:56 -0800 |
| References | <c5be9738-d254-48c0-a0fe-705ef502baef@googlegroups.com> <b7e9f037-f25d-4edd-a9e5-83e71cf9e9aa@googlegroups.com> <48bf3317-1664-4f3b-ad94-104026636d5f@googlegroups.com> <fed8c4d7-613f-47d3-b29d-713b509e9103@googlegroups.com> |
| Message-ID | <45f6e64d-9d8d-41e7-a0bd-ec790ebcabe8@googlegroups.com> (permalink) |
| Subject | Re: Fork algorithm |
| From | Jonas Thörnvall <jonas.thornvall@gmail.com> |
Den torsdag 23 november 2017 kl. 03:47:46 UTC+1 skrev Jonas Thörnvall:
> Den torsdag 23 november 2017 kl. 03:06:54 UTC+1 skrev Jonas Thörnvall:
> > Den onsdag 22 november 2017 kl. 16:50:30 UTC+1 skrev Jonas Thörnvall:
> > > Den onsdag 22 november 2017 kl. 02:58:12 UTC+1 skrev Jonas Thörnvall:
> > > > Had some time to remove the paragraphs and replace with numbers tonight.
> > > > I think it is ok. But it don't handle any special chars, it just fork plain words into a structure.
> > > >
> > > > http://anybase.co.nf/insertTWO/chessbook.html
> > > >
> > > > <!DOCTYPE html>
> > > > <html>
> > > > <head>
> > > > <meta http-equiv="Cache-Control" content="no-store" />
> > > > <meta http-Equiv="content-type" content="text/html; charset=UTF-8">
> > > > <link REL="StyleSheet" TYPE="text/css" HREF="drop.css">
> > > > <script type="text/javascript" src="loadsave.js"></script>
> > > > <script type="text/javascript" src="CSS.js"></script>
> > > > </head>
> > > > <script>
> > > >
> > > > function createStruct() {
> > > > newword=true;
> > > > beeninside=false;
> > > > inserted = false;
> > > > endstruct = "*";
> > > > separator = " ";
> > > > subseparator = "";
> > > > newString= "";
> > > > stringPrevMem = "";
> > > > stringMem = "";
> > > > posStructString="";
> > > > //Get values to read in
> > > > startval="a*1";
> > > > endval="zzz*3";
> > > > encodedString = document.getElementById("encodedText").value;
> > > > encodedString=startval+encodedString+endval;
> > > > mystr = document.getElementById("inputTextToSave").value;
> > > > //Split string into words to read in
> > > > strArr = mystr.split(separator);
> > > > //Search words
> > > > for (var x = 0; x < strArr.length; x++) {
> > > > newString=strArr[x];
> > > > stringInserted=false;
> > > > searchItem(newString);
> > > > }
> > > > printArray();
> > > > }
> > > >
> > > > function searchItem(newString) {
> > > > stringPrevMem = "";stringMem = "";z=0;
> > > > while (z < encodedString.length && stringInserted==false) {
> > > > if (encodedString.charAt(z) == "*") {
> > > > //FOUND WHOLE WORD
> > > > newword=true; beeninside=false;
> > > > // alert("WORD FOUND, STRINGMEM="+stringMem);
> > > > } else if (!isNaN(parseInt(encodedString.charAt(z)))) {
> > > > // alert("FOUND FORK AT CHARACTER NUMBER -> "+encodedString.charAt(z)+" z="+z);
> > > > stringMem = stringMem.slice(0,-encodedString.charAt(z));
> > > > } else {
> > > > stringMem += encodedString.charAt(z);
> > > > newSubString=newString.substring(0,stringMem.length);
> > > > // alert("Kodad sträng i minne "+stringMem+" Ny sträng i minne "+newSubString);
> > > > if (newSubString==stringMem) {
> > > > // alert("Strings equal size");
> > > > oldStructLength=z;
> > > > document.getElementById("debug").value+="Old position="+oldStructLength+" EQUAL Newstring="+newSubString+" Stringmem="+stringMem+" Prevstringmem="+stringPrevMem+"\n";
> > > > }
> > > > else if (newSubString>stringMem && newword==true && beeninside==false) {
> > > > // alert("Newsubstring bigger");
> > > > oldStructLength=z;
> > > > newword=false;beeninside=true;
> > > > stringPrevMem = stringMem;
> > > > }
> > > > else if (newSubString<stringMem) {
> > > > // alert("Newsubstring smaller *INSERT*");
> > > > oldStructLength=z;
> > > > checkWhatTOInsert();
> > > > }
> > > > }
> > > > z++;
> > > > }
> > > > }
> > > >
> > > > function checkWhatTOInsert(){
> > > > putString="";
> > > > insertString = newString.substring(newSubString.length-1, newString.length);
> > > > insertChar = insertString.split('');
> > > > for (var m=0;m<insertChar.length;m++){
> > > > putString+=insertChar[m];
> > > > }
> > > > putString+="*";
> > > > putString+=insertChar.length;
> > > > encodedString=insertSubstring(encodedString,oldStructLength,putString);
> > > > document.getElementById("encodedText").value=encodedString;
> > > > stringInserted=true;
> > > > //alert ("NEW ENCODEDSTRING "+encodedString);
> > > > }
> > > >
> > > > function insertSubstring(str, index, value) {
> > > > return str.substr(0, index) + value + str.substr(index);
> > > > }
> > > >
> > > > function printArray() {
> > > > document.getElementById("decodedText").value="";
> > > > encodedString = document.getElementById("encodedText").value;
> > > > stringMem="";
> > > > for (var z = 0; z < encodedString.length; z++) {
> > > > if (!isNaN(parseInt(encodedString.charAt(z)))) {
> > > > stringMem = stringMem.slice(0,-encodedString.charAt(z));
> > > > } else if (encodedString.charAt(z) == "*") {
> > > > document.getElementById("decodedText").value+=stringMem+"\n";
> > > > } else {
> > > > stringMem += encodedString.charAt(z);
> > > > }
> > > > }
> > > > }
> > > >
> > > > </script>
> > > > <body onload="printArray();">
> > > > <div class="dropdown">
> > > > <button onClick="MA()" class="dropbtn"><B>___File___</button>
> > > > <div id="MA" class="dropdown-content">
> > > > <button onclick="newFile()" class="button"><B>New File</B></button>
> > > > <br>
> > > > <label class="custom-file-upload">
> > > > <input type="file"/ id="fileToLoad" onchange="loadFileAsText()"><B> Load File</B>
> > > > </label>
> > > > <br>
> > > > <button onclick="saveTextAsFile()" class="button"><B> Save File</B></button><input id="inputFileNameToSaveAs" value="newfile.txt"></input>
> > > > </div>
> > > > </div>
> > > > <br>
> > > > <Font size="4">DEBUG</Font><br>
> > > > <textarea id="debug" cols="80" rows="3"></textarea><br>
> > > > <br>
> > > > <button onclick="createStruct()">INSERT BUTTON!</button>
> > > > <br>
> > > > <Font size="4">INSERT IN STRUCTURE</Font><br>
> > > > <textarea id="inputTextToSave" cols="80" rows="12">stop come lose fine hope happy lovely me jumping tree basket ball banana bar bad bank</textarea><br>
> > > > <br>
> > > > <Font size="4">STRUCTURE</Font><br>
> > > > <textarea id="encodedText" cols="80" rows="12">ball*2nana*4t*2un*1tt*4</textarea><br>
> > > > <br>
> > > > <Font size="4">CONTENT READ OUT FROM STRUCTURE</Font><br>
> > > > <textarea id="decodedText" cols="80" rows="12"></textarea><br>
> > > > </body>
> > > > </html>
> > > I just had a look at the paragraph version, it have same problem with the fork when inserting.
> > >
> > > If anyone can see what goes wrong i am interested, my biggest fear is that it is a cascading problem in structure. I don't think it could be, but i have not thought that deep about it because i figured it would not be to start with.
> > >
> > > Lets hope it just a case i missed...
> > > If you have time and spot it tell me, otherwise i have to think and that is a cumbersome process.
> > >
> > > Paragraph forking structure
> > > http://anybase.co.nf/insert/chessbook.html
> > >
> > > Number forking same structure "removed paragraphs"
> > > http://anybase.co.nf/insertTWO/chessbook.html
> >
> > Remove the stars but the fork to insert still does not work correct, anyone with good eyes?
> >
> > http://anybase.co.nf/insertTHREE/chessbook.html
>
> <!DOCTYPE html>
> <html>
> <head>
> <meta http-equiv="Cache-Control" content="no-store" />
> <meta http-Equiv="content-type" content="text/html; charset=UTF-8">
> <link REL="StyleSheet" TYPE="text/css" HREF="drop.css">
> <script type="text/javascript" src="loadsave.js"></script>
> <script type="text/javascript" src="CSS.js"></script>
> </head>
> <script>
>
> function createStruct() {
> newword=true;
> beeninside=false;
> inserted = false;
> endstruct = "*";
> separator = " ";
> subseparator = "";
> newString= "";
> stringPrevMem = "";
> stringMem = "";
> posStructString="";
> //Start end dummies for insert
> startval="a1";
> endval="zzz3";
> //Get values to read in
> encodedString = document.getElementById("encodedText").value;
> encodedString=startval+encodedString+endval;
> mystr = document.getElementById("inputTextToSave").value;
> //Split string into words to read in
> strArr = mystr.split(separator);
> //Search words
> for (var x = 0; x < strArr.length; x++) {
> newString=strArr[x];
> stringInserted=false;
> searchItem(newString);
> }
> printArray();
> }
>
> function searchItem(newString) {
> stringPrevMem = "";stringMem = "";z=0;
> while (z < encodedString.length && stringInserted==false) {
> if (!isNaN(parseInt(encodedString.charAt(z)))) {
> // alert("FOUND FORK AT CHARACTER NUMBER -> "+encodedString.charAt(z)+" z="+z);
> newword=true; beeninside=false;
> stringMem = stringMem.slice(0,-encodedString.charAt(z));
> } else {
> stringMem += encodedString.charAt(z);
> newSubString=newString.substring(0,stringMem.length);
> // alert("Kodad sträng i minne "+stringMem+" Ny sträng i minne "+newSubString);
> if (newSubString==stringMem) {
> oldStructLength=z;
> // alert("Old position="+oldStructLength+" EQUAL Newstring="+newSubString+" Stringmem="+stringMem+" Prevstringmem="+stringPrevMem+"\n");
> document.getElementById("debug").value+="Old position="+oldStructLength+" EQUAL Newstring="+newSubString+" Stringmem="+stringMem+" Prevstringmem="+stringPrevMem+"\n";
> }
> else if (newSubString>stringMem && newword==true && beeninside==false) {
> oldStructLength=z;
> newword=false;beeninside=true;
> stringPrevMem = stringMem;
> // alert("Old position="+oldStructLength+" BIGGER Newstring="+newSubString+" Stringmem="+stringMem+" Prevstringmem="+stringPrevMem+"\n");
> document.getElementById("debug").value+="Old position="+oldStructLength+" BIGGER Newstring="+newSubString+" Stringmem="+stringMem+" Prevstringmem="+stringPrevMem+"\n";
> }
> else if (newSubString<stringMem) {
> oldStructLength=z;
> // alert("Old position="+oldStructLength+" SMALLER INSERT Newstring="+newSubString+" Stringmem="+stringMem+" Prevstringmem="+stringPrevMem+"\n");
> document.getElementById("debug").value+="Old position="+oldStructLength+" SMALLER INSERT Newstring="+newSubString+" Stringmem="+stringMem+" Prevstringmem="+stringPrevMem+"\n";
> checkWhatTOInsert();
> }
> }
> z++;
> }
> }
>
> function checkWhatTOInsert(){
> putString="";
> putString = newString.substring(newSubString.length-1, newString.length);
> putString+=putString.length;
> encodedString=insertSubstring(encodedString,oldStructLength,putString);
> document.getElementById("encodedText").value=encodedString;
> stringInserted=true;
> alert ("NEW ENCODEDSTRING "+encodedString);
> }
>
> function insertSubstring(str, index, value) {
> return str.substr(0, index) + value + str.substr(index);
> }
>
> function printArray() {
> document.getElementById("decodedText").value="";
> encodedString = document.getElementById("encodedText").value;
> stringMem="";
> for (var z = 0; z < encodedString.length; z++) {
> if (!isNaN(parseInt(encodedString.charAt(z)))) {
> document.getElementById("decodedText").value+=stringMem+"\n";
> stringMem = stringMem.slice(0,-encodedString.charAt(z));
> } else {
> stringMem += encodedString.charAt(z);
> }
> }
> }
> </script>
>
> <body onload="printArray();">
> <div class="dropdown">
> <button onClick="MA()" class="dropbtn"><B>___File___</button>
> <div id="MA" class="dropdown-content">
> <button onclick="newFile()" class="button"><B>New File</B></button>
> <br>
> <label class="custom-file-upload">
> <input type="file"/ id="fileToLoad" onchange="loadFileAsText()"><B> Load File</B>
> </label>
> <br>
> <button onclick="saveTextAsFile()" class="button"><B> Save File</B></button><input id="inputFileNameToSaveAs" value="newfile.txt"></input>
> </div>
> </div>
> <br>
> <Font size="4">DEBUG</Font><br>
> <textarea id="debug" cols="80" rows="3"></textarea><br>
> <br>
> <button onclick="createStruct()">INSERT BUTTON!</button>
> <br>
> <Font size="4">INSERT IN STRUCTURE</Font><br>
> <textarea id="inputTextToSave" cols="80" rows="12">basket banana bar bad bankball bat book branch buddy bed but bullet bright butt bell bishop joke tee task stop come lose hope fine ful flower cat cup crisp check choice charm fish happy lovely me jumping jack tree</textarea><br>
> <br>
> <Font size="4">FORK STRUCTURE</Font><br>
> <textarea id="encodedText" cols="80" rows="12"></textarea><br>
> <br>
> <Font size="4">CONTENT READ OUT FROM STRUCTURE</Font><br>
> <textarea id="decodedText" cols="80" rows="12"></textarea><br>
> </body>
A hint what goes wrong with the fork?
Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Fork algorithm Jonas Thörnvall <jonas.thornvall@gmail.com> - 2017-11-21 17:58 -0800
Re: Fork algorithm Jonas Thörnvall <jonas.thornvall@gmail.com> - 2017-11-22 07:50 -0800
Re: Fork algorithm Jonas Thörnvall <jonas.thornvall@gmail.com> - 2017-11-22 18:06 -0800
Re: Fork algorithm Jonas Thörnvall <jonas.thornvall@gmail.com> - 2017-11-22 18:47 -0800
Re: Fork algorithm Jonas Thörnvall <jonas.thornvall@gmail.com> - 2017-11-22 18:56 -0800
Re: Fork algorithm Jonas Thörnvall <jonas.thornvall@gmail.com> - 2017-11-22 19:07 -0800
csiph-web