Find words whose first and last three letters are equal: Difference between revisions

Added solution for Action!
(Added AutoHotkey)
(Added solution for Action!)
Line 10:
{{Template:Strings}}
<br><br>
 
=={{header|Action!}}==
In the following solution the input file [https://gitlab.com/amarok8bit/action-rosetta-code/-/blob/master/source/unixdict.txt unixdict.txt] is loaded from H6 drive. Altirra emulator automatically converts CR/LF character from ASCII into 155 character in ATASCII charset used by Atari 8-bit computer when one from H6-H10 hard drive under DOS 2.5 is used.
<lang Action!>BYTE FUNC IsValidWord(CHAR ARRAY word)
BYTE len
 
len=word(0)
IF len<=5 THEN RETURN (0) FI
IF word(1)#word(len-2) THEN RETURN(0) FI
IF word(2)#word(len-1) THEN RETURN(0) FI
IF word(3)#word(len) THEN RETURN(0) FI
RETURN (1)
 
PROC FindWords(CHAR ARRAY fname)
CHAR ARRAY line(256)
CHAR ARRAY tmp(256)
BYTE dev=[1]
 
Close(dev)
Open(dev,fname,4)
WHILE Eof(dev)=0
DO
InputSD(dev,line)
IF IsValidWord(line) THEN
PrintE(line)
FI
OD
Close(dev)
RETURN
 
PROC Main()
CHAR ARRAY fname="H6:UNIXDICT.TXT"
 
FindWords(fname)
RETURN</lang>
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Find_words_whose_first_and_last_three_letters_are_equal.png Screenshot from Atari 8-bit computer]
<pre>
antiperspirant calendrical einstein hotshot murmur oshkosh tartar testes
</pre>
 
=={{header|Ada}}==
Anonymous user