f.ReadWord
f.Print
This commit is contained in:
miks1965 2018-08-07 19:21:09 +03:00
parent f9bfe8f78f
commit 0613eaf452
16 changed files with 306 additions and 76 deletions

View file

@ -15,7 +15,7 @@ internal static class RevisionClass
public const string Major = "3";
public const string Minor = "4";
public const string Build = "0";
public const string Revision = "1727";
public const string Revision = "1728";
public const string MainVersion = Major + "." + Minor;
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;

View file

@ -1,4 +1,4 @@
%COREVERSION%=0
%REVISION%=1727
%MINOR%=4
%REVISION%=1728
%COREVERSION%=0
%MAJOR%=3

Binary file not shown.

View file

@ -5,7 +5,13 @@
</object>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
<link rel="StyleSheet" href="../../default.css"></head>
<link rel="StyleSheet" href="../../default.css">
<style type="text/css">
.auto-style1 {
text-align: center;
}
</style>
</head>
<body><H1>Àðèôìåòè÷åñêèå îïåðàöèè</H1>
<p>Ê <i>àðèôìåòè÷åñêèì</i> îòíîñÿòñÿ áèíàðíûå îïåðàöèè
<code>+</code>, <code>-</code>,
@ -31,6 +37,7 @@
<td><b><code>BigInteger</code></b></td>
<td><b><code>single</code></b></td>
<td><b><code>real</code></b></td>
<td><b><code>decimal</code></b></td>
</tr>
<tr>
<td><b><code>shortint</code></b></td>
@ -45,6 +52,7 @@
<td><code>BigInteger</code></td>
<td><code>single</code></td>
<td><code>real</code></td>
<td><code>decimal</code></td>
</tr>
<tr>
<td><b><code>byte</code></b></td>
@ -59,6 +67,7 @@
<td><code>BigInteger</code></td>
<td><code>single</code></td>
<td><code>real</code></td>
<td><code>decimal</code></td>
</tr>
<tr>
<td><b><code>smallint</code></b></td>
@ -73,6 +82,7 @@
<td><code>BigInteger</code></td>
<td><code>single</code></td>
<td><code>real</code></td>
<td><code>decimal</code></td>
</tr>
<tr>
<td><b><code>word</code></b></td>
@ -87,6 +97,7 @@
<td><code>BigInteger</code></td>
<td><code>single</code></td>
<td><code>real</code></td>
<td><code>decimal</code></td>
</tr>
<tr>
<td><b><code>integer</code></b></td>
@ -101,6 +112,7 @@
<td><code>BigInteger</code></td>
<td><code>single</code></td>
<td><code>real</code></td>
<td><code>decimal</code></td>
</tr>
<tr>
<td><b><code>longword</code></b></td>
@ -115,6 +127,7 @@
<td><code>BigInteger</code></td>
<td><code>single</code></td>
<td><code>real</code></td>
<td><code>decimal</code></td>
</tr>
<tr>
<td><b><code>int64</code></b></td>
@ -129,6 +142,7 @@
<td><code>BigInteger</code></td>
<td><code>single</code></td>
<td><code>real</code></td>
<td><code>decimal</code></td>
</tr>
<tr>
<td><b><code>uint64</code></b></td>
@ -143,6 +157,7 @@
<td><code>BigInteger</code></td>
<td><code>single</code></td>
<td><code>real</code></td>
<td><code>decimal</code></td>
</tr>
<tr>
<td><b><code>BigInteger</code></b></td>
@ -155,8 +170,12 @@
<td><code>BigInteger</code></td>
<td><code>BigInteger</code></td>
<td><code>BigInteger</code></td>
<td>-</td>
<td>-</td>
<td class="auto-style1">
<code>-</code></td>
<td class="auto-style1">
<code>-</code></td>
<td class="auto-style1">
<code>-</code></td>
</tr>
<tr>
<td><b><code>single</code></b></td>
@ -168,9 +187,12 @@
<td><code>single</code></td>
<td><code>single</code></td>
<td><code>single</code></td>
<td>-</td>
<td class="auto-style1">
<code>-</code></td>
<td><code>single</code></td>
<td><code>real</code></td>
<td class="auto-style1">
<code>-</code></td>
</tr>
<tr>
<td><b><code>real</code></b></td>
@ -182,9 +204,30 @@
<td><code>real</code></td>
<td><code>real</code></td>
<td><code>real</code></td>
<td>-</td>
<td class="auto-style1">
<code>-</code></td>
<td><code>real</code></td>
<td><code>real</code></td>
<td class="auto-style1">
<code>-</code></td>
</tr>
<tr>
<td><b><code>decimal</code></b></td>
<td><code>decimal</code></td>
<td><code>decimal</code></td>
<td><code>decimal</code></td>
<td><code>decimal</code></td>
<td><code>decimal</code></td>
<td><code>decimal</code></td>
<td><code>decimal</code></td>
<td><code>decimal</code></td>
<td class="auto-style1">
<code>-</code></td>
<td class="auto-style1">
<code>-</code></td>
<td>
<code>-</code></td>
<td><code>decimal</code></td>
</tr>
</table>
<p>Òî åñòü, åñëè îïåðàíäû - öåëûå, òî ðåçóëüòàòîì ÿâëÿåòñÿ ñàìûé êîðîòêèé öåëûé

View file

@ -41,7 +41,8 @@ PascalABC.NET
<ul>
<li><a href="oppriority.html">Ňŕáëčöŕ ďđčîđčňĺňîâ îďĺđŕöčé</a></li>
</ul>
<p>Ряд операций для определяемых пользователем типов можно перегружать. </p>
<p>Ряд операций для определяемых пользователем типов можно перегружать. Можно
также перегружать операции для .NET-типов если они не были перегружены.</p>
<ul>
<li><a href="../Classes/operoverloading.html">Ďĺđĺăđóçęŕ îďĺđŕöčé</a></li>
</ul>

View file

@ -19,7 +19,9 @@
<param name="Keyword" value="ToIntegers">
<param name="Keyword" value="ToReal">
<param name="Keyword" value="ToReals">
<param name="Keyword" value="ToWords"></object>
<param name="Keyword" value="ToWords">
<param name="Keyword" value="TryToInteger">
<param name="Keyword" value="TryToReal"></object>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><link rel="StyleSheet" href="../../../default.css">
</HEAD><body><H1>Ìåòîäû ðàñøèðåíèÿ òèïà string</H1>
<table cellpadding=3><tr><td><code><b>function</b> Between(Self: string; a, b: string): boolean; </code>
@ -60,12 +62,20 @@
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ïðåîáðàçóåò ñòðîêó â BigInteger</td></tr>
<tr><td><code><b>function</b> ToInteger(Self: string): integer; </code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ïðåîáðàçóåò ñòðîêó â öåëîå</td></tr>
<tr><td><code><b>function</b> ToInteger(Self: string; defaultvalue: integer): integer; </code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Преобразует строку в целоеПри невозможности преобразования возвращается defaultvalue</td></tr>
<tr><td><code><b>function</b> ToIntegers(Self: string): <b>array</b> <b>of</b> integer; </code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ïðåîáðàçóåò ñòðîêó â ìàññèâ öåëûõ</td></tr>
<tr><td><code><b>function</b> ToReal(Self: string): real; </code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ïðåîáðàçóåò ñòðîêó â âåùåñòâåííîå</td></tr>
<tr><td><code><b>function</b> ToReal(Self: string; defaultvalue: real): real; </code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Преобразует строку в вещественноеПри невозможности преобразования возвращается defaultvalue</td></tr>
<tr><td><code><b>function</b> ToReals(Self: string): <b>array</b> <b>of</b> real; </code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ïðåîáðàçóåò ñòðîêó â ìàññèâ âåùåñòâåííûõ</td></tr>
<tr><td><code><b>function</b> ToWords(Self: string; <b>params</b> delim: <b>array</b> <b>of</b> char): <b>array</b> <b>of</b> string; </code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ïðåîáðàçóåò ñòðîêó â ìàññèâ ñëîâ</td></tr>
<tr><td><code><b>function</b> TryToInteger(Self: string; <b>var</b> value: integer): boolean; </code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Преобразует строку в целое и записывает его в value.При невозможности преобразования возвращается False</td></tr>
<tr><td><code><b>function</b> TryToReal(Self: string; <b>var</b> value: real): boolean; </code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Преобразует строку в вещественное и записывает его в value.При невозможности преобразования возвращается False</td></tr>
</table></body></HTML>

View file

@ -1,20 +1,33 @@
<html><head>
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="Print">
<param name="Keyword" value="Println">
<param name="Keyword" value="Write">
<param name="Keyword" value="Writeln">
<param name="Keyword" value="ReadInteger">
<param name="Keyword" value="ReadReal">
<param name="Keyword" value="ReadChar">
<param name="Keyword" value="ReadString">
<param name="Keyword" value="ReadBoolean">
<param name="Keyword" value="ReadWord">
<param name="Keyword" value="ReadlnInteger">
<param name="Keyword" value="ReadlnReal">
<param name="Keyword" value="ReadlnChar">
<param name="Keyword" value="ReadlnString">
<param name="Keyword" value="ReadlnBoolean">
<param name="Keyword" value="ReadlnWord">
<param name="Keyword" value="Eof">
<param name="Keyword" value="Eoln">
<param name="Keyword" value="SeekEof">
<param name="Keyword" value="SeekEoln">
<param name="Keyword" value="Flush">
<param name="Keyword" value="Reset">
<param name="Keyword" value="Close">
<param name="Keyword" value="ReadToEnd">
<param name="Keyword" value="Name">
<param name="Keyword" value="FullName">
<param name="Keyword" value="Erase">
<param name="Keyword" value="Rename">
</object>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
@ -26,12 +39,29 @@
òåêñòîâûõ ôàéëîâ (òèï <code>Text</code>)
îïðåäåëåíû ñëåäóþùèå ìåòîäû:</p>
&nbsp;<table border=0 CELLPADDING=5>
<tr>
<td>
<code><strong>procedure</strong> Write(a,b,...); </code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Çàïèñûâàåò â ôàéë çíà÷åíèÿ a, b, ...</td>
</tr>
<tr>
<td>
<code><strong>procedure</strong> Writeln(a,b,...); </code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Çàïèñûâàåò â ôàéë çíà÷åíèÿ a, b, ...
è îñóùåñòâëÿåò ïåðåõîä íà ñëåäóþùóþ ñòðîêó</td>
</tr>
<tr>
<td>
<code><strong>procedure</strong> Print(a,b,...); </code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Çàïèñûâàåò â ôàéë çíà÷åíèÿ a, b, ...,
ðàçäåëÿÿ èõ ïðîáåëàìè</td>
</tr>
<tr>
<td>
<code><strong>procedure</strong> Println(a,b,...); </code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Çàïèñûâàåò â ôàéë çíà÷åíèÿ a, b, ...,
ðàçäåëÿÿ èõ ïðîáåëàìè, è îñóùåñòâëÿåò ïåðåõîä íà ñëåäóþùóþ ñòðîêó</td>
</tr>
<tr>
<td>
<code><strong>function</strong> ReadInteger: integer; </code><br>
@ -58,6 +88,11 @@
<code><strong>function</strong> ReadBoolean: boolean; </code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò çíà÷åíèå òèïà boolean, ââåäåííîå èç òåêñòîâîãî ôàéëà</td>
</tr>
<tr>
<td>
<code><strong>function</strong> ReadWord: string; </code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ñëîâî, ââåäåííîå èç òåêñòîâîãî ôàéëà</td>
</tr>
<tr>
<td>
<code><strong>function</strong> ReadlnInteger: integer; </code><br>
@ -88,6 +123,19 @@
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò çíà÷åíèå òèïà boolean, ââåäåííîå èç òåêñòîâîãî ôàéëà,
è ïåðåõîäèò íà ñëåäóþùóþ ñòðîêó</td>
</tr>
<tr>
<td>
<code><strong>function</strong> ReadlnWord: string; </code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ñëîâî, ââåäåííîå èç òåêñòîâîãî ôàéëà, è ïåðåõîäèò íà
ñëåäóþùóþ ñòðîêó</td>
</tr>
<tr>
<td>
<code><strong>function</strong> Eof: boolean; </code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò True, åñëè äîñòèãíóò êîíåö
ôàéëà, è False â
ïðîòèâíîì ñëó÷àå</td>
</tr>
<tr>
<td>
<code><strong>function</strong> Eoln: boolean; </code><br>
@ -106,6 +154,26 @@
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ïðîïóñêàåò ïðîáåëüíûå ñèìâîëû, ïîñëå ÷åãî âîçâðàùàåò True, åñëè
äîñòèãíóò êîíåö ñòðîêè â ôàéëå</td>
</tr>
<tr>
<td>
<code><strong>function</strong> Name: string; </code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò èìÿ ôàéëà</td>
</tr>
<tr>
<td>
<code><strong>function</strong> FullName: string;</code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ïîëíîå èìÿ ôàéëà</td>
</tr>
<tr>
<td>
<code><strong>procedure</strong> Reset; </code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Óñòàíàâëèâàåò ôàéëîâûé óêàçàòåëü íà íà÷àëî ôàéëà</td>
</tr>
<tr>
<td>
<code><strong>procedure</strong> Close; </code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Çàêðûâàåò ôàéë</td>
</tr>
<tr>
<td>
<code><strong>procedure</strong> Flush; </code><br>
@ -117,5 +185,16 @@
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò â âèäå ñòðîêè ñîäåðæèìîå ôàéëà îò òåêóùåãî ïîëîæåíèÿ
äî êîíöà</td>
</tr>
<tr>
<td>
<code><strong>procedure</strong> Erase; </code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Óäàëÿåò ôàéë (ôàéë äîëæåí áûòü çàêðûò)</td>
</tr>
<tr>
<td>
<code><strong>procedure</strong> Rename(newname: string); </code><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ïåðåèìåíîâûâàåò ôàéë, äàâàÿ åìó èìÿ newname (ôàéë äîëæåí áûòü
çàêðûò)</td>
</tr>
</table>
</body></html>

View file

@ -3532,21 +3532,38 @@ begin
end;
/// Преобразует строку в целое
function ToInteger(Self: string): integer; extensionmethod;
begin
Result := integer.Parse(Self);
end;
function ToInteger(Self: string): integer; extensionmethod := integer.Parse(Self);
/// Преобразует строку в BigInteger
function ToBigInteger(Self: string): BigInteger; extensionmethod;
function ToBigInteger(Self: string): BigInteger; extensionmethod := BigInteger.Parse(Self);
/// Ïðåîáðàçóåò ñòðîêó â âåùåñòâåííîå
function ToReal(Self: string): real; extensionmethod := real.Parse(Self, nfi);
/// Ïðåîáðàçóåò ñòðîêó â öåëîå è çàïèñûâàåò åãî â value.
///Ïðè íåâîçìîæíîñòè ïðåîáðàçîâàíèÿ âîçâðàùàåòñÿ False
function TryToInteger(Self: string; var value: integer): boolean; extensionmethod := TryStrToInt(Self,value);
/// Ïðåîáðàçóåò ñòðîêó â âåùåñòâåííîå è çàïèñûâàåò åãî â value.
///Ïðè íåâîçìîæíîñòè ïðåîáðàçîâàíèÿ âîçâðàùàåòñÿ False
function TryToReal(Self: string; var value: real): boolean; extensionmethod := TryStrToReal(Self,value);
/// Ïðåîáðàçóåò ñòðîêó â öåëîå
///Ïðè íåâîçìîæíîñòè ïðåîáðàçîâàíèÿ âîçâðàùàåòñÿ defaultvalue
function ToInteger(Self: string; defaultvalue: integer): integer; extensionmethod;
begin
Result := BigInteger.Parse(Self);
var b := TryStrToInt(Self,Result);
if not b then
Result := defaultvalue
end;
/// Преобразует строку в вещественное
function ToReal(Self: string): real; extensionmethod;
///Ïðè íåâîçìîæíîñòè ïðåîáðàçîâàíèÿ âîçâðàùàåòñÿ defaultvalue
function ToReal(Self: string; defaultvalue: real): real; extensionmethod;
begin
Result := real.Parse(Self, nfi);
var b := TryStrToReal(Self,Result);
if not b then
Result := defaultvalue
end;
/// Преобразует строку в массив слов

View file

@ -1467,11 +1467,23 @@ function ReadReal(Self: string; var from: integer): real; extensionmethod;
/// Считывает слово из строки начиная с позиции from и устанавливает from за считанным значением
function ReadWord(Self: string; var from: integer): string; extensionmethod;
/// Преобразует строку в целое
function ToInteger(Self: string): integer; extensionmethod;
function ToInteger(Self: string): integer; extensionmethod := integer.Parse(Self);
/// Преобразует строку в BigInteger
function ToBigInteger(Self: string): BigInteger; extensionmethod;
function ToBigInteger(Self: string): BigInteger; extensionmethod := BigInteger.Parse(Self);
/// Преобразует строку в вещественное
function ToReal(Self: string): real; extensionmethod;
function ToReal(Self: string): real; extensionmethod := real.Parse(Self, nfi);
/// Ïðåîáðàçóåò ñòðîêó â öåëîå è çàïèñûâàåò åãî â value.
///Ïðè íåâîçìîæíîñòè ïðåîáðàçîâàíèÿ âîçâðàùàåòñÿ False
function TryToInteger(Self: string; var value: integer): boolean; extensionmethod := TryStrToInt(Self,value);
/// Ïðåîáðàçóåò ñòðîêó â âåùåñòâåííîå è çàïèñûâàåò åãî â value.
///Ïðè íåâîçìîæíîñòè ïðåîáðàçîâàíèÿ âîçâðàùàåòñÿ False
function TryToReal(Self: string; var value: real): boolean; extensionmethod := TryStrToReal(Self,value);
/// Ïðåîáðàçóåò ñòðîêó â öåëîå
///Ïðè íåâîçìîæíîñòè ïðåîáðàçîâàíèÿ âîçâðàùàåòñÿ defaultvalue
function ToInteger(Self: string; defaultvalue: integer): integer; extensionmethod;
/// Ïðåîáðàçóåò ñòðîêó â âåùåñòâåííîå
///Ïðè íåâîçìîæíîñòè ïðåîáðàçîâàíèÿ âîçâðàùàåòñÿ defaultvalue
function ToReal(Self: string; defaultvalue: real): real; extensionmethod;
/// Преобразует строку в массив слов
function ToWords(Self: string; params delim: array of char): array of string; extensionmethod;
/// Преобразует строку в массив целых

View file

@ -1434,11 +1434,19 @@ function ReadReal(Self: string; var from: integer): real; extensionmethod;
/// Считывает слово из строки начиная с позиции from и устанавливает from за считанным значением
function ReadWord(Self: string; var from: integer): string; extensionmethod;
/// Преобразует строку в целое
function ToInteger(Self: string): integer; extensionmethod;
function ToInteger(Self: string): integer; extensionmethod := integer.Parse(Self);
/// Преобразует строку в BigInteger
function ToBigInteger(Self: string): BigInteger; extensionmethod;
function ToBigInteger(Self: string): BigInteger; extensionmethod := BigInteger.Parse(Self);
/// Преобразует строку в вещественное
function ToReal(Self: string): real; extensionmethod;
function ToReal(Self: string): real; extensionmethod := real.Parse(Self, nfi);
/// Ïðåîáðàçóåò ñòðîêó â öåëîå è çàïèñûâàåò åãî â value.Ïðè íåâîçìîæíîñòè ïðåîáðàçîâàíèÿ âîçâðàùàåòñÿ False
function TryToInteger(Self: string; var value: integer): boolean; extensionmethod := TryStrToInt(Self,value);
/// Ïðåîáðàçóåò ñòðîêó â âåùåñòâåííîå è çàïèñûâàåò åãî â value.Ïðè íåâîçìîæíîñòè ïðåîáðàçîâàíèÿ âîçâðàùàåòñÿ False
function TryToReal(Self: string; var value: real): boolean; extensionmethod := TryStrToReal(Self,value);
/// Ïðåîáðàçóåò ñòðîêó â öåëîåÏðè íåâîçìîæíîñòè ïðåîáðàçîâàíèÿ âîçâðàùàåòñÿ defaultvalue
function ToInteger(Self: string; defaultvalue: integer): integer; extensionmethod;
/// Ïðåîáðàçóåò ñòðîêó â âåùåñòâåííîåÏðè íåâîçìîæíîñòè ïðåîáðàçîâàíèÿ âîçâðàùàåòñÿ defaultvalue
function ToReal(Self: string; defaultvalue: real): real; extensionmethod;
/// Преобразует строку в массив слов
function ToWords(Self: string; params delim: array of char): array of string; extensionmethod;
/// Преобразует строку в массив целых

View file

@ -1376,11 +1376,19 @@ function ReadReal(Self: string; var from: integer): real; extensionmethod;
/// Считывает слово из строки начиная с позиции from и устанавливает from за считанным значением
function ReadWord(Self: string; var from: integer): string; extensionmethod;
/// Преобразует строку в целое
function ToInteger(Self: string): integer; extensionmethod;
function ToInteger(Self: string): integer; extensionmethod := integer.Parse(Self);
/// Преобразует строку в BigInteger
function ToBigInteger(Self: string): BigInteger; extensionmethod;
function ToBigInteger(Self: string): BigInteger; extensionmethod := BigInteger.Parse(Self);
/// Преобразует строку в вещественное
function ToReal(Self: string): real; extensionmethod;
function ToReal(Self: string): real; extensionmethod := real.Parse(Self, nfi);
/// Ïðåîáðàçóåò ñòðîêó â öåëîå è çàïèñûâàåò åãî â value.Ïðè íåâîçìîæíîñòè ïðåîáðàçîâàíèÿ âîçâðàùàåòñÿ False
function TryToInteger(Self: string; var value: integer): boolean; extensionmethod := TryStrToInt(Self,value);
/// Ïðåîáðàçóåò ñòðîêó â âåùåñòâåííîå è çàïèñûâàåò åãî â value.Ïðè íåâîçìîæíîñòè ïðåîáðàçîâàíèÿ âîçâðàùàåòñÿ False
function TryToReal(Self: string; var value: real): boolean; extensionmethod := TryStrToReal(Self,value);
/// Ïðåîáðàçóåò ñòðîêó â öåëîåÏðè íåâîçìîæíîñòè ïðåîáðàçîâàíèÿ âîçâðàùàåòñÿ defaultvalue
function ToInteger(Self: string; defaultvalue: integer): integer; extensionmethod;
/// Ïðåîáðàçóåò ñòðîêó â âåùåñòâåííîåÏðè íåâîçìîæíîñòè ïðåîáðàçîâàíèÿ âîçâðàùàåòñÿ defaultvalue
function ToReal(Self: string; defaultvalue: real): real; extensionmethod;
/// Преобразует строку в массив слов
function ToWords(Self: string; params delim: array of char): array of string; extensionmethod;
/// Преобразует строку в массив целых

View file

@ -1 +1 @@
!define VERSION '3.4.0.1727'
!define VERSION '3.4.0.1728'

View file

@ -24,6 +24,11 @@ namespace SyntaxVisitors.SugarVisitors
return num.ToString();
}
public override void visit(write_accessor_name wn)
{
}
public override void visit(assign_tuple asstup)
{
// тут возможно ошибка более глубокая - в semantic_check_sugared_statement_node(asstup) возможно остаются во вложенных лямбдах другие assign_tuple

View file

@ -353,6 +353,8 @@ type
function ReadString: string;
/// Возвращает значение типа boolean, введенное из текстового файла
function ReadBoolean: boolean;
/// Возвращает слово, введенное из текстового файла
function ReadWord: string;
/// Возвращает значение типа integer, введенное из текстового файла, и переходит на следующую строку
function ReadlnInteger: integer;
/// Возвращает значение типа real, введенное из текстового файла, и переходит на следующую строку
@ -369,6 +371,10 @@ type
procedure Write(params o: array of Object);
/// Записывает в текстовый файл значения и переходит на следующую строку
procedure Writeln(params o: array of Object);
/// Записывает в текстовый файл значения, разделяя их пробелами
procedure Print(params o: array of Object);
/// Записывает в текстовый файл значения, разделяя их пробелами, и переходит на следующую строку
procedure Println(params o: array of Object);
/// Возвращает True, если достигнут конец файла, и False в противном случае
function Eof: boolean;
/// Возвращает True, если достигнут конец строки, и False в противном случае
@ -2168,6 +2174,7 @@ const
FILE_NOT_OPENED = 'Файл не открыт!!File is not opened';
FILE_NOT_OPENED_FOR_READING = 'Файл не открыт на чтение!!File is not opened for reading';
FILE_NOT_OPENED_FOR_WRITING = 'Файл не открыт на запись!!File is not opened for writing';
READ_LEXEM_AFTER_END_OF_TEXT_FILE = 'Попытка считывания за концом текстового файла!!Read after end of text file';
RANGE_ERROR_MESSAGE = 'Выход за границы диапазона!!Out of range';
EOF_FOR_TEXT_WRITEOPENED = 'Функция Eof не может быть вызвана для текстового файла, открытого на запись!!Eof function can''t be called for file, opened on writing';
EOLN_FOR_TEXT_WRITEOPENED = 'Функция Eoln не может быть вызвана для текстового файла, открытого на запись!!Eoln function can''t be called for file, opened on writing';
@ -4359,6 +4366,8 @@ begin
repeat
i := f.sr.Read();
until not char.IsWhiteSpace(char(i)); // pass spaces
if i=-1 then
raise new System.IO.IOException(GetTranslation(READ_LEXEM_AFTER_END_OF_TEXT_FILE));
c := char(i);
var sb := System.Text.StringBuilder.Create;
repeat
@ -5351,6 +5360,11 @@ begin
Result := PABCSystem.ReadString(Self);
end;
function Text.ReadWord: string;
begin
Result := read_lexem(Self);
end;
function Text.ReadBoolean: boolean;
begin
Result := PABCSystem.ReadBoolean(Self);
@ -5396,6 +5410,23 @@ begin
PABCSystem.Writeln(Self, o);
end;
procedure Text.Print(params o: array of Object);
begin
foreach var s in o do
PABCSystem.Write(Self, s, ' ');
end;
procedure Text.Println(params o: array of Object);
begin
if o.Length <> 0 then
begin
for var i:=0 to o.Length-2 do
PABCSystem.Write(Self, o[i], ' ');
PABCSystem.Write(Self, o.Last);
end;
PABCSystem.Writeln(Self);
end;
function Text.Eof: boolean;
begin
Result := PABCSystem.Eof(Self);
@ -7799,47 +7830,15 @@ begin
value := Res;
end;
function StrToInt64(s: string): int64;
begin
Result := Convert.ToInt64(s);
end;
function StrToInt64(s: string) := Convert.ToInt64(s);
function StrToReal(s: string) := Convert.ToDouble(s, nfi);
function StrToFloat(s: string) := StrToReal(s);
function StrToFloat(s: string): real;
begin
Result := Convert.ToDouble(s, nfi);
end;
function StrToReal(s: string) := StrToFloat(s);
function TryStrToInt64(s: string; var value: int64): boolean;
begin
Result := int64.TryParse(s, value);
end;
function TryStrToFloat(s: string; var value: real): boolean;
begin
try
Result := True;
value := Convert.ToDouble(s, nfi);
except
value := 0;
Result := False;
end;
end;
function TryStrToFloat(s: string; var value: single): boolean;
begin
try
Result := True;
value := Convert.ToSingle(s, nfi);
except
value := 0;
Result := False;
end;
end;
function TryStrToReal(s: string; var value: real) := TryStrToFloat(s, value);
function TryStrToSingle(s: string; var value: single) := TryStrToFloat(s, value);
function TryStrToInt64(s: string; var value: int64) := int64.TryParse(s, value);
function TryStrToReal(s: string; var value: real) := real.TryParse(s,System.Globalization.NumberStyles.Float,nil,value);
function TryStrToSingle(s: string; var value: single) := single.TryParse(s,System.Globalization.NumberStyles.Float,nil,value);
function TryStrToFloat(s: string; var value: real) := TryStrToReal(s, value);
function TryStrToFloat(s: string; var value: single) := TryStrToSingle(s, value);
function ReadIntegerFromString(s: string; var from: integer): integer;
begin
@ -10189,21 +10188,38 @@ begin
end;
/// Преобразует строку в целое
function ToInteger(Self: string): integer; extensionmethod;
begin
Result := integer.Parse(Self);
end;
function ToInteger(Self: string): integer; extensionmethod := integer.Parse(Self);
/// Преобразует строку в BigInteger
function ToBigInteger(Self: string): BigInteger; extensionmethod;
function ToBigInteger(Self: string): BigInteger; extensionmethod := BigInteger.Parse(Self);
/// Преобразует строку в вещественное
function ToReal(Self: string): real; extensionmethod := real.Parse(Self, nfi);
/// Преобразует строку в целое и записывает его в value.
///При невозможности преобразования возвращается False
function TryToInteger(Self: string; var value: integer): boolean; extensionmethod := TryStrToInt(Self,value);
/// Преобразует строку в вещественное и записывает его в value.
///При невозможности преобразования возвращается False
function TryToReal(Self: string; var value: real): boolean; extensionmethod := TryStrToReal(Self,value);
/// Преобразует строку в целое
///При невозможности преобразования возвращается defaultvalue
function ToInteger(Self: string; defaultvalue: integer): integer; extensionmethod;
begin
Result := BigInteger.Parse(Self);
var b := TryStrToInt(Self,Result);
if not b then
Result := defaultvalue
end;
/// Преобразует строку в вещественное
function ToReal(Self: string): real; extensionmethod;
///При невозможности преобразования возвращается defaultvalue
function ToReal(Self: string; defaultvalue: real): real; extensionmethod;
begin
Result := real.Parse(Self, nfi);
var b := TryStrToReal(Self,Result);
if not b then
Result := defaultvalue
end;
/// Преобразует строку в массив слов

View file

@ -353,6 +353,8 @@ type
function ReadString: string;
/// Возвращает значение типа boolean, введенное из текстового файла
function ReadBoolean: boolean;
/// Возвращает слово, введенное из текстового файла
function ReadWord: string;
/// Возвращает значение типа integer, введенное из текстового файла, и переходит на следующую строку
function ReadlnInteger: integer;
/// Возвращает значение типа real, введенное из текстового файла, и переходит на следующую строку
@ -369,6 +371,10 @@ type
procedure Write(params o: array of Object);
/// Записывает в текстовый файл значения и переходит на следующую строку
procedure Writeln(params o: array of Object);
/// Записывает в текстовый файл значения, разделяя их пробелами
procedure Print(params o: array of Object);
/// Записывает в текстовый файл значения, разделяя их пробелами, и переходит на следующую строку
procedure Println(params o: array of Object);
/// Возвращает True, если достигнут конец файла, и False в противном случае
function Eof: boolean;
/// Возвращает True, если достигнут конец строки, и False в противном случае
@ -2168,6 +2174,7 @@ const
FILE_NOT_OPENED = 'Файл не открыт!!File is not opened';
FILE_NOT_OPENED_FOR_READING = 'Файл не открыт на чтение!!File is not opened for reading';
FILE_NOT_OPENED_FOR_WRITING = 'Файл не открыт на запись!!File is not opened for writing';
READ_LEXEM_AFTER_END_OF_TEXT_FILE = 'Попытка считывания за концом текстового файла!!Read after end of text file';
RANGE_ERROR_MESSAGE = 'Выход за границы диапазона!!Out of range';
EOF_FOR_TEXT_WRITEOPENED = 'Функция Eof не может быть вызвана для текстового файла, открытого на запись!!Eof function can''t be called for file, opened on writing';
EOLN_FOR_TEXT_WRITEOPENED = 'Функция Eoln не может быть вызвана для текстового файла, открытого на запись!!Eoln function can''t be called for file, opened on writing';
@ -4359,6 +4366,8 @@ begin
repeat
i := f.sr.Read();
until not char.IsWhiteSpace(char(i)); // pass spaces
if i=-1 then
raise new System.IO.IOException(GetTranslation(READ_LEXEM_AFTER_END_OF_TEXT_FILE));
c := char(i);
var sb := System.Text.StringBuilder.Create;
repeat
@ -5351,6 +5360,11 @@ begin
Result := PABCSystem.ReadString(Self);
end;
function Text.ReadWord: string;
begin
Result := read_lexem(Self);
end;
function Text.ReadBoolean: boolean;
begin
Result := PABCSystem.ReadBoolean(Self);
@ -5396,6 +5410,23 @@ begin
PABCSystem.Writeln(Self, o);
end;
procedure Text.Print(params o: array of Object);
begin
foreach var s in o do
PABCSystem.Write(Self, s, ' ');
end;
procedure Text.Println(params o: array of Object);
begin
if o.Length <> 0 then
begin
for var i:=0 to o.Length-2 do
PABCSystem.Write(Self, o[i], ' ');
PABCSystem.Write(Self, o.Last);
end;
PABCSystem.Writeln(Self);
end;
function Text.Eof: boolean;
begin
Result := PABCSystem.Eof(Self);

Binary file not shown.