Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,46 +0,0 @@
|
|||
with Ada.Command_Line; use Ada.Command_Line;
|
||||
with Ada.Sequential_IO;
|
||||
with Ada.Strings.Maps; use Ada.Strings.Maps;
|
||||
with Ada.Text_IO;
|
||||
|
||||
procedure Cipher is
|
||||
package Char_IO is new Ada.Sequential_IO (Character);
|
||||
use Char_IO;
|
||||
Alphabet: constant String := "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
|
||||
Key : constant String := "VsciBjedgrzyHalvXZKtUPumGfIwJxqOCFRApnDhQWobLkESYMTN";
|
||||
My_Map : Character_Mapping;
|
||||
Input, Output : File_Type;
|
||||
Buffer : Character;
|
||||
begin
|
||||
declare
|
||||
use Ada.Text_IO;
|
||||
begin
|
||||
if Argument_Count /= 1 then
|
||||
Put_Line("Usage: " & Command_Name & " <encode|decode>");
|
||||
else
|
||||
if Argument(1) = "encode" then
|
||||
My_Map := To_Mapping(From => Alphabet, To => Key);
|
||||
elsif Argument(1) = "decode" then
|
||||
My_Map := To_Mapping(From => Key, To => Alphabet);
|
||||
else
|
||||
Put_Line("Unrecognised Argument: " & Argument(1));
|
||||
return;
|
||||
end if;
|
||||
end if;
|
||||
end;
|
||||
Open (File => Input, Mode => In_File, Name => "input.txt");
|
||||
Create (File => Output, Mode => Out_File, Name => "output.txt");
|
||||
loop
|
||||
Read (File => Input, Item => Buffer);
|
||||
Buffer := Value(Map => My_Map, Element => Buffer);
|
||||
Write (File => Output, Item => Buffer);
|
||||
end loop;
|
||||
exception
|
||||
when Char_IO.End_Error =>
|
||||
if Is_Open(Input) then
|
||||
Close (Input);
|
||||
end if;
|
||||
if Is_Open(Output) then
|
||||
Close (Output);
|
||||
end if;
|
||||
end Cipher;
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
key: {:]kYV}(!7P$n5_0i R:?jOWtF/=-pe'AD&@r6%ZXs"v*N[#wSl9zq2^+g;LoB`aGh{3.HIu4fbK)mU8|dMET><,Qc\C1yxJ:}
|
||||
|
||||
encode: function [str][
|
||||
bs: new []
|
||||
bs: []
|
||||
loop split str 'ch ->
|
||||
'bs ++ to :string key\[(to :integer to :char ch)-32]
|
||||
return join bs
|
||||
]
|
||||
|
||||
decode: function [str][
|
||||
bs: new []
|
||||
bs: []
|
||||
loop split str 'ch ->
|
||||
'bs ++ to :string to :char (index key ch)+32
|
||||
return join bs
|
||||
|
|
|
|||
|
|
@ -1,41 +0,0 @@
|
|||
(setq alphabet "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
|
||||
(setq code "odrmqbjnwzvueghlacyfpktisxODRMQBJNWZVUEGHLACYFPKTISX")
|
||||
|
||||
(defun encode (text)
|
||||
"Encode TEXT with simple substitution code.
|
||||
Each letter is replaced with the a random letter.
|
||||
A specific letter in the original will always be replaced
|
||||
by the same coded letter."
|
||||
(let* ((case-fold-search nil)
|
||||
(text-length (length text))
|
||||
(encoded-text "")
|
||||
(current-letter "")
|
||||
(coded-letter "")
|
||||
(alphabet-position))
|
||||
(dotimes (i text-length)
|
||||
(setq current-letter (substring text i (+ 1 i))) ; find the next letter in TEXT
|
||||
(if (not (string-match-p "[a-zA-Z]" current-letter)) ; IF it's not a letter
|
||||
(setq coded-letter current-letter) ; pass the non-letter without change
|
||||
(setq alphabet-position (string-match current-letter alphabet)) ; ELSE find where the letter is in ALPHABET
|
||||
(setq coded-letter (substring code alphabet-position (+ 1 alphabet-position)))) ; AND pass the coded letter
|
||||
(setq encoded-text (concat encoded-text coded-letter))) ; IN ANY CASE, add new letter to ENCODED-TEXT
|
||||
encoded-text))
|
||||
|
||||
(defun decode (text)
|
||||
"Decode TEXT encoded with simple substitution code.
|
||||
Each coded letter is replaced with the corresponding
|
||||
uncoded letter."
|
||||
(let* ((case-fold-search nil)
|
||||
(text-length (length text))
|
||||
(uncoded-text "")
|
||||
(current-letter "")
|
||||
(uncoded-letter "")
|
||||
(code-position))
|
||||
(dotimes (i text-length)
|
||||
(setq current-letter (substring text i (+ 1 i))) ; find the next letter in TEXT
|
||||
(if (not (string-match-p "[a-zA-Z]" current-letter)) ; IF it's not a letter
|
||||
(setq uncoded-letter current-letter) ; pass the non-letter without change
|
||||
(setq code-position (string-match current-letter code)) ; ELSE find where the letter is in CODE
|
||||
(setq uncoded-letter (substring alphabet code-position (+ 1 code-position)))) ; AND pass the uncoded letter
|
||||
(setq uncoded-text (concat uncoded-text uncoded-letter))) ; IN ANY CASE, add new letter to UNCODED-TEXT
|
||||
uncoded-text))
|
||||
|
|
@ -5,7 +5,7 @@ object SubstitutionCipher {
|
|||
|
||||
fun encode(s: String): String {
|
||||
val sb = StringBuilder()
|
||||
for (c in s) sb.append(key[c.toInt() - 32])
|
||||
for (c in s) sb.append(key[c.code - 32])
|
||||
return sb.toString()
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,55 +0,0 @@
|
|||
option explicit
|
||||
const maxk=94
|
||||
dim key(94)
|
||||
|
||||
a="I'm working on modernizing Rosetta Code's infrastructure. Starting with communications."&_
|
||||
" Please accept this time-limited open invite to RC's Slack.. --Michael Mol (talk) 20:59, 30 May 2020 (UTC)"
|
||||
|
||||
sub gen 'swaps items not previusly affected by a swap
|
||||
dim i,m,t
|
||||
for i=0 to ubound(key)
|
||||
key(i)=i+32
|
||||
next
|
||||
for i=0 to ubound(key)-1
|
||||
if key(i)=i+32 then
|
||||
m=i+int(rnd*(maxk-i))
|
||||
if key(m)=m+32 then
|
||||
t=key(m):key(m)=key(i):key(i)=t
|
||||
end if
|
||||
end if
|
||||
next
|
||||
end sub
|
||||
|
||||
function viewkey
|
||||
dim i,b
|
||||
b=""
|
||||
for i=1 to ubound(key)
|
||||
b=b&chr(key(i))
|
||||
next
|
||||
viewkey=b
|
||||
end function
|
||||
|
||||
function iif(a,b,c) if a then iif=b else iif =c end if: end function
|
||||
|
||||
function docode(a)
|
||||
dim b,i,ch,n
|
||||
n=maxk+32
|
||||
b=""
|
||||
for i=1 to len(a)
|
||||
ch=asc(mid(a,i,1))
|
||||
'wscript.echo ch
|
||||
b=b&chr(key(iif (ch>n or ch<32,0,ch-32)))
|
||||
next
|
||||
docode=b
|
||||
end function
|
||||
|
||||
randomize timer
|
||||
dim a,b,c
|
||||
gen
|
||||
wscript.echo "Key: " & viewkey & vbcrlf
|
||||
wscript.echo "Original: " & a & Vbcrlf
|
||||
b=docode(a)
|
||||
wscript.echo "Encoded: "& b & Vbcrlf
|
||||
c=docode(b)
|
||||
wscript.echo "Decoded: " & c & Vbcrlf
|
||||
wscript.quit(0)
|
||||
Loading…
Add table
Add a link
Reference in a new issue