forked from maxkleiner/python4delphi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpydemo24.htm
126 lines (108 loc) · 17.2 KB
/
pydemo24.htm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
Version:0.9
StartHTML:0000000105
EndHTML:0000017562
StartFragment:0000001053
EndFragment:0000017546
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>mXScriptasHTML</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="SynEdit HTML exporter" />
<style type="text/css">
<!--
body { color: #000000; background-color: #FFFFFF; }
.pas1-assembler { }
.pas1-character { color: #0066CC; text-decoration: underline; }
.pas1-comment { color: #000080; font-style: italic; }
.pas1-float { color: #00FF00; }
.pas1-hexadecimal { color: #FF00FF; }
.pas1-identifier { }
.pas1-number { color: #FF0000; }
.pas1-preprocessor { font-style: italic; }
.pas1-reservedword { color: #000080; font-weight: bold; }
.pas1-space { }
.pas1-string { color: #008080; }
.pas1-symbol { color: #FF0000; }
-->
</style>
</head>
<body>
<!--StartFragment--><pre><code><span class="pas1-reservedword">PROGRAM</span><span class="pas1-space"> SEPDemo__PythonTemplate_Puzzle_24</span><span class="pas1-symbol">;
</span><span class="pas1-comment">//https://blog.finxter.com/python-one-line-sum-list/
</span><span class="pas1-reservedword">Const</span><span class="pas1-space"> PYHOME32 </span><span class="pas1-symbol">=</span><span class="pas1-space"> </span><span class="pas1-string">'C:\Users\max\AppData\Local\Programs\Python\Python36-32\'</span><span class="pas1-symbol">;</span><span class="pas1-space">
PYDLL32 </span><span class="pas1-symbol">=</span><span class="pas1-space"> </span><span class="pas1-string">'C:\Users\max\AppData\Local\Programs\Python\Python36-32\python36.dll'</span><span class="pas1-symbol">;</span><span class="pas1-space">
CHEXSTR </span><span class="pas1-symbol">=</span><span class="pas1-space"> </span><span class="pas1-string">'00:c9:73:e2:3b:11:01:2f:2c:62:a4:1a:74:3f:92:'</span><span class="pas1-symbol">;</span><span class="pas1-space">
HEXCONVERT </span><span class="pas1-symbol">=
</span><span class="pas1-space"> </span><span class="pas1-string">'""" convert hex string integer to int """ '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">LF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'def convert(n: str) -> int: '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">LF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">' # get rid of ":", spaces and newlines '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">LF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">' hex = n.replace(":", "").replace("\n","").replace(" ","")'</span><span class="pas1-symbol">+</span><span class="pas1-identifier">LF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">' return int(hex,16)'</span><span class="pas1-symbol">;</span><span class="pas1-space">
FUNC1 </span><span class="pas1-symbol">=
</span><span class="pas1-space"> </span><span class="pas1-string">'""" returns increment """ '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">LF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'def func1(x: int) -> int: '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">LF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">' return x+1'</span><span class="pas1-symbol">;</span><span class="pas1-space">
</span><span class="pas1-reservedword">var</span><span class="pas1-space"> bufs</span><span class="pas1-symbol">,</span><span class="pas1-space"> tabstr</span><span class="pas1-symbol">:</span><span class="pas1-space"> </span><span class="pas1-reservedword">string</span><span class="pas1-symbol">;</span><span class="pas1-space">
</span><span class="pas1-reservedword">Begin</span><span class="pas1-space"> </span><span class="pas1-comment">//@Main
</span><span class="pas1-space"> </span><span class="pas1-reservedword">maxform1</span><span class="pas1-symbol">.</span><span class="pas1-identifier">console1click</span><span class="pas1-symbol">(</span><span class="pas1-identifier">self</span><span class="pas1-symbol">)
</span><span class="pas1-space"> </span><span class="pas1-reservedword">memo2</span><span class="pas1-symbol">.</span><span class="pas1-identifier">height</span><span class="pas1-symbol">:=</span><span class="pas1-space"> </span><span class="pas1-number">200;
</span><span class="pas1-space"> </span><span class="pas1-reservedword">memo2</span><span class="pas1-symbol">.</span><span class="pas1-identifier">font</span><span class="pas1-symbol">.</span><span class="pas1-identifier">name</span><span class="pas1-symbol">:=</span><span class="pas1-space"> </span><span class="pas1-string">'Courier'</span><span class="pas1-symbol">;
</span><span class="pas1-space"> </span><span class="pas1-reservedword">with</span><span class="pas1-space"> TPythonEngine</span><span class="pas1-symbol">.</span><span class="pas1-identifier">Create</span><span class="pas1-symbol">(</span><span class="pas1-reservedword">Nil</span><span class="pas1-symbol">)</span><span class="pas1-space"> </span><span class="pas1-reservedword">do</span><span class="pas1-space"> </span><span class="pas1-reservedword">begin
</span><span class="pas1-space"> pythonhome</span><span class="pas1-symbol">:=</span><span class="pas1-space"> PYHOME32</span><span class="pas1-symbol">;
</span><span class="pas1-space"> </span><span class="pas1-reservedword">try
</span><span class="pas1-space"> opendll</span><span class="pas1-symbol">(</span><span class="pas1-identifier">PYDLL32</span><span class="pas1-symbol">)
</span><span class="pas1-space"> Println</span><span class="pas1-symbol">(</span><span class="pas1-string">'Colab Platform: '</span><span class="pas1-symbol">+</span><span class="pas1-space">
EvalStr</span><span class="pas1-symbol">(</span><span class="pas1-string">'__import__("platform").platform()'</span><span class="pas1-symbol">));</span><span class="pas1-space">
</span><span class="pas1-comment">//Println('CPU Arch. Check Linux: '+
</span><span class="pas1-space"> Println</span><span class="pas1-symbol">(</span><span class="pas1-string">'DIR Check: '</span><span class="pas1-symbol">+</span><span class="pas1-space">
EvalStr</span><span class="pas1-symbol">(</span><span class="pas1-string">'__import__("subprocess").check_output("dir",shell=True).strip().decode()'</span><span class="pas1-symbol">));
</span><span class="pas1-space"> ExecString</span><span class="pas1-symbol">(</span><span class="pas1-identifier">HEXCONVERT</span><span class="pas1-symbol">);</span><span class="pas1-space">
println</span><span class="pas1-symbol">(</span><span class="pas1-identifier">EvalStr</span><span class="pas1-symbol">(</span><span class="pas1-string">'convert("'</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CHEXSTR</span><span class="pas1-symbol">+</span><span class="pas1-string">'")'</span><span class="pas1-symbol">));
</span><span class="pas1-space"> bufs</span><span class="pas1-symbol">:=</span><span class="pas1-space"> StringReplace</span><span class="pas1-symbol">(</span><span class="pas1-identifier">CHEXSTR</span><span class="pas1-symbol">,</span><span class="pas1-string">':'</span><span class="pas1-symbol">,</span><span class="pas1-string">''</span><span class="pas1-symbol">,[</span><span class="pas1-identifier">rfReplaceAll</span><span class="pas1-symbol">]);
</span><span class="pas1-space"> </span><span class="pas1-reservedword">with</span><span class="pas1-space"> TInteger</span><span class="pas1-symbol">.</span><span class="pas1-identifier">create</span><span class="pas1-symbol">(0)</span><span class="pas1-space"> </span><span class="pas1-reservedword">do</span><span class="pas1-space"> </span><span class="pas1-reservedword">begin
</span><span class="pas1-space"> </span><span class="pas1-reservedword">if</span><span class="pas1-space"> AssignHex</span><span class="pas1-symbol">(</span><span class="pas1-identifier">bufs</span><span class="pas1-symbol">)</span><span class="pas1-space"> </span><span class="pas1-reservedword">then
</span><span class="pas1-space"> writeln</span><span class="pas1-symbol">(</span><span class="pas1-identifier">ConvertToDecimalString</span><span class="pas1-symbol">(</span><span class="pas1-identifier">false</span><span class="pas1-symbol">));
</span><span class="pas1-space"> free
</span><span class="pas1-reservedword">end</span><span class="pas1-symbol">;</span><span class="pas1-space">
ExecString</span><span class="pas1-symbol">(</span><span class="pas1-string">'x="cool"'</span><span class="pas1-symbol">);
</span><span class="pas1-space"> println</span><span class="pas1-symbol">(</span><span class="pas1-string">'finxter id 332, puzzle: '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">EvalStr</span><span class="pas1-symbol">(</span><span class="pas1-string">'x[-1]+x[-2]+x[-4]+x[-3]'</span><span class="pas1-symbol">));
</span><span class="pas1-space"> ExecString</span><span class="pas1-symbol">(</span><span class="pas1-identifier">FUNC1</span><span class="pas1-symbol">);</span><span class="pas1-space">
ExecString</span><span class="pas1-symbol">(</span><span class="pas1-string">'f = func1'</span><span class="pas1-symbol">);</span><span class="pas1-space">
println</span><span class="pas1-symbol">(</span><span class="pas1-string">'finxter id 358, puzzle: '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">EvalStr</span><span class="pas1-symbol">(</span><span class="pas1-string">'f(2)+func1(2)'</span><span class="pas1-symbol">));
</span><span class="pas1-space"> </span><span class="pas1-reservedword">except
</span><span class="pas1-space"> raiseError</span><span class="pas1-symbol">;
</span><span class="pas1-space"> </span><span class="pas1-reservedword">finally</span><span class="pas1-space">
Free</span><span class="pas1-symbol">;
</span><span class="pas1-space"> </span><span class="pas1-reservedword">end</span><span class="pas1-symbol">;
</span><span class="pas1-space"> </span><span class="pas1-reservedword">end</span><span class="pas1-symbol">;</span><span class="pas1-space">
Writeln</span><span class="pas1-symbol">(</span><span class="pas1-string">'Demo01 A simple Python evaluator Gauss evaluator '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'Demo02 Evaluate expression with ExecSynCheck1 and Strlist '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'http://www.softwareschule.ch/examples/pydemo2.txt'</span><span class="pas1-space"> </span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'http://www.softwareschule.ch/examples/pydemo2.htm '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'Demo03 15-powerful-python-one-liners PYLaz_P4D_Demo2 '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'Demo04 Eval_IOEvents (advanced case) Demo3 PYLaz_P4D_Demo2'</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'Demo05 Defining a mX4_Python Template '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'Demo06 Defining a Python Template_PyCryptoDome_Bitcoin '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'Demo07 Using Translator with Subprocess() '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'Demo08 Using Turtle Graph for new Python types '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'Demo09 Making a URLLib_Agent with GoggleSearch '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'Demo10 Using URLLib_ISBN_Agent_PyPas inside Python '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'Demo11 Using URLLib_JSON_PyPas inside Pascal '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'Demo12 Using a RSA_PyPa crypto methods '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'Demo13 Using Python_Cheat_Sheet5 big demo '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'Demo14 Get Import Module with LoadStringJ(PYMODFILE) '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'Demo15 ImportModuleData: this is a extension of Demo14 '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'Demo16 Using ImportModuleData_Export in TPythonModule or Pylist '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'Demo17 Using Threading, Windows Console and Command line arguments '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'Demo18 Using Threading and Delphi log window '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'Demo19 Using VarPyth.pas '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'Demo20 Demo8 revisited to allow new Python type to be subclassed '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'Demo21 Container indexing this one! '</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+
</span><span class="pas1-space"> </span><span class="pas1-string">'Demo22 NLTK and wordnet'</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+</span><span class="pas1-space">
</span><span class="pas1-string">'Demo23 import tabulator TAB Formater'</span><span class="pas1-symbol">+</span><span class="pas1-identifier">CRLF</span><span class="pas1-symbol">+</span><span class="pas1-space">
</span><span class="pas1-string">'Demo24 this finxter Demo'</span><span class="pas1-symbol">);</span><span class="pas1-space">
</span><span class="pas1-reservedword">End</span><span class="pas1-symbol">.</span><span class="pas1-space">
</span></code></pre><!--EndFragment--></body>
</html>