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>