English spelling check
no dictionary
This program accept user defined words at [Box 3, Aux.Words]
Delete repeat linesalphabet counterindex
update 2012-08-18
Zipped file with dictionary
enfresdeec
; doc
enfresdeec dict000a.htm has spelling check codes, but do not have dictionary.
You find dictionary words, put in "Box 5, Dictionary" program
should work. Please see document and How to get dictionary pickdata.htm extract /*documents*/ and //comments and <!--doc-->.
<a name="lanLink"> Language link
Here is language link section. Today 2012-04-26 only English
uploaded. Since dict000a.htm is capable for other language,
Liu,Hsinhan hope other author modify dict000a.htm for other
language and upload to internet. Please add link here. Suggest
upload zipped file, let user download whole dictionary once
and work in his/her own computer. Reduce internet flow load.
Each update, file size change. File size is not accurate.
dict000a.htm 96kbytes, spell check code only, no dictionary.
dict67en.zip 1,879kbytes, English dictionary 670207 words.
Please add other language link here. LiuHH 2012-04-26-19-57
You can add to your page upload to your domain.
If you want to add link to freeman2.com/dict000a.htm
Please mail to liu.hsinhan_aO_Gmail_dot_com
dict34fr.zip 912KBytes, French dictionary 338989 words.
dict25es.zip 653KBytes, Spanish dictionary 247049 words.
dict53de.zip 1,780KBytes, German dictionary 532319 words.
dict67ec.zip English dictionary, Chinese page.
<a name="whyUse">
2012-07-14-18-02 start
Why use dict000a.htm, dict67en.zip and
dict34fr.zip,dict25es.zip, dict53de.zip?
Advantage:
A1: hide your little tail (spelling error)
from public watch.
A2: reduce Internet traffic load.
A3: box3 accept user words as correct.
A4: dict000a.htm is free.
Dis-advantage:
D1: no suggestion for correction.
D2: if box5 dictionary is not complete,
you need to search online for a
complete dictionary.
2012-07-14-18-09 stop
Program environment:Window 7; MSIE 9.0.8112.16421; Acer Aspire 5750Z-4830
2012-03-30-13-25 LiuHH use HP WinXP computer unable to open dict67en.htm
If program not work, refresh page, at page bottom, click "allow".
If program not work, Box 5 no dictionary. How to get dictionary
One word spelling check, not cut at ' '. (Box 1 data will cut)
h17
If box 5 Dictionary is sorted, click FAST. otherwise click SLOW.
box 3 is Aux.Words. User put his own every day use words to box 3.
box 3 sorted or not, no difference. Program assume box 3 not sorted.
Box 1 input, Box 2 Output. Words are case sensitive.
fast/slow
[Spell check Box 1, FAST] is faster. 2012-02-29-09-37
slow: each word begin at index=0
fast: "zoo" begin at zo_=669098
Find Box 5 Dictionary words, 2012-02-25-17-01 LiuHH access
http://downloads.sourceforge.net/wordlist/scowl-7.1.zip
;
;
;
;
boxc06.value='string' //Above run button, below document.
indexWord ;
oneByte ;
newline to ',' ;
byteCount ;
update
If Box 7 definition has ['] then [family's album] "family's" is one word.
Box7 Alphabeta definition
h22h23h25
'h'=help
If modified Box 7 value, please click [update] button.
Bx8 in, Bx9 out. 'wo' is 'words' byte 1&2. h60
Use other program sort Box 9 data
, put sorted words back to Box 9.
Bx9 in, Bx5 out. OR
Box 5 has better sorted dictionary ;
Next buttons reveal memory data
h82
Box8 words
Box9 119111rds
Box 8 default value is LiuHH computer sort.exe result. Which is not
compatible with ANSI sequence. Box 7 comply with ANSI sequence
LiuHH write code to do correct sort. 2012-03-11-09-42
h60
Test split('\r\n')
In Box8, out Box9. One split insert
one '_' at string end. only.split("\r\n") do right job. string.split("\n")
keep '\r' become newline. string.split("\n\r") no split. Last byte is '_'.
<a name="index">■ Why write dict000a.htm
■ How to get dictionary
■ Select words
■ Sort words
■ FAST or SLOW
■ Box 3 store user name
■ One word check
■ Two words or long paper
■ isAlpha(ch)
■ isBeta(ch)
■ [byteCount] button, alphabet counter■ run first time output to Box 4
■ run second time output to Box 2
■ [indexWord] button
■ FAST search index all words
■ FAST search codes
■ why variable aa_, ab_ has '_'?
■ [oneByte] button
■ [newline to ','] button
■ Box 5 must not have ["], [,], [ ]
■ [update] button
■ [words to 119111rds] button
■ [noRepeat26] button Delete repeat linesdoc end<a name="docA001">
■ Why write dict000a.htm
2012-03-07-14-32 start.
Liu,Hsinhan use a computer Acer Aspire
5750Z-4830. It does not have a spelling
check program. (or LiuHH did not find it)
LiuHH need to check spelling error and
write a html file dict708a.htm which is
DICTionary 708K words, version A .htm
708125 words take 8160 kilo bytes space.
37,093 dict000a.htm has zero words
8,180,158 dict708a.htm has 708125 words
<a name="docA002">
If upload dict708a.htm to internet, each
time user check a paper. Download 8Mbytes
once, which is not efficient.
Online spelling check service
http://www.spellchecker.net/spellcheck/
http://www.jspell.com/public-spell-checker.html
do not send whole dictionary to you.
<a name="docA003">
Now upload smaller file dict000a.htm to
http://freeman2.com/dict000a.htm
user save dict000a.htm to your computer,
user download dictionary definition files
http://downloads.sourceforge.net/wordlist/scowl-7.1.zip
put 708125 words into Box 5 dict000a.htm,
then it is same as full function plain
vanilla spelling check file dict708a.htm
Store dict708a.htm in your computer, save
internet traffic load.
<a name="docA004">plain vanilla spelling check
mean it does not give you
correction suggestion.
2012-03-07-14-59 stop
<a name="docA005">
■ How to get dictionary
2012-03-07-17-46 start
2012-02-25-17-01 LiuHH accessed
http://downloads.sourceforge.net/wordlist/scowl-7.1.zip
which is a set dictionary word definition.
LiuHH work record as following
2012-02-25-16-46 in search engine
search for
Dictionary words list
<a name="docA006">
2012-02-25-16-55 access
http://www.net-comber.com/wordurls.html
2012-02-25-16-57 access
http://wordlist.sourceforge.net/
2012-02-25-17-00 access
http://sourceforge.net/projects/wordlist/files/SCOWL/Rev%207.1/scowl-7.1.zip/download
<a name="docA007">
2012-02-25-17-01 start download
save
http://downloads.sourceforge.net/wordlist/scowl-7.1.zip
as
Spell_Checker_Word_Lists_scowl-7.1.zip
2012-02-25-17-15 done
02/25/2012 05:15 PM 2,515,768 Spell_Checker_Word_Lists_scowl-7.1.zip
LiuHH use dial up, slowest speed.
<a name="docA008">Above is LiuHH download record. You may
go different path and get different
dictionary. It should be the same.
<a name="docA009">
■ Select words
2012-02-25-17-17 open
Spell_Checker_Word_Lists_scowl-7.1.zip
2012-02-25-17-18
md c:\$fm\receive\scowl-7
Sub-directory final\ has all words definition.
256 File(s) 8,158,835 bytes
next command (include ALL words, more than english*.* does)
2012-02-25-17-39
copy C:\$fm\receive\scowl-7\final\*.* C:\$fm\wk\dictionary_sum0.txt
add 256 Files to one dictionary_sum0.txt
02/25/2012 05:39 PM 8,158,836 dictionary_sum0.txt
<a name="docA010">
If you use smaller size and less words
copy c:\$fm\receive\scowl-7\final\english-words*.* c:\$fm\wk\dictionary_sum1_English.txt
or (next include more words than above)
copy c:\$fm\receive\scowl-7\final\english*.* c:\$fm\wk\dictionary_sum2_English.txt
the result page may give you a spelling error
which is actually common used word.
in dictionary_sum0.txt deleted few words
save result as C:\$fm\sort70wanbgn.txt
<a name="docA011">
■ Sort words
Next do sort command (70wan=700,000)
2012-02-25-19-43
sort < C:\$fm\sort70wanbgn.txt > C:\$fm\sort70wanEnd.txt
copy C:\$fm\sort70wanEnd.txt all words
paste to dict000a.htm [Box 5, Dictionary]
<TEXTAREA id=boxc05 rows=6 cols=38>
a... paste Dictionary words here ...zzz
</TEXTAREA>
<a name="docA012">
Dictionary words may have 708125 lines.
One line one word. You may have words
more than 708125, or less than 708125.
Now dict000a.htm is a function-right page.
<a name="docA013">
■ FAST or SLOW
There are two execution buttons
and
LiuHH experience, in average
SLOW execution time is ten times of
FAST execution time.
<a name="docA014">When use slow? When use fast?
If [Box 5, Dictionary] has sorted words
click FAST. Otherwise click SLOW.
SLOW button always start from first word,
If word is "about" SLOW and FAST be same
speed.
If word is "zebra" SLOW or FAST be very
different.
SLOW start from "a" to "zebra".
FAST start from "ze" at "Zea" to "zebra"
Fast search shorter time.
If user store non-sorted dictionary to
[Box 5, Dictionary], use SLOW only.
More about FAST Spell check.
<a name="docA015">
■ Box 3 store user name
[Box 3, Aux.Words] is user name, words.
[Box 3, Aux.Words] is always non-sorted.
Even if you sort [Box 3, Aux.Words],
program do not use fast method to Box 3.
You can merge Box 3 to Box 5 and re-do
sort again for new Box 5 data.<a name="docA016">
In Box 1 put just one 'a' and
click [Spelling check Box 1 FAST] get
checkPaper() elapse time:
0.027sec. you clicked fast
click [Spelling check Box 1 SLOW] get
checkPaper() elapse time:
0.028sec. you clicked slow
These seconds are no load basic running
time. //improved on 2012-03-08 at
//a103081831 and a103081834
2012-03-07-18-47 stop
<a name="docA017">
■ One word check
2012-03-07-21-35 start
User can input one word in one word input
box as shown below.
<a name="docA018">
One word input box do not cut word. If
you check the spelling of "Los Angeles"
read "Los Angeles" from
one word input box. It find answer in
[Box 3, Aux.Words]
<a name="docA019">
Output to one line below. Tell you
found in main dictionary what sequence
number word. or
found in aux. dictionary, or
not found any where and main dictionary
total word count.
<a name="docA020">
■ Two words or long paper
For Two words or long paper, input to
[Box 1, Input] Program read alphabeta
definition from Box 7. If a byte match
any one in Box 7, that byte is a part
of word. Otherwise not,
<a name="docA021">All not bytes cut word.
space ' ' is a not byte.
If input "Los Angeles" to [Box 1, Input],
program read two words "Los", "Angeles".
Find each one from dictionary.
<a name="docA022">
■ isAlpha(ch)
Initially program use
function isAlpha(ch){...}
It accept only
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
and ignore
ÅÖÜàáâäåçèéêëíîïñóôöøùúûü
but, scowl-7.1.zip contain many Å to ü
<a name="docA023">
■ isBeta(ch)
Later, LiuHH change to
function isBeta(ch){...}
Read bytes from [Box 7, Alphabeta definition]
All bytes in Box 7 accepted, but reject
blank ' ', reject tab, reject newline.
<a name="docA024">
This function isBeta(ch){...}
design may allow non-English dictionary
be used. It is just LiuHH guess, never
verify.
2012-03-07-21-59 stop
<a name="docA025">
■ [byteCount] button, alphabet counter
Box 5 input, Box 6 output. ALL UNICODE OK.
2012-03-08-09-05 start
How to create [Box 7, Alphabeta definition]
value?
Box 7 value is created by button.
Click [byteCount] button, program read all
bytes in [Box 5, Dictionary] and output
to [Box 6, Debug] User copy Box 6 value
paste to Box 7
<TEXTAREA id=boxc07 rows=3 cols=70>
'ABC... paste new definition here ...úûü
</TEXTAREA>
<a name="docA026">
//2012-03-15-14-53 a103151453 add sum number
//[byteCount] button tell you each byte used
//how many times in [Box 5, Dictionary]
//You find answer at Box 6. All Unicode OK.
//This is alphabet counter function.
If define ['] as word byte, then words
family's
o'clock
etc. will be found as one word.
If delete ['] from Box 7, then ['] cut
words, string like
family's
o'clock
etc. will be found as two words.
<a name="docA027">
[Box 1, Input] is input, text to be checked
[Box 2, Output] is output, wrong spell sum
[Box 4, Aux.Out] is output, wrong spell sum
What is the difference between Box 2 and 4?
<a name="docA028">
■ run first time output to Box 4
Program run first time get output in Box 4.
Sentence first word use capital. Dictionary
defined 'sentence' as word, but not define
'Sentence' Box 4 output contain all capital
words which is correct.
Search is case sensitive.<a name="docA029">
■ run second time output to Box 2
Program run second time get output in Box 2.
Second time, program convert all uppercase
to lowercase, redo spelling check for Box 4
words only. Box 4 output could be skipped.
But LiuHH output the first answer to Box 4
as reference.
2012-03-08-09-45 stop
<a name="docA030">
Condo buyer07, agent and inspector come to
see 14919 Normandie Ave. Apt.8
agent name is Melodee Pelano
inspector see house in detail and record.
Document writing stopped.
<a name="docA031">
2012-03-08-10-47 start
There are several click buttons as next
; ; ; ;
Each has following function.
<a name="docA032">
■ [indexWord] button
button
Input from Box 5, output to Box 4.
Box 5 is Dictionary word definition.
LiuHH use Dictionary has 670207 words.
One line one word. How to get dictionary<a name="docA033">
■ FAST search index all words
function indexWord(1) create index table
for a2z[] and a3z[]. Please paste
a sorted dictionary to box 5, then click
[update] and click [indexWord] button. If dictionary is not sorted,
output is non-sense.
Box 4, Aux.Out has
FAST search index all 670208 words
[[ //a2z[], a3z[] table
A_ , 0 , 0
AA_ , 3 , 1
AB_ , 38 , 2
AC_ , 66 , 3
.....
Zz_ , 152351 , 1143
Zö_ , 152354 , 1144
Zü_ , 152356 , 1145
a_ , 152358 , 1146
aa_ , 152362 , 1147
ab_ , 152394 , 1148
.....
ya_ , 666405 , 1782
yb_ , 666928 , 1783
.....
zw_ , 669838 , 1814
zy_ , 669852 , 1815
zz_ , 670085 , 1816
Ån_ , 670086 , 1817
Ös_ , 670089 , 1818
.....
éq_ , 670165 , 1828
ét_ , 670168 , 1829
év_ , 670203 , 1830
]]
a2z store left column strings.
a3z store middle column integers.
a2z[1]='AA_' ... a2z[1782]='ya_' and
a3z[1]= 3 ... a3z[1782]=666405
Dictionary[666405]='ya'
Dictionary[666708]='yard'<a name="docA034">2012-03-15-16-50 insert start
Older version, program treat 'Ös_' etc.
as variable and assign value to them. For
example set ya_=689, I can write
for(i0=a3z[ya_];i0<a3z[ya_+1];i0++)...
no need search ya_ start from a_, aa_ ...
Above design is good, if ALL be defined
as global variable in
if(typeof(aa_)=='undefined'){.....}
<a name="docA034a">
Now get trouble. "Liu,ZJ" search for zj_
zj*** is not used in dictionary and zj_
is not global variable and is undefined.
Assume user re-new Box 5 dictionary and
assign 'zjust' be a valid word. This is
done in function updateDict() and zj_
is defined in function updateDict() only.
Other function can not access zj_ value.
Because zj_ is not global variable.
<a name="docA034b">
With this difficulty, LiuHH must abort
above method.
Current version, aa_, ya_ etc are not a
variable. Each word, for example 'yard'
in global array variable a2z[] search ya_
start from a_, aa_ ... to ya_
Has match, has words. No match, no words.
<a name="docA034c">
ya_ , 666405 , 1782
find match at a2z[1782]=='ya_', read 1782
in a3z[1782] get 666405. In dictionary
array Dictionary[666405] is ya
[[ <==slow search start from here
A <==dictionary first word
A'asia
A's
AA
..... <==fast search skip 666405 lines
.....
ya <==search 'yard' start from here
yaba
yabber <==from ya to yb, sorted or not
..... <==does not matter.
yard <=="yard" is 666709th entry
.....
]]
2012-03-15-17-01 insert stop<a name="docA035">
■ FAST search codes
If Box 1 has a string "yard sale". to
search "yard", FAST button, program
convert "yard" to "ya_", find
a2z[1782]='ya_', then find a3z[1782]
be 666405. In
function checkFastWord(arg1,arg2)
use next code
bgn1=a3z[i0]; //a103092132
end1=a3z[i0+1]<a name="docA036">
now bgn1=666405
and end1=666928
search code is
for(j0=bgn1;j0<end1;j0++)
if(Dictionary[j0]==inWord)break;<a name="docA037">
FAST use narrow down range
for(j0=666405;j0<666928;j0++)
if(Dictionary[j0]==inWord)break;
faster than SLOW using whole dictionary
for(j0=0;j0<670207;j0++)
if(Dictionary[j0]==inWord)break;<a name="docA038">
button tell programmer (LiuHH) what
value a_, ab_ ... za_ ... zz_ are defined.
Debug purpose. User do not need worry.
If you go to Box 5 change first word from
'Österreich' to 'Ö' (or change any word)
then click button,
Box 4, Aux.Out will NOT show "Ö_ , 0 , 0"
Box 4, Aux.Out still show "Ös_ , 0 , 0"
<a name="docA039">
Because FAST button needed variable definition
Ös_=0
.....
ya_=689
yb_=690
.....
ås_=744
<a name="docA040">
are done at web page start up time.
Variable bx5Start is defined to be Box 5
value at start up time. When you change
Box 5 'Österreich' to 'Ö', variable
bx5Start still keep original value.
Box 4 output is not what you expected.
//added [update] button, solve problem.
2012-03-08-11-36 stop
<a name="docA041">
■ why variable aa_, ab_ has '_'?
2012-03-08-13-04 start
Why use variable aa_, ab_ etc?
Why not use variable aa, ab etc?
do_ , 175599 , 112
If text has a word 'door', program build
a variable 'do' and assign a value to it.
var do=112;
<a name="docA042">
This code line is an ERROR. Because 'do'
is reserved word. Do loop use do
do{ chore code } while(true)
To avoid reserved word error, add a '_'
after each variable.
2012-03-08-13-10 here
<a name="docA043">
■ [oneByte] button
Next see button
Input from Box 5, output to Box 4.
Box 5 is Dictionary word definition.
Those word has only one byte are recorded
to Box 4. Why one byte is a concern?
FAST search index all 708125 words to
variables a_, aa_, ab_, .....
<a name="docA044">
Most variables are two alphabet. Ony
26+26=52 variables are one alphabet.
[oneByte] button is debug button. Make
sure one byte variable be right. Alert
at ÅÖÜàáâäåçèéêëíîïñóôöøùúûü. If find
'Å', 'Ü' etc. need be careful.
2012-03-08-13-20 here
<a name="docA045">
2012-03-15-09-57 start
■ [newline to ','] button
Input from Box 1, output to Box 4.
[newline to ','] button change newline
to ','. This is a redundant process.
LiuHH insert newline with [+'\n'] and
split long string at newline with code
string.split('\n') WRONG! Newline is
'\r\n'. Insert code [+'\n'], system auto
change to [+'\r\n']. Split code system
<a name="docA045a">
not auto drop '\r'. After .split('\n'),
splitted string has '\r'. System change
incomplete newline '\r' to complete
'\r\n'. Result is splitted string has
newline at end. To avoid this undesired
result, LiuHH change [newline to ','],
then split(',') It has no efficiency.
Correct code is string.split('\r\n')
LiuHH write js code do not have guide.
Learn from failure, learn from thinking.
2012-03-15-10-17 stop
2012-03-08-13-20 here
<a name="docA046">
Next see button
Read input at Box 1, Output to Box 4.
From the command
copy final\*.* dictionary_sum0.txt
dictionary_sum0.txt has next form_A
[[ form_A
.....
decidable
decide
decided
decidedly
decidedness
.....
]]
<a name="docA047">
It is not next form_B
[[ form_B
.....
"decidable",
"decide",
"decided",
"decidedly",
"decidedness",
.....
]]
<a name="docA048">
form_B can be used in code section.
form_B no need to put in Box 5 and
form_B can not put in Box 5. Must
use text editor delete all ["], [,].
<a name="docA049">
■ Box 5 must not have ["], [,], [ ]
Now
copy final\*.* dictionary_sum0.txt
get form_A, each word short three bytes
["",] 708125 words save 2 MBytes space.
but
form_A can not be used in code section.
form_A must put in Box 5 and must not
have ' '. "book " never valid. Since
Box 7 reject ' '.
<a name="docA050">
From Box 5 no ["",] three bytes, change
code compatible form_B need change new
line bytes to ',' then split at ','.
//If split at newline, each word has
//a newline. Need additional work.
//If split at ',', ',' dropped.
<a name="docA051">
button test the code
change new line bytes to ','
be correct.
2012-03-08-13-39 stop
<a name="docA052">
2012-03-08-17-22 start
■ [update] button
Input Box 3,5,7. No output. Update system
memory.
button is added.
Without [update] button, dictionary is
defined at start up time. If user change
dictionary. It is not effective. User
must modify source code to get new words.
Now modify Box 5 dictionary and click
[update] button. New dictionary is
effective. Not use the code line
onchange='javascript:updateDict()'
because user may change several times.
Wait for user click [update] button.
2012-03-08-17-27 stop
<a name="docA053">Liu,Hsinhan is not a professional
programmer. Code may not be efficiency.
If you buy professional program, it
must run better than dict000a.htm
2012-03-08-21-12<a name="docA054">
2012-03-09-08-04 start
Today added second set
; ; ; ;
between box 1,2 and box 3,4.
added 3rd as at Box 5
added 2nd as at Box 5
added 2nd as at Box 5
for easier access.
2012-03-09-08-09 stop
<a name="docA055">
2012-03-09-17-42 start
2012-03-09-14-17 upload this page to
http://freeman2.com/dict000a.htm
2012-03-09-16-?? re-write dict000a.htm
see source find 'a1030916' and 'a1030917'
for code change.
<a name="docA056">
Before change, box 3 user words is
accessed at each word search. If
paper has 1000 words, box 3 user words
analysis 1000 times. which is a waste.
<a name="docA057">Program read variable value faster.
Program read html box value slower.
After change, box 3 user words is
processed once, save result to variable
auxWord[].
1000 words paper
scan auxWord[] 1000 times which is faster
not analysis box 3 value 1000 times which
is slower.
<a name="docA058">
Before change code, modified box 3 user
words no need click [update] button.
After change code, modified box 3 user
words DO need click [update] button.
Speed is first concern. Modified version
should be better.
2012-03-09-17-51 stop
<a name="docA059">
2012-03-10-11-01 start
update 2012-03-10 add document to
code. When write doc, also review
program structure. Made several
improvement. Please see source code
find 'a103092' and 'a10310'
User interface is same as before.
2012-03-10-11-04 stop
<a name="docA060">
2012-03-11-12-13 start
■ [words to 119111rds] button
Program added few more click buttons.
Bx8 in, Bx9 out.
Bx9 in, Bx5 out. OR
LiuHH computer is Acer Aspire5750Z-4830
Command prompt sort.exe command do not
comply with ANSI standard. Box 7 default
value is in ANSI order. But sorted
dictionary is not. LiuHH got next
<a name="docA061">
'sorted' output
[[
kn <== kn begin here
knab
.....
kniving
kümmel <== kn break here
kümmel's
kümmels
knob <== kn reappear here
.....
know <== never find
]]
"know" is not found in dictionary!!
Because "kümmel" cut "kn" team.
<a name="docA062">
To solve this problem, write
function a2d12(arg1){.....}
function d2a12(arg1){.....}
click [words to 119111rds] button
input from Box 8, output to Box 9
use a2d12(arg1) change
kniving
kümmel
kümmel's
kümmels
knob
.....
know
to
107110iving //ansi 107='k'
107252mmel
107252mmel's //ansi 252='ü'
107252mmels
107110ob //ansi 110='n'
.....
107110ow
<a name="docA063">
copy Box 9 value, save as c:\sort_bgn.txt
sort the numbered list,
sort < c:\sort_bgn.txt > c:\sort_end.txt
paste c:\sort_end.txt back to Box 9
<a name="docA064">
click [119111rds to words] button
input from Box 9, output to Box 5
use d2a12(arg1) change
107110iving
107110ob
107110ow
.....
107252mmel
107252mmel's
107252mmels
to
kniving
knob
know
.....
kümmel
kümmel's
kümmels
get right sort order, avoid no 'know'
trouble.
<a name="docA065">
2012-03-11-12-40 here
■ [noRepeat26] button Delete repeat lines
Program added next click buttons.
not sorted Box2 in, Box6 out.
sorted txt Box5 in, Box6 out.
Delete repeated lines. Lines must be
identical. Case sensitive, no extra ' '.
<a name="docA066">
Dictionary error spelling output Box 2
has many repeat. Sometime no need these
repeated words. Click [noRepeat26]
button, Box 2 is input, Box 6 output
no repeat result.
function noRepeat(arg1) do this job.
<a name="docA067">
Input is sorted or not sorted, make
difference.
Input Box 2 words are not sorted, call
noRepeat(arg1) use one parameter.
Input Box 5 words are sorted, call
noRepeat(arg1,arg2) use two parameters.
Both output to Box 6.
<a name="docA068">
noRepeat(arg1) see one parameter, it
exam repeat until end of list.
Above assume NOT sorted input Box2
Below assume sorted input Box5
noRepeat(arg1) see two parameters, it
exam repeat until first mis-match.
Before use [noRepeat56] button,
dictionary has 708125 words.
After use [noRepeat56] button,
dictionary has 670207 words.
Reduce load.
<a name="docA069">
scowl-7.1.zip use 256 File(s) 8,158,835 bytes
to classify words. One word may present in
several files. copy *.* > sum.txt command
record many repeated words.
[noRepeat56] button must use two parameters
otherwise, exam 708125 words to end of
list, it is nearly infinite time.
2012-03-11-12-56 stop
<a name="docA070">
2012-03-12-10-15 start
update 2012-03-12 has one minor change.
add one line
if(oup0[i0]==0)continue; //a103111719
to improve efficiency.
if(oup0[i0]==0) is true, then oup0[i0]
already checked, no need re-do.
2012-03-12-10-17 stop
<a name="docA071">
2012-03-15-11-41 start
update 2012-03-15 add
Delete repeat lines. Box 5 sorted input, Box 2 non-sorted input.
let delete repeat lines function more clear.
Distinguish sorted input from not sorted.
update 2012-03-15 add function noRepeat(arg1)
elapse time calculator. docA072 [noRepeat26]
update 2012-03-15 let user comma stand still.
docA074
update 2012-03-15 [byteCount] button accept all
Unicode. Count each character used how many
times. docA025 [byteCount] button
2012-03-15-11-49 stop
<a name="docA072">
2012-03-13-10-56 start
In function noRepeat(arg1) added elapse time
calculator. Box 5 dictionary start at 708125
words (has many repeats), reduce to 670207
words (no repeat). Elapse time report spend
0.4 sec. But LiuHH check watch, it last 6 to
8 seconds. Why big difference?
<a name="docA073">
LiuHH guess in function noRepeat(arg1) spend
0.4 second. Computer system look for Box 6
memory space to store 670207 words, spend
6-0.4=5.6 sec. This extra time is out side
of noRepeat(arg1) and not counted. Above is
LiuHH guess, may have other better reason.
2012-03-13-11-06 stop
<a name="docA074">
2012-03-13-13-20 start
update 2012-03-15 removed one bug. Bug code
is next line
boxc06.value=(noRepeat(boxc02.value)+"").replace(/,/g,"\n");
noRepeat(boxc02.value) return an array of
strings. The code
(noRepeat(boxc02.value)+"")
say convert array of strings to string.
<a name="docA075">
Change
[[
'abc',
'defgh',
'ijkl'
]]
to a string
'abc,defgh,ijkl'
here ',' is system comma. Cut string at
system comma and change line at ',' get
<a name="docA076">
correct output
[[
abc
defgh
ijkl
]]
If whole array no single ',', above code
is ok.
<a name="docA077">
If above 'g' were user comma ','.
User comma and system comma are mixed.
Result will be
[[
abc
def
h
ijkl
]]
which is wrong. Old code (ill code)
var inp1=arg1.replace(/\r\n/g,',');
convert newline to ',' confuse with
user comma.
<a name="docA078">
Now change code,
not use string.split(',')
not use string.split('\n')
New code is next
Dictionary=bx5Start.split('\r\n'); //a103132219
not use system comma,
not mix with user comma.
Return array of string to calling function.
<a name="docA079">
In click button, old code (lazy code +"")
boxc06.value=(noRepeat(boxc05.vale,1)+"").replace(/,/g,"\n");
mixed user comma and system comma. New
code not use system comma, no trouble.
[[
var tmp0=noRepeat(boxc02.value);
var tmp1="";//Box 2 not sorted input
for(var i0=0;i0<tmp0.length;i0++)
tmp1+=tmp0[i0]+"\n";
boxc06.value=tmp1; //a103131151
]]
write more lines, avoid trouble.
2012-03-13-13-38 stop
<a name="docA080">
2012-03-16-18-46 start
update 2012-03-16 add one code line
argZ=boxc03.value; //a103161827
without this line, user change box 3
and click [update] button, no update.
Forget argZ=boxc03.value; that is
LiuHH careless error. Now should be
OK. I can not promiss error-free.
No one proof read, proof run for me.<a name="docA081">
Second change is
[[
function indexWord()
{
.....
a2z[p3]=bx5Start.charAt(i0)
//a103161843 use isBeta()
+(isBeta(bx5Start.charAt(i0+1))?bx5Start.charAt(i0+1):'')
+'_'
.....
}
]]
isAlpha(ch) should not be used.
If use isAlpha(ch), then non-English
spelling check will give wrong [indexWord]
output to Box 4.
2012-03-16-18-52 stop
<a name="docA082">
2012-03-16-20-16 start
Today add three buttonsLet user see CURRENT in memory data.
[mainDict] output Dictionary words to Box 8.
[aux.Word] output Aux.Words to Box 9.
[AB] output Alphabeta definition to Box 9.
2012-03-16-18-10 found if user change box 3
and click [update] button, no update. Hope
see what is in memory, why no update? Build
above three buttons.
Inp Bx5, click [update],[mainDict] outp Bx8
Inp Bx3, click [update],[aux.Word] outp Bx9
Inp Bx7, click [update],[AB] output to Box9
Output and input should be identical.
2012-03-16-20-37 stop
<a name="docA083">
2012-03-17-12-01 start
update 2012-03-17
allow [byteCount] include tab and newlines.
Use function indf() to simplify index link.
2012-03-17-12-05 stop
<a name="docA084">
2012-03-18-09-29 start
update 2012-03-18 made three changes.
1. array begin at [1] (wrong) change
to begin at [0] (right)
2. remove redundant if()
3. change code allow [o'clock] be
found.
<a name="docA085">
Next is array begin correction record.
2012-03-17-14-06
[[
//newword=Dictionary[1]; //error
//for(i0=2;i0<size0;i0++) //error
//a103171402 i0=1, [0]
newword=Dictionary[0]; //right
for(i0=1;i0<size0;i0++) //right
{
oldword=newword;
newword=Dictionary[i0];
.....
}
]]
<a name="docA086">
a103171402 three changes in
if(typeof(aa_)=='undefined') //a102290923 use if, save time
function updateDict()
function indexWord()
<a name="docA087">
Next is remove redundant if() record.
a103171502 del if(typeof(aa_)=='undefined')
At first LiuHH thought use aa_ be defined
or not defined to control page start up
code. Actually if click button do not run
global code. This condition make
if(typeof(aa_)=='undefined')
useless. Change to
{{ //startUp/refresh definition body begin
..... global code here.
}} //startUp/refresh definition body end
//use '{{' and '}}' on purpose a103181005
<a name="docA088">
Next is change code allow [o'clock] be
found.
if(inWord.length==1)in1=inWord;
else
//in1=inWord.charAt(0)+inWord.charAt(1)
in1=inWord.charAt(0)+ //above no, below ok
(inWord.charAt(1)=="'"?"":inWord.charAt(1))
//a103172201 care "'", now [o'clock] OK
in1=in1+'_';
Because indexWord skip ['], then [o'_]
is never defined. search [o'clock] begin
at [o_], not begin at [o'_].
Error code can still find [Hadley's],
since ['] is not second byte.
<a name="docA089">
2012-03-17-21-?? found dict000a.htm can
not find dictionary word [o'clock]. After
a103172201 correction. Question is what
other dictionary word can not be found?
Paste whole dictionary from Box 5 to
input Box 1 click [FAST] and [SLOW] get
both not-found-list empty. (correct)
<a name="docA090">
2012-03-17-22-25 check whole
dictionary total 670207 words
7,689,097 Dictionary_67wan.txt
[FAST] button spend time 52sec.
[SLOW] button spend time 70min.
SLOW time / FAST time = 81
2012-03-18-09-58 stop
<a name="docA091">
2012-03-19-10-56 start
update 2012-03-19 simplify code.
Delete repeat codes. Please find
'a10319' in source code.
2012-03-19-10-57 stop
<a name="docA092">
2012-03-19-11-27 start
The word "UNICODE" can not be found.
Dictionary has "Unicode", no "unicode"
and no "UNICODE". //case sensitive
Program search for "UNICODE" then change
to lowercase, search for "unicode", both
no match. Report not found "UNICODE".
2012-03-19-11-30 stop
<a name="docA093">
2012-03-20-14-18 start
update 2012-03-20 add more information
for output. On top of Fast/Slow button
regular words is
[Spell check Box 1, FAST] is faster. 2012-02-29-09-37
If click [Fast] or [Slow] button, this
line change to
Total words:32 ; Box 4 not found:6 ; Box 2 not found:2
<a name="docA094">
It tell user, the total number of words
in Box 1 and not found numbers in Box 4
and Box 2. If click [del 1&2] reset this
information line.
<a name="docA095">
If user want to know the list of words in
Box 1. Please do the following.
Delete Box 3, Box 5 value. (save them in
a text editor) click [update]. Both main
dictionary and user words be empty. Now
click [Fast], all words listed in Box 2
is the list of words in Box 1. That is
<a name="docA096">
all words in Box 1 are not found.
After done. Paste main dictionary and
user words back to Box 5 and Box 3. Click
[update] return to normal function.
2012-03-20-14-31 stop
<a name="docA097">
2012-03-21-12-16 start
update 2012-03-21 fix one bug.
Earlier suggest reader delete Box 3,5
value, click [update] and find the list
of words in Box 1. Output to Box 2.
LiuHH tried this procedure and found
that Box 3 value not update, if Box 3
is empty. Made correction at
auxWord=argZ.split('\r\n'); //a103210100
Now it should be OK.
2012-03-21-12-21 stop
<a name="docA098">
2012-03-22-07-59 start
update 2012-03-22 set memory array to
empty array and begin index. Older
version forget do so, then original
dictionary has 1831 index
A_ , 0 , 0
AA_ , 3 , 1
AB_ , 38 , 2
.....
zy_ , 669852 , 1815
zz_ , 670085 , 1816
Ån_ , 670086 , 1817
.....
ét_ , 670168 , 1829
év_ , 670203 , 1830
END , 670207 , 1831
<a name="docA099">
Assume user put a new dictionary to
Box 5 which dropped words begin with
g,h,i,j,k,l,m,n,o,p,q,r,s,t,u
The indexWord button should present
this new contents. Total index number
should be less than 1831. But,
<a name="docA100">
forget "set memory array to empty array
and begin index" the new index is still
1831 elements.
.....
ét_ , 330855 , 1407
év_ , 330890 , 1408 <==new end here
below error
jt_ , 379269 , 1409 <==old not erase
ju_ , 379270 , 1410
.....
Old index at end of array, which is wrong.
<a name="docA101">
Code correction made at
function indexWord()
next is KEY correction
a2z=[]; //a103212314
a3z=[]; //a103212315
Please find source code, look for key
string "a1032123" for related change.
2012-03-22-08-08 stop
<a name="docA102">
2012-04-26-10-08 start
update 2012-04-26 upload both
dict67en.zip has English dictionary
670207 words and work OK.
dict000a.htm has spelling check codes,
but do not have dictionary
dict67en.zip has 7,765,862 dict67en.htm
dict67en.htm mean DICTionary,
67 (10thousand=wan):670207 words
ENglish.
<a name="docA103">
Expect dict000a.htm work for non English
if user put non English dictionary to
source file Box 5. Click [byteCount] and
update source file
Box 7, Alphabeta definition. Save file.
After these process, hope program work
for non English spelling check. But
Liu,Hsinhan never verify.
2012-04-26-10-28 stop
<a name="docA104">
2012-04-27-08-56 start
2012-04-27-06-12 download
http://www.winedt.org/Dict/unicode/fr.zip
Find that winedt.org sort dictionary words
first preference is words length, second
is alphabet order.
The word "zoo" will be before "about",
because "zoo" has three bytes and "about"
has five bytes. winedt.org sort method
can not be used in dict000a.htm.
dict000a.htm assume sort words use only
alphabet order. Word length is not a
factor.
<a name="docA105">
2012-04-27 update added
04/26/2012 05:10 PM 30,682 winedt.org_Dict-37-languages.htm
04/26/2012 05:10 PM 16,180 wordreference.com_a10426a.htm
to dict67en.zip
2012-04-27 update change title
from "Plain vanilla spelling check"
to "English spelling check". Because
consider non-English spelling check
web page is possible.
2012-04-27-09-06 stop
<a name="docA106">
2012-04-27-09-20 upstairs Apt.24 drop heavy
object several times. Almost every day do so.
Apt.26 nine person crowded living three
month. Recent few days not see Apt.26 in/out.
2012-04-09 Apt.20 broke door size glass.
2012-04-26 Apt.20 door size glass repaired.
2012-04-27-09-28 record
<a name="docA107">
2012-04-28-09-38 New Language detail
2012-04-28 upload French spelling check
with dictionary
http://freeman2.com/dict34fr.zip French
It has 338989 words, come from winedt.org
2012-04-27-06-12 LiuHH download
http://www.winedt.org/Dict/unicode/fr.zip
<a name="docA108">dict34fr.htm is a suggestion page.
Although it works as Liu,Hsinhan expected.
But LiuHH do not speak French. Expect
French-speaking author to re-write and
improve.
<a name="docA109">
Following is how to convert winedt.org
format to dict34fr.htm format.
Following red (#ff3333) and italic
text is working record
2012-04-28-10-11 here
<a name="docA110">2012-04-27-06-38 save
fr.dic as fr_dic01.txt (frWords1.txt)
total 338989 words
winedt.org sort words first requirement
is length. One byte words first group,
two bytes words second group etc. In
each group sort words by alphabet order.
On the other hand,
dict34fr.htm require ALL words sorted by
alphabet order, length is not a factor.
<a name="docA111">
Next re-do sort. LiuHH Acer computer
sort result is not ansi order. Please
see docA060
Above (below) fr_dic01.txt (frWords1.txt)
fr_dic01.txt is long file with real data.
04/27/2012 06:38 AM 4,097,891 fr_dic01.txt
04/27/2012 04:47 PM 5,453,793 fr_dic02.txt
04/27/2012 04:48 PM 5,453,793 fr_dic03.txt
04/27/2012 04:57 PM 4,097,891 fr_dic04.txt
frWords1.txt is shortened example file.
frWords1.txt to frWords4.txt are included
in dict34fr.zip
<a name="docA112">2012-04-27-16-47 copy paste
fr_dic01.txt to dict000a.htm box8
click [words to 119111rds]
save as fr_dic02.txt
Above record convert all fr_dic01.txt
"words" to "119111rds"
first two bytes change to number.
In ANSI code 'w' = #119 and 'o'=#111
"words" and "119111rds" are two different
expression for one word. sort.exe must
sort number "119111rds" in right order.
Please see shortened version frWords2.txt
<a name="docA113">2012-04-27-16-48
sort < fr_dic02.txt > fr_dic03.txt
Above is sort.exe command.
Output fr_dic03.txt has right order
which fit dict000a.htm (dict34fr.htm)
correctly. Please see shortened version
frWords3.txt
<a name="docA114">2012-04-27-16-49 open
fr_dic03.txt save to box9
2012-04-27-16-53 click [119111rds to words]
output to Box5
Copy fr_dic03.txt and paste to dict000a.htm
(or dict34fr.htm same) Box 9 which is input
click [119111rds to words] to convert
fr_dic03.txt number code to ANSI alphabet
output to dict000a.htm Box 5.
<a name="docA115">2012-04-27-16-57
save Box 5 as fr_dic04.txt
Above save dict000a.htm Box 5 value as
fr_dic04.txt
Please see shortened version frWords4.txt
Up to here, use dict000a.htm to convert
dictionary format. Not change dict000a.htm
source code. Now merge French dictionary
to dict000a.htm and save as dict34fr.htm
Save to where in source code? See next.
<a name="docA116">2012-04-27-17-01 save as
dict34fr.htm
Above open source code of dict000a.htm
and find Box 5
[[
<TEXTAREA
id=boxc05
name=boxc05 rows=6
cols=38
>
copy frWords4.txt and
put long words list here
one line one word,
total 338989 French words
save file as dict34fr.htm
let French dictionary be
part of dict34fr.htm
permanently.
</TEXTAREA>
]]
<a name="docA117">
Only update dictionary definition still
not enough. because dict000a.htm Box 7
define alphabet which is still English
alphabet. Need change to French alphabet.
<a name="docA118">2012-04-27-17-52 click [byteCount]
input is Box 5, output to Box6
French alphabet is
'-ABCDEFGHIJLMNOPQRSTUVWabcdefghijklmnopqrstuvwxyzàâäæçèéêëîïôöùúûüœ
save to Box7 <a name="docA119">
dict34fr.htm Box 5 is French dictionary.
Click , program read Box 5
value and find all bytes used in Box5.
Output to Box 6. First line is French
alphabet. Now open dict34fr.htm source
code and find id=boxc07 next
<TEXTAREA
id=boxc07
name=boxc07 rows=3
cols=70
>
'-ABCDEFGHIJLMNOPQRSTUVWabcdefghijklmnopqrstuvwxyzàâäæçèéêëîïôöùúûüœ
</TEXTAREA>
<a name="docA120">
Put French alphabet to Box 7, save file
dict34fr.htm let change be permanent.
Now dict34fr.htm is a work correctly
French spelling check file. Again,
dict34fr.htm is a suggestion, need
French-speaking author to re-write and
improve.
<a name="docA121">
dict34fr.htm (dict34fr.zip) is already
here. French reader may not worry above
steps. LiuHH can convert few languages,
many other language user, please refer
to above procedure and do it yourself.
2012-04-28-11-30 stop
<a name="docA122">
Big size zipped files not update easily.
dict000a.htm will update frequently.
Please visit
http://freeman2.com/dict000a.htm
for update information.
2012-04-28-12-15 stop
<a name="docA123">
2012-04-28-14-57 start
dict34fr.htm Box 1 has French example
text. What is its meaning? Following
is working record.
2012-04-27-18-30 LiuHH access
http://forum.joomla.fr/showthread.php?18268-guestbook-en-fran%C3%A7ais
find French example text below.
<a name="docA124">
2012-04-28-00-27 access
http://translate.google.com/#
[[
Si c'est votre première visite,
nous vous invitons à consulter
la Foire Aux Questions en
cliquant sur le lien ci-dessus.
Vous devez vous enregistrer
avant de pouvoir poster:
cliquez sur le lien
d'inscription ci-dessus pour
continuer. Pour voir les
messages, sélectionnez le forum
que vous voulez visiter depuis
la liste ci-dessous.
]]
<a name="docA125">
2012-04-28-00-32 translate to next
[[
If this is your first visit,
We invite you to visit
Frequently Asked Questions
clicking the link above.
You need to register
before you can post:
click on the link
Registration above for
continue. To see the
messages, select the forum
you want to visit from
the list below.
]]
2012-04-28-15-02 stop
101,04,28,05,5? upstairs drop heavy object.
<a name="docA126">http://freeman2.com/dict34fr.zip
has next files
[[
04/28/2012 03:25 PM 4,186,639 dict34fr.htm
04/28/2012 10:18 AM 17,547 frWords1.txt
04/28/2012 10:37 AM 29,529 frWords2.txt
04/28/2012 10:41 AM 47,955 frWords3.txt
04/28/2012 10:50 AM 35,829 frWords4.txt
04/26/2012 05:10 PM 30,682 winedt.org_Dict-37-languages.htm
04/26/2012 05:10 PM 16,180 wordreference.com_a10426a.htm
]]
2012-04-28-15-28 stop
101,04,29,09,56 to 101,04,29,10,18 upstairs move in many objects, three trip shoulder load long bars, folding tables, metal stands.
<a name="docA127">
2012-04-29-11-06 start
There are three points about build dict????
web page from winedt.org files.
First, 2012-04-27-06-12 download
http://www.winedt.org/Dict/unicode/fr.zip
open zip file find fr.dic, open fr.dic
<a name="docA128">
find that 338989 French words all string
to one long long line, not one word one
line. User will find the same thing. How
to get frWords1.txt? Which is one word
one line. fr.dic has newline bytes but
notepad.exe do not change line at newline
<a name="docA129">
bytes. Copy fr.dic whole file, paste to
101,04,29,11,11 upstairs drop object
dict34fr.htm [Box 8, words] (any box OK)
Web page box will change line at newline
bytes. Copy Box 8 value paste to notepad
and save as frWords1.txt
<a name="docA130">
Second, fr.dic use
ABCDEFGHIJLMNOPQRSTUVWabcdefghijklmnopqrstuvwxyz
and not use uppercase K,X,Y,Z
Similarly, es.dic use
abcdefghijklmnopqrstuvwxyz
and not use uppercase ABCDEFGHIJKLMNOPQRSTUVWXYZ
<a name="docA131">
Result is that Spanish
[[
Programa
Observatorio
]]
become
[[
rograma
bservatorio
]]
<a name="docA132">
Because 'P' and 'O' are not Spanish
alphabet. 'P' and 'O' are just like
comma or like blank ' ', 'P' and 'O'
cut words. Result is that not found
[[
rograma
bservatorio
]]
<a name="docA133">
To solve this problem, LiuHH add
uppercase ABCDEFGHIJKLMNOPQRSTUVWXYZ
to [Box 7, Alphabeta definition]
If reader do it yourself, you may
face same trouble. Solve problem as
LiuHH did above. Better method is to
find a more complete dictionary word
list. (reader do it, not LiuHH do it)
2012-04-29-11-43 here
101,04,29,11,38 upstairs all go out. four or six person always walk away one by one. Rarely walk together.
<a name="docA134">
Third, both fr.dic and es.dic list
lowercase abcdefghijklmnopqrstuvwxyz
each alphabet as a word. But uppercase
alphabet no such treatment, then in
French dict34fr.htm, Spanish dict25es.htm
both report "U.N." not found.
<a name="docA135">
To solve this problem, at first step
frWords1.txt and esWords1.txt insert
A
B
C
.....
X
Y
Z
let sort.exe put them in right place.
2012-04-29-11-58 stop
<a name="docA136">
2012-04-29-13-00 start
Add uppercase A,B,C, ... Z as French
words and re-do sort. Save shortened
record files as frWords5.txt to
frWords8.txt and they are included in
http://freeman2.com/dict34fr.zip
frWords5.txt similar to frWords1.txt
frWords6.txt similar to frWords2.txt
frWords7.txt similar to frWords3.txt
frWords8.txt similar to frWords4.txt
<a name="docA137">
French dict34fr.zip has following files
04/29/2012 01:16 PM 4,190,727 dict34fr.htm
04/28/2012 10:18 AM 17,547 frWords1.txt
04/28/2012 10:37 AM 29,529 frWords2.txt
04/28/2012 10:41 AM 47,955 frWords3.txt
04/28/2012 10:50 AM 35,829 frWords4.txt
04/29/2012 12:50 PM 17,619 frWords5.txt
04/29/2012 12:52 PM 29,371 frWords6.txt
04/29/2012 12:55 PM 47,660 frWords7.txt
04/29/2012 12:58 PM 35,586 frWords8.txt
04/26/2012 05:10 PM 30,682 winedt.org_Dict-37-languages.htm
04/26/2012 05:10 PM 16,180 wordreference.com_a10426a.htm
2012-04-29-13-15 stop
<a name="docA138">
2012-04-29-13-41 start
Next is Spanish spelling check dict25es.htm
creation record.
Spanish 30/06/1998 ASCII [683 KB] UNICODE [793 KB] TXT
2012-04-27-16-05 LiuHH download
http://www.winedt.org/Dict/unicode/es.zip
save as es.zip
<a name="docA139">
2012-04-28-18-09 open es.zip
2012-04-28-18-12 save es.zip as es.dic
2012-04-28-18-15 save es.dic
as es_dic01.txt
total 247049 words
<a name="docA140">
2012-04-29-13-31 copy es_dic01.txt
whole text and paste to dict000a.htm
box8, click [words to 119111rds]
save dict000a.htm Box9 as es_dic02.txt
2012-04-29-13-33
sort < es_dic02.txt > es_dic03.txt
<a name="docA141">
2012-04-29-13-34 open es_dic03.txt
paste es_dic03.txt all text to dict000a.htm
box9
2012-04-29-13-35 in dict000a.htm
click [119111rds to words]
output to dict000a.htm Box5
<a name="docA142">
2012-04-29-13-36 save dict000a.htm Box 5
as es_dic04.txt, its value is dict000a.htm
compatible dictionary. Copy es_dic04.txt
paste to dict000a.htm [Box 5, Dictionary]
<TEXTAREA id=boxc05 rows=6 cols=38>
A
B
C
... paste Dictionary words here ...
útiles
útilmente
úvula
</TEXTAREA>
2012-04-29-13-38 save as dict25es.htm
Let dictionary definition be permanent.
<a name="docA143">
Next update Box 7, Alphabeta definition
It is same as docA117
Click [byteCount] button,
Box 5 input, Box 6 output. Copy Box 6
first line, paste to dict25es.htm
<TEXTAREA
id=boxc07
name=boxc07 rows=3
cols=70
>
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzáéíñóúü
</TEXTAREA>
Let alphabet definition be permanent.
<a name="docA144">
dict25es.htm is a working version of
Spanish spelling check web page.
dict25es.htm Box 1 has example Spanish
text. It come from upm.es/institucional
<a name="docA145">
2012-04-28-16-07
http://www.upm.es/institucional
save as www.upm.es_institucional.htm
[[
La UPM, la universidad más innovadora
Es la universidad española con mayor
participación en el Programa Marco de la
UE y la primera por número de contratos
de I+D. Así lo refleja el análisis
elaborado por el Observatorio IUNE.
]]
<a name="docA146">
2012-04-28-16-12 access
http://translate.google.com/
[[
The UPM, the most innovative university
Spanish universities is more
participation in the Framework Programme
EU and the first by number of contracts
R & D. This is reflected in the analysis
prepared by the Centre Iune.
]]
2012-04-29-14-11 stop
<a name="docA147">
Spanish dict25es.zip has following files
04/29/2012 02:21 PM 3,009,858 dict25es.htm
04/29/2012 02:32 PM 18,500 esWords1.txt
04/29/2012 02:35 PM 30,268 esWords2.txt
04/29/2012 02:36 PM 47,504 esWords3.txt
04/29/2012 02:38 PM 35,510 esWords4.txt
04/26/2012 05:10 PM 30,682 winedt.org_Dict-37-languages.htm
04/26/2012 05:10 PM 16,180 wordreference.com_a10426a.htm
2012-04-29-14-42
<a name="docA148">
2012-04-30-10-20 start
Next is German dictionary words working
record.
2012-04-27-11-11 download
http://www.winedt.org/Dict/unicode/de_neu.zip
2012-04-29-17-54 start convert dictionary
04/27/2012 11:13 AM 1,182 de_neu.txt
04/27/2012 11:20 AM 2,498,394 de_neu.zip
<a name="docA149">
2012-04-29-18-19 open de_neu.zip
2012-04-29-18-20 save de_neu.zip
as de_neu.dic
03/17/2012 05:28 PM 13,473,448 de_neu.dic
2012-04-29-18-22 save de_neu.dic
as de_dic01.txt. in de_dic01.txt delete
next file head message.
<a name="docA150">
[[
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% file: de_neu.dic (de)
% version: 5 Jan 2005
% New German spelling wordlist for WinEdt (or compatible) spellcheckers
% wordcount: 532273 words
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% PUBLISHED UNTER THE GNU GENERAL PUBLIC LICENSE
% This wordlist is free; you can redistribute it and/or modify it
% under the terms of the GNU General Public License as published by the
% Free Software Foundation; either version 2 of the License, or
% (at your option) any later version.
% SEE http://www.gnu.org/ FOR DETAILS
%
% Parts of this wordlist are taken from the german ISPELL dictionary
% Thanks to Robert from WinEdt.org for hunting the spellerrors
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
dictionary words follows
.....
]]
total 532273 words
<a name="docA151">
2012-04-29-18-27 delete above banner
because above banner is not dictionary
words. dict53de.htm Box 5 store only
dictionary words, Box 5 NOT store doc.
add uppercase A to Z one byte one line
add lowercase a to z one byte one line
Those 26 uppercase A to Z and 26 lower
case a to z will be German words.
save as de_dic01.txt
Only de_dic01.txt has such change,
File de_neu.dic no such change.
<a name="docA152">
Shortened sample file for de_dic01.txt
is deWords1.txt, which is included in
http://freeman2.com/dict53de.zip
2012-04-29-18-30 copy de_dic01.txt
whole text and paste to dict000a.htm
box8, click [words to 119111rds]
save dict000a.htm Box9 as de_dic02.txt
Detail reason see docA060 and docA112<a name="docA153">
2012-04-29-18-33
sort < de_dic02.txt > de_dic03.txt
Detail reason see docA112
2012-04-29-18-34 open de_dic03.txt
paste de_dic03.txt all text to
dict000a.htm box9
<a name="docA154">
2012-04-29-18-35 in dict000a.htm
click [119111rds to words]
output to dict000a.htm Box5.
Please see docA064
2012-04-29-18-36 save dict000a.htm
Box 5 as de_dic04.txt
<a name="docA155">
Its value is dict000a.htm compatible
dictionary. Copy de_dic04.txt and paste
to dict000a.htm [Box 5, Dictionary]
2012-04-29-18-39 save as dict53de.htm
Let dictionary definition be permanent.
<a name="docA156">
Next build dict53de.htm Box 1 sample
German text.
2012-04-29-15-55 LiuHH access
http://www.arndt-bruenner.de/mathe/mathekurse.htm
copy screen get
[[
Willkommen auf den
Mathematik-Seiten von
Arndt Brünner. Schön,
daß Sie auf meine
Mathe-Seiten gefunden
haben! Hier finden Sie
allerhand zur Mathematik
in der Schule für die
Sekundarstufen und auch
darüber hinaus.
]]
<a name="docA157">
2012-04-29-15-56 translate
http://translate.google.com/
2012-04-29-18-55 add German version
to dict53de.htm Box 1. Next is its
English translation.
//Thank you, Arndt Brünner! a104301107
[[
<a name="docA158">
Welcome to the math side
of Arndt Brno. I'm glad
you have found on my math
pages! Here you will find
all kinds of mathematics
in the school for the
secondary and beyond.
]]
<a name="docA159">
2012-04-29-19-03
Next update Box 7, Alphabeta definition
click [byteCount] button
//[byteCount] document and button
dict53de.htm Box 5 input,
dict53de.htm Box 6 output
In Box 6 copy first line
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÄÅÖÜßàáâäåçèéêëíîñóôöøúûüŒœ’
paste to dict53de.htm Box 7
save file, dict53de.htm is complete.
//earlier doc about save to Box 7.
<a name="docA160">
2012-04-29-19-07 paid attention to
next German words are different
wird's
wird’s
Key point is here treat ['] and [’]
both be German alphabet. If user delete
['] and [’] from Box 7 Alphabeta definition
then [wird's] is two words [wird] and [s].
If define [s] be German words, then no
spelling error.
2012-04-30-11-19 doc stop
<a name="docA161">
German dict53de.zip has following files
04/30/2012 10:45 AM 17,447 deWords1.txt
04/30/2012 12:38 PM 29,395 deWords2.txt
04/30/2012 12:40 PM 56,615 deWords3.txt
04/30/2012 12:41 PM 44,565 deWords4.txt
04/30/2012 01:05 PM 7,370,941 dict53de.htm
04/26/2012 05:10 PM 30,682 winedt.org_Dict-37-languages.htm
04/26/2012 05:10 PM 16,180 wordreference.com_a10426a.htm
2012-04-30-12-46
<a name="docA162">
2012-07-14-17-00
update 2012-07-14 added one line //here
box2 output no repeat
box2 output has repeat
Before add this function, LiuHH always
click Box 2 to Box 6
send no repeat error-spelling words to
box6. Now add check box which default
to no repeat words, I click and
get answer at box2.
<a name="docA163">
If user need repeat output just once,
click checkbox to checked
If user need repeat output every time
spelling check. Please open source code
for dict000a.htm change from
[[
<input type="checkbox"
id="chkbx4box2"
onclick="javascript:
..... // more, not important
]]
<a name="docA164">
to
[[
<input type="checkbox"
id="chkbx4box2"
checked
onclick="javascript:
..... // more, not important
]]
Insert "checked", then each time open
dict000a.htm, default output repeated
answer to box2.
2012-07-14-17-37 stop
<a name="docA165">
2012-08-18-14-16 start
update 2012-08-18 has small changes.
2012-08-18 first time upload Chinese
version English dictionary spelling
check dict67ec.zip (has dict67ec.htm)
When write Chinese document, modified
page code/document. Noticeable change
is box1 to box9 all become wider.
Because Chinese version need wider
space.
2012-08-18-14-28 stop
<a name="docA900"> doc end
Plain vanilla spelling check program document
File name dict000a.htm mean
DICTionary with 000kilo words, version 'a' .htm
LiuHH use a working file dict67en.htm. It has
670207 words = 670kilo words = 67 (10kilo) words
dict67en.zip has English dictionary 670207 words and work OK.
dict000a.htm has spelling check codes, but do not have dictionary.
pickdata.htm extract /*documents*/ and //comments and <!--doc-->.
04/27/2012 09:55 AM 1,879,268 dict67en.zip; Zip has following files
04/27/2012 09:52 AM 7,769,328 dict67en.htm
04/26/2012 05:10 PM 30,682 winedt.org_Dict-37-languages.htm
04/26/2012 05:10 PM 16,180 wordreference.com_a10426a.htm