<?xml version="1.0" encoding="utf-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Форум программистов и сисадминов Киберфорум - Блоги - Andretti</title>
		<link>https://www.cyberforum.ru/blogs/255119/</link>
		<description>КиберФорум - форум программистов, системных администраторов, администраторов баз данных, компьютерный форум, форум по электронике и бытовой технике, обсуждение софта. Бесплатная помощь в решении задач по программированию и наукам, решение проблем с компьютером, операционными системам</description>
		<language>ru</language>
		<lastBuildDate>Tue, 08 Sep 2026 16:52:12 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>60</ttl>
		<image>
			<url>https://www.cyberforum.ru//cyberstatic.net/images/misc/rss.jpg</url>
			<title>Форум программистов и сисадминов Киберфорум - Блоги - Andretti</title>
			<link>https://www.cyberforum.ru/blogs/255119/</link>
		</image>
		<item>
			<title>Чистим ноутбук Packard Bell P5LS0 и меняем термопасту</title>
			<link>https://www.cyberforum.ru/blogs/255119/3140.html</link>
			<pubDate>Mon, 12 Jan 2015 14:57:53 GMT</pubDate>
			<description>*Чистим ноутбук Packard Bell P5LS0 и меняем термопасту :* 
 
Avtor: Andretti 
prosto-kniga@mail.ru...</description>
			<content:encoded><![CDATA[<div><b><font size="6">Чистим ноутбук Packard Bell P5LS0 и меняем термопасту :</font></b><br />
<br />
Avtor: Andretti<br />
<a href="mailto:prosto-kniga@mail.ru">prosto-kniga@mail.ru</a><br />
<br />
1.	Откручиваем болты корпуса снизу на дне ноутбука :<br />
 <a href="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2958&amp;d=1421073641" rel="Lightbox" id="attachment2958" ><img src="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2958&amp;thumb=1&amp;d=1421073641" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: 01 (Copy).jpg
Просмотров: 420
Размер:	48.7 Кб
ID:	2958" style="margin: 5px" /></a><br />
2.Подготовим бумагу под «карту» что бы не забыть какой откуда болт :<br />
 <a href="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2959&amp;d=1421073641" rel="Lightbox" id="attachment2959" ><img src="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2959&amp;thumb=1&amp;d=1421073641" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: 02 (Copy).jpg
Просмотров: 796
Размер:	30.6 Кб
ID:	2959" style="margin: 5px" /></a><br />
3.Подготовим отвертки МАЛЕНЬКИЕ!!! НЕФИГА СЛИЗЫВАТЬ БОЛТЫ!!<br />
 <a href="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2960&amp;d=1421073641" rel="Lightbox" id="attachment2960" ><img src="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2960&amp;thumb=1&amp;d=1421073641" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: 03 (Copy).jpg
Просмотров: 550
Размер:	32.5 Кб
ID:	2960" style="margin: 5px" /></a><br />
4.Рисуем «карту»<br />
 <a href="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2961&amp;d=1421073641" rel="Lightbox" id="attachment2961" ><img src="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2961&amp;thumb=1&amp;d=1421073641" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: 04 (Copy).jpg
Просмотров: 730
Размер:	25.7 Кб
ID:	2961" style="margin: 5px" /></a><br />
5.Выкладываем болты ну потом в таком же духе так же и с остальными<br />
 <a href="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2962&amp;d=1421073641" rel="Lightbox" id="attachment2962" ><img src="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2962&amp;thumb=1&amp;d=1421073641" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: 05 (Copy).jpg
Просмотров: 649
Размер:	30.2 Кб
ID:	2962" style="margin: 5px" /></a><br />
6. Переворачиваем клавиатурой вверх<br />
 <a href="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2963&amp;d=1421073809" rel="Lightbox" id="attachment2963" ><img src="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2963&amp;thumb=1&amp;d=1421073809" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: 06 (Copy).jpg
Просмотров: 537
Размер:	50.0 Кб
ID:	2963" style="margin: 5px" /></a><br />
7.Берем отвертку и поддеваем клавиатуру в специальном отверстии<br />
<a href="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2964&amp;d=1421073809" rel="Lightbox" id="attachment2964" ><img src="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2964&amp;thumb=1&amp;d=1421073809" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: 07 (Copy).jpg
Просмотров: 590
Размер:	42.8 Кб
ID:	2964" style="margin: 5px" /></a> <br />
8.После НЕ ТЯНЕМ всю клаву за один край, а помогаем себе другой отверткой<br />
 <a href="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2965&amp;d=1421073809" rel="Lightbox" id="attachment2965" ><img src="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2965&amp;thumb=1&amp;d=1421073809" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: 08 (Copy).jpg
Просмотров: 466
Размер:	52.2 Кб
ID:	2965" style="margin: 5px" /></a><br />
9.ОСТОРОЖНО поднимаем дальний край клавиатуры<br />
<a href="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2966&amp;d=1421073809" rel="Lightbox" id="attachment2966" ><img src="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2966&amp;thumb=1&amp;d=1421073809" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: 09 (Copy).jpg
Просмотров: 510
Размер:	39.6 Кб
ID:	2966" style="margin: 5px" /></a> <br />
10.ОСТОРОЖНО ПОДНИМАЕМ<br />
 <a href="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2967&amp;d=1421073809" rel="Lightbox" id="attachment2967" ><img src="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2967&amp;thumb=1&amp;d=1421073809" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: 10 (Copy).jpg
Просмотров: 589
Размер:	36.1 Кб
ID:	2967" style="margin: 5px" /></a><br />
11. Осторожно из-за шлейфа клавы который не надо выдергивать с «мясом» а аккуратно отсоединяем, как показано далее<br />
 <a href="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2968&amp;d=1421073895" rel="Lightbox" id="attachment2968" ><img src="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2968&amp;thumb=1&amp;d=1421073895" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: 11 (Copy).jpg
Просмотров: 662
Размер:	51.9 Кб
ID:	2968" style="margin: 5px" /></a><br />
12.С каждой стороны поднимаем вверх пластмассовые держатели<br />
 <a href="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2969&amp;d=1421073895" rel="Lightbox" id="attachment2969" ><img src="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2969&amp;thumb=1&amp;d=1421073895" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: 12 (Copy).jpg
Просмотров: 649
Размер:	39.8 Кб
ID:	2969" style="margin: 5px" /></a><br />
13. С каждой стороны поднимаем вверх пластмассовые держатели<br />
 <a href="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2970&amp;d=1421073895" rel="Lightbox" id="attachment2970" ><img src="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2970&amp;thumb=1&amp;d=1421073895" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: 13 (Copy).jpg
Просмотров: 685
Размер:	38.8 Кб
ID:	2970" style="margin: 5px" /></a><br />
14.до вот такого результата<br />
 <a href="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2971&amp;d=1421073895" rel="Lightbox" id="attachment2971" ><img src="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2971&amp;thumb=1&amp;d=1421073895" class="thumbnail" border="0" alt="Нажмите на изображение для увеличения
Название: 14 (Copy).jpg
Просмотров: 500
Размер:	47.1 Кб
ID:	2971" style="margin: 5px" /></a><br />
<br />
Далее показать не могу потому что сюда на сайт максимальное количество загружаемых файлов -15. Но полная есть в прилагаемом архиве ниже..<br />
<a href="https://www.cyberforum.ru/blog_attachment.php?attachmentid=2973&amp;d=1421074651" >чистим ноутбук Packard Bell P5LS0.rar</a></div>

]]></content:encoded>
			<dc:creator>Andretti</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/255119/3140.html</guid>
		</item>
		<item>
			<title>РАБОТА С КОМПИЛЯТОРОМ BPС(TPC) ЧЕРЕЗ ПРИЛОЖЕНИЕ DELPHI</title>
			<link>https://www.cyberforum.ru/blogs/255119/321.html</link>
			<pubDate>Mon, 16 Apr 2012 15:57:02 GMT</pubDate>
			<description>РАБОТА С КОМПИЛЯТОРОМ BPС(TPC) ЧЕРЕЗ ПРИЛОЖЕНИЕ DELPHI  
 
Автор : Andretti...</description>
			<content:encoded><![CDATA[<div>РАБОТА С КОМПИЛЯТОРОМ BPС(TPC) ЧЕРЕЗ ПРИЛОЖЕНИЕ DELPHI <br />
<br />
Автор : Andretti (e-mail:&quot;Drunex@narod.ru&quot;, ICQ:569575751)<br />
<br />
	Бывает что существует необходимость какой-либо сгененрированные (набранный) код Pascal программы скомпилировать и проверить на работоспособность. Но сделать мы хотим это, в автоматизированном режиме и используя программы которые написали например на Delphi. Здесь я опишу ОБЩУЮ ИДЕЮ как например код набранный в окне приложения написанного на Delphi 7 передать компилятору Borland Pascal (можно Turbo Pascal или д.р.), получить информацию о его компиляции в нашем приложении и протестировать на работоспособность кода используя входные и выходные данные записанные в соответствующих файлах(либо через задание входных данных через параметры запуска программы), ПРИ ЖЕЛАНИИ ВЫ МОЖЕТЕ ЗНАЧИТЕЛЬНО УМЕНЬШИТЬ КОЛИЧЕСТВО ПЕРЕХОДОВ И ДЛИНУ КОДА ИСПОЛЬЗУЯ СТАНДАРТНЫЕ ПРОЦЕДУРЫ.<br />
<br />
Для начала не забываем что нам потребуется рабочий bp7.0 и компилятор bpc который необходимо скачать отдельно и запихнуть в папку bin.<br />
<br />
Создадим новое приложение в Delphi 7 (File&gt;New&gt;Application). На форму разместим следующие компоненты:<br />
-Memo1 -для ввода кода Pascal-программы<br />
-Memo2 -для отображения ответа компилятора<br />
-Memo3 -для ввода входных данных (файл input.txt)<br />
-Memo4 -для отображения выходных данных которые выдаст программа (файл output.txt)<br />
-Button1 - для запуска компиляции Pascal-программы<br />
-Button2 - для запуска программы и обработки ею входных данных из файла input.txt которые мы ввели в memo3<br />
<br />
Далее представлен полный код рабочей программы по примеру работы с компилятором bpc:<br />
<br />
<div class="codeblock"><table class="delphi"><thead><tr><td colspan="2" id="565257629"  class="head">Delphi</td></tr></thead><tbody><tr class="li1"><td><div id="565257629" style="height: 350px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">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
127
128
129
</pre></td><td class="de1"><pre class="de1"><span class="kw1">unit</span> Unit1<span class="sy1">;</span>
&nbsp;
<span class="kw1">interface</span>
&nbsp;
<span class="kw1">uses</span>
&nbsp; Windows<span class="sy1">,</span> Messages<span class="sy1">,</span> SysUtils<span class="sy1">,</span> Variants<span class="sy1">,</span> Classes<span class="sy1">,</span> Graphics<span class="sy1">,</span> Controls<span class="sy1">,</span> Forms<span class="sy1">,</span>
&nbsp; Dialogs<span class="sy1">,</span> StdCtrls<span class="sy1">,</span> ShellAPI<span class="sy1">;</span>
&nbsp;
<span class="kw1">type</span>
&nbsp; TForm1 <span class="sy3">=</span> <span class="kw1">class</span><span class="br0">&#40;</span>TForm<span class="br0">&#41;</span>
&nbsp; &nbsp; Memo1<span class="sy1">:</span> TMemo<span class="sy1">;</span>
&nbsp; &nbsp; Label1<span class="sy1">:</span> TLabel<span class="sy1">;</span>
&nbsp; &nbsp; Button1<span class="sy1">:</span> TButton<span class="sy1">;</span>
&nbsp; &nbsp; Button2<span class="sy1">:</span> TButton<span class="sy1">;</span>
&nbsp; &nbsp; Memo2<span class="sy1">:</span> TMemo<span class="sy1">;</span>
&nbsp; &nbsp; Label2<span class="sy1">:</span> TLabel<span class="sy1">;</span>
&nbsp; &nbsp; Memo3<span class="sy1">:</span> TMemo<span class="sy1">;</span>
&nbsp; &nbsp; Label3<span class="sy1">:</span> TLabel<span class="sy1">;</span>
&nbsp; &nbsp; Label4<span class="sy1">:</span> TLabel<span class="sy1">;</span>
&nbsp; &nbsp; Memo4<span class="sy1">:</span> TMemo<span class="sy1">;</span>
&nbsp; &nbsp; <span class="coMULTI">{функция запускающая приложение и ожидающая его завершения}</span>
&nbsp; &nbsp; <span class="kw1">function</span> ExecAndWait<span class="br0">&#40;</span><span class="kw1">const</span> FileName<span class="sy1">,</span> Params<span class="sy1">:</span> <span class="kw4">ShortString</span><span class="sy1">;</span> <span class="kw1">const</span> WinState<span class="sy1">:</span> <span class="kw4">Word</span><span class="br0">&#41;</span><span class="sy1">:</span> <span class="kw4">boolean</span><span class="sy1">;</span> <span class="kw1">export</span><span class="sy1">;</span>
&nbsp; &nbsp; <span class="kw1">procedure</span> MyRewriteProc<span class="br0">&#40;</span>namefile<span class="sy1">,</span>WDorDW<span class="sy1">:</span><span class="kw4">string</span><span class="br0">&#41;</span><span class="sy1">;</span><span class="co1">//процедура перевода файлов из Win-кодировки в DOS -кодировку и оборатно</span>
&nbsp; &nbsp; <span class="kw1">procedure</span> Button1Click<span class="br0">&#40;</span>Sender<span class="sy1">:</span> <span class="kw4">TObject</span><span class="br0">&#41;</span><span class="sy1">;</span>
&nbsp; &nbsp; <span class="kw1">procedure</span> Button2Click<span class="br0">&#40;</span>Sender<span class="sy1">:</span> <span class="kw4">TObject</span><span class="br0">&#41;</span><span class="sy1">;</span>
&nbsp; <span class="kw1">private</span>
&nbsp; &nbsp; <span class="coMULTI">{ Private declarations }</span>
&nbsp; <span class="kw1">public</span>
&nbsp; &nbsp; <span class="coMULTI">{ Public declarations }</span>
&nbsp; <span class="kw1">end</span><span class="sy1">;</span>
&nbsp;
<span class="kw1">var</span>
&nbsp; Form1<span class="sy1">:</span> TForm1<span class="sy1">;</span>
&nbsp;
<span class="kw1">implementation</span>
&nbsp;
<span class="co2">{$R *.dfm}</span>
&nbsp;
<span class="kw1">procedure</span> TForm1<span class="sy1">.</span><span class="me1">MyRewriteProc</span> <span class="br0">&#40;</span>namefile<span class="sy1">,</span>WDorDW<span class="sy1">:</span><span class="kw4">string</span><span class="br0">&#41;</span><span class="sy1">;</span><span class="co1">//процедура перевода файлов из dos-кодировки в win -кодировку и обратно</span>
<span class="kw1">const</span>
&nbsp; BUF_SZ <span class="sy3">=</span> <span class="nu0">4096</span><span class="sy1">;</span>
<span class="kw1">var</span>
&nbsp; DosWinFile<span class="sy1">:</span> <span class="kw1">file</span><span class="sy1">;</span>
&nbsp; dosBuf<span class="sy1">:</span> <span class="kw1">array</span> <span class="br0">&#91;</span><span class="nu0">0</span><span class="sy1">..</span><span class="me1">BUF_SZ</span> <span class="sy3">-</span> <span class="nu0">1</span><span class="br0">&#93;</span> <span class="kw1">of</span> <span class="kw4">Char</span><span class="sy1">;</span>
&nbsp; winBuf<span class="sy1">:</span> <span class="kw1">array</span> <span class="br0">&#91;</span><span class="nu0">0</span><span class="sy1">..</span><span class="me1">BUF_SZ</span> <span class="sy3">-</span> <span class="nu0">1</span><span class="br0">&#93;</span> <span class="kw1">of</span> <span class="kw4">Char</span><span class="sy1">;</span>
&nbsp; rCnt<span class="sy1">:</span> <span class="kw4">Integer</span><span class="sy1">;</span>
&nbsp; wCnt<span class="sy1">:</span> <span class="kw4">Integer</span><span class="sy1">;</span>
<span class="kw1">begin</span>
<span class="kw1">if</span> WDorDW<span class="sy3">=</span><span class="st0">'DOStoWIN'</span> <span class="co1">// ASCII (DOS) -&gt; ANSI (Win)</span>
<span class="kw1">then</span> <span class="kw1">begin</span>
&nbsp; <span class="kw3">AssignFile</span><span class="br0">&#40;</span>DosWinFile<span class="sy1">,</span> namefile<span class="br0">&#41;</span><span class="sy1">;</span>
&nbsp; <span class="kw3">Reset</span><span class="br0">&#40;</span>DosWinFile<span class="sy1">,</span> <span class="nu0">1</span><span class="br0">&#41;</span><span class="sy1">;</span>
&nbsp; <span class="kw3">BlockRead</span><span class="br0">&#40;</span>DosWinFile<span class="sy1">,</span> dosBuf<span class="sy1">,</span> BUF_SZ<span class="sy1">,</span> rCnt<span class="br0">&#41;</span><span class="sy1">;</span>
&nbsp; OemToCharBuff<span class="br0">&#40;</span>dosBuf<span class="sy1">,</span> winBuf<span class="sy1">,</span> rCnt<span class="br0">&#41;</span><span class="sy1">;</span> &nbsp; &nbsp; <span class="co1">// ASCII (DOS) -&gt; ANSI (Win)</span>
&nbsp; <span class="kw3">CloseFile</span><span class="br0">&#40;</span>DosWinFile<span class="br0">&#41;</span><span class="sy1">;</span>
&nbsp; <span class="kw3">ReWrite</span><span class="br0">&#40;</span>DosWinFile<span class="sy1">,</span> <span class="nu0">1</span><span class="br0">&#41;</span><span class="sy1">;</span>
&nbsp; <span class="kw3">BlockWrite</span><span class="br0">&#40;</span>DosWinFile<span class="sy1">,</span> winBuf<span class="sy1">,</span> rCnt<span class="sy1">,</span> wCnt<span class="br0">&#41;</span><span class="sy1">;</span> <span class="co1">// запись в ANSI (Win)-кодировке</span>
&nbsp; <span class="kw3">CloseFile</span><span class="br0">&#40;</span>DosWinFile<span class="br0">&#41;</span><span class="sy1">;</span>
<span class="kw1">end</span><span class="sy1">;</span>
<span class="kw1">if</span> WDorDW<span class="sy3">=</span><span class="st0">'WINtoDOS'</span> <span class="co1">// &nbsp;ANSI (Win) -&gt; &nbsp;ASCII (DOS)</span>
<span class="kw1">then</span> <span class="kw1">begin</span>
&nbsp; <span class="kw3">AssignFile</span><span class="br0">&#40;</span>DosWinFile<span class="sy1">,</span> namefile<span class="br0">&#41;</span><span class="sy1">;</span>
&nbsp; <span class="kw3">Reset</span><span class="br0">&#40;</span>DosWinFile<span class="sy1">,</span> <span class="nu0">1</span><span class="br0">&#41;</span><span class="sy1">;</span>
&nbsp; <span class="kw3">BlockRead</span><span class="br0">&#40;</span>DosWinFile<span class="sy1">,</span> winBuf<span class="sy1">,</span> BUF_SZ<span class="sy1">,</span> rCnt<span class="br0">&#41;</span><span class="sy1">;</span>
&nbsp; CharToOEMBuff<span class="br0">&#40;</span>winBuf<span class="sy1">,</span> dosBuf<span class="sy1">,</span> rCnt<span class="br0">&#41;</span><span class="sy1">;</span> &nbsp; &nbsp; <span class="co1">// &nbsp;ANSI (Win) -&gt; &nbsp;ASCII (DOS)</span>
&nbsp; <span class="kw3">CloseFile</span><span class="br0">&#40;</span>DosWinFile<span class="br0">&#41;</span><span class="sy1">;</span>
&nbsp; <span class="kw3">ReWrite</span><span class="br0">&#40;</span>DosWinFile<span class="sy1">,</span> <span class="nu0">1</span><span class="br0">&#41;</span><span class="sy1">;</span>
&nbsp; <span class="kw3">BlockWrite</span><span class="br0">&#40;</span>DosWinFile<span class="sy1">,</span> dosBuf<span class="sy1">,</span> rCnt<span class="sy1">,</span> wCnt<span class="br0">&#41;</span><span class="sy1">;</span> <span class="co1">// запись в ASCII (DOS)-кодировке</span>
&nbsp; <span class="kw3">CloseFile</span><span class="br0">&#40;</span>DosWinFile<span class="br0">&#41;</span><span class="sy1">;</span>
<span class="kw1">end</span><span class="sy1">;</span>
<span class="kw1">end</span><span class="sy1">;</span>
&nbsp;
<span class="kw1">function</span> TForm1<span class="sy1">.</span><span class="me1">ExecAndWait</span><span class="br0">&#40;</span><span class="kw1">const</span> FileName<span class="sy1">,</span> Params<span class="sy1">:</span> <span class="kw4">ShortString</span><span class="sy1">;</span> <span class="kw1">const</span> WinState<span class="sy1">:</span> <span class="kw4">Word</span><span class="br0">&#41;</span><span class="sy1">:</span> <span class="kw4">boolean</span><span class="sy1">;</span> <span class="kw1">export</span><span class="sy1">;</span>
<span class="coMULTI">{функция запускающая приложение и ожидающая его завершения и записывающая результат работы в текстовый файл otvet.txt}</span>
<span class="kw1">var</span> 
&nbsp; StartInfo<span class="sy1">:</span> TStartupInfo<span class="sy1">;</span> 
&nbsp; ProcInfo<span class="sy1">:</span> TProcessInformation<span class="sy1">;</span> 
&nbsp; CmdLine<span class="sy1">:</span> <span class="kw4">ShortString</span><span class="sy1">;</span> 
<span class="kw1">begin</span> 
&nbsp; <span class="coMULTI">{ Помещаем имя файла между кавычками, с соблюдением всех пробелов в именах Win9x }</span> 
&nbsp; CmdLine <span class="sy1">:</span><span class="sy3">=</span> <span class="st0">'&quot;'</span> <span class="sy3">+</span> Filename <span class="sy3">+</span> <span class="st0">'&quot; '</span> <span class="sy3">+</span> Params<span class="sy3">+</span><span class="st0">' &gt;otvet.txt'</span><span class="sy1">;</span>
&nbsp; <span class="kw3">FillChar</span><span class="br0">&#40;</span>StartInfo<span class="sy1">,</span> <span class="kw3">SizeOf</span><span class="br0">&#40;</span>StartInfo<span class="br0">&#41;</span><span class="sy1">,</span> <span class="re1">#0</span><span class="br0">&#41;</span><span class="sy1">;</span>
&nbsp; <span class="kw1">with</span> StartInfo <span class="kw1">do</span> 
&nbsp; <span class="kw1">begin</span> 
&nbsp; &nbsp; cb <span class="sy1">:</span><span class="sy3">=</span> <span class="kw3">SizeOf</span><span class="br0">&#40;</span>StartInfo<span class="br0">&#41;</span><span class="sy1">;</span> 
&nbsp; &nbsp; dwFlags <span class="sy1">:</span><span class="sy3">=</span> STARTF_USESHOWWINDOW<span class="sy1">;</span> 
&nbsp; &nbsp; wShowWindow <span class="sy1">:</span><span class="sy3">=</span> WinState<span class="sy1">;</span> 
&nbsp; <span class="kw1">end</span><span class="sy1">;</span> 
&nbsp; Result <span class="sy1">:</span><span class="sy3">=</span> CreateProcess<span class="br0">&#40;</span><span class="kw1">nil</span><span class="sy1">,</span> <span class="kw4">PChar</span><span class="br0">&#40;</span> <span class="kw4">String</span><span class="br0">&#40;</span> CmdLine <span class="br0">&#41;</span> <span class="br0">&#41;</span><span class="sy1">,</span> <span class="kw1">nil</span><span class="sy1">,</span> <span class="kw1">nil</span><span class="sy1">,</span> <span class="kw2">false</span><span class="sy1">,</span> 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CREATE_NEW_CONSOLE <span class="kw1">or</span> NORMAL_PRIORITY_CLASS<span class="sy1">,</span> <span class="kw1">nil</span><span class="sy1">,</span> 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">PChar</span><span class="br0">&#40;</span><span class="kw3">ExtractFilePath</span><span class="br0">&#40;</span>Filename<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy1">,</span>StartInfo<span class="sy1">,</span>ProcInfo<span class="br0">&#41;</span><span class="sy1">;</span> 
&nbsp; <span class="coMULTI">{ Ожидаем завершения приложения }</span> 
&nbsp; <span class="kw1">if</span> Result <span class="kw1">then</span> 
&nbsp; <span class="kw1">begin</span> 
&nbsp; &nbsp; WaitForSingleObject<span class="br0">&#40;</span>ProcInfo<span class="sy1">.</span><span class="me1">hProcess</span><span class="sy1">,</span> INFINITE<span class="br0">&#41;</span><span class="sy1">;</span>
&nbsp; &nbsp; <span class="coMULTI">{ Free the Handles }</span>
&nbsp; &nbsp; CloseHandle<span class="br0">&#40;</span>ProcInfo<span class="sy1">.</span><span class="me1">hProcess</span><span class="br0">&#41;</span><span class="sy1">;</span>
&nbsp; &nbsp; CloseHandle<span class="br0">&#40;</span>ProcInfo<span class="sy1">.</span><span class="me1">hThread</span><span class="br0">&#41;</span><span class="sy1">;</span>
&nbsp; <span class="kw1">end</span><span class="sy1">;</span>
<span class="kw1">end</span><span class="sy1">;</span>
&nbsp;
<span class="kw1">procedure</span> TForm1<span class="sy1">.</span><span class="me1">Button1Click</span><span class="br0">&#40;</span>Sender<span class="sy1">:</span> <span class="kw4">TObject</span><span class="br0">&#41;</span><span class="sy1">;</span>
<span class="kw1">begin</span>
Memo1<span class="sy1">.</span><span class="me1">Lines</span><span class="sy1">.</span><span class="me1">SaveToFile</span><span class="br0">&#40;</span><span class="kw3">ExtractFileDir</span><span class="br0">&#40;</span>Application<span class="sy1">.</span><span class="me1">ExeName</span><span class="br0">&#41;</span><span class="sy3">+</span><span class="st0">'\bp7.0\BIN\KOD.pas'</span><span class="br0">&#41;</span><span class="sy1">;</span> <span class="co1">//сохраняем наш код в файл c Win-кодировкой</span>
<span class="coMULTI">{перевод кодировок из win в dos (из одного файла в другой), т.к. Delphi работает</span>
<span class="coMULTI">с Win-кодировкой, а Pascal с dos-кодировкой}</span>
MyRewriteProc<span class="br0">&#40;</span><span class="kw3">ExtractFileDir</span><span class="br0">&#40;</span>Application<span class="sy1">.</span><span class="me1">ExeName</span><span class="br0">&#41;</span><span class="sy3">+</span><span class="st0">'\bp7.0\BIN\KOD.pas'</span><span class="sy1">,</span><span class="st0">'WINtoDOS'</span><span class="br0">&#41;</span><span class="sy1">;</span>
<span class="coMULTI">{Теперь создадим процесс в котором запустим компилятор bpc.exe с параметрами указывающими на наш файл и дождемся его завершения}</span>
ExecAndWait<span class="br0">&#40;</span><span class="kw3">ExtractFileDir</span><span class="br0">&#40;</span>Application<span class="sy1">.</span><span class="me1">ExeName</span><span class="br0">&#41;</span><span class="sy3">+</span><span class="st0">'\bp7.0\BIN\BPC.exe'</span><span class="sy1">,</span><span class="st0">'-b KOD.pas'</span><span class="sy1">,</span> SW_SHOWNORMAL<span class="br0">&#41;</span> <span class="sy1">;</span>
<span class="coMULTI">{перевод кодировок из dos в win (из одного файла в другой), т.к. Delphi работает</span>
<span class="coMULTI">с Win-кодировкой, а Pascal с dos-кодировкой}</span>
MyRewriteProc<span class="br0">&#40;</span><span class="kw3">ExtractFileDir</span><span class="br0">&#40;</span>Application<span class="sy1">.</span><span class="me1">ExeName</span><span class="br0">&#41;</span><span class="sy3">+</span><span class="st0">'\bp7.0\BIN\otvet.txt'</span><span class="sy1">,</span><span class="st0">'DOStoWIN'</span><span class="br0">&#41;</span><span class="sy1">;</span>
Memo2<span class="sy1">.</span><span class="me1">Lines</span><span class="sy1">.</span><span class="me1">LoadFromFile</span><span class="br0">&#40;</span><span class="kw3">ExtractFileDir</span><span class="br0">&#40;</span>Application<span class="sy1">.</span><span class="me1">ExeName</span><span class="br0">&#41;</span><span class="sy3">+</span><span class="st0">'\bp7.0\BIN\otvet.txt'</span><span class="br0">&#41;</span><span class="sy1">;</span>
<span class="kw1">end</span><span class="sy1">;</span>
&nbsp;
<span class="kw1">procedure</span> TForm1<span class="sy1">.</span><span class="me1">Button2Click</span><span class="br0">&#40;</span>Sender<span class="sy1">:</span> <span class="kw4">TObject</span><span class="br0">&#41;</span><span class="sy1">;</span>
<span class="kw1">begin</span>
<span class="coMULTI">{перевод кодировок из win в dos (из одного файла в другой), т.к. Delphi работает</span>
<span class="coMULTI">с Win-кодировкой, а Pascal с dos-кодировкой}</span>
MyRewriteProc<span class="br0">&#40;</span><span class="kw3">ExtractFileDir</span><span class="br0">&#40;</span>Application<span class="sy1">.</span><span class="me1">ExeName</span><span class="br0">&#41;</span><span class="sy3">+</span><span class="st0">'\bp7.0\BIN\input.txt'</span><span class="sy1">,</span><span class="st0">'WINtoDOS'</span><span class="br0">&#41;</span><span class="sy1">;</span>
Memo3<span class="sy1">.</span><span class="me1">Lines</span><span class="sy1">.</span><span class="me1">SaveToFile</span><span class="br0">&#40;</span><span class="kw3">ExtractFileDir</span><span class="br0">&#40;</span>Application<span class="sy1">.</span><span class="me1">ExeName</span><span class="br0">&#41;</span><span class="sy3">+</span><span class="st0">'\bp7.0\BIN\input.txt'</span><span class="br0">&#41;</span><span class="sy1">;</span>
ExecAndWait<span class="br0">&#40;</span><span class="kw3">ExtractFileDir</span><span class="br0">&#40;</span>Application<span class="sy1">.</span><span class="me1">ExeName</span><span class="br0">&#41;</span><span class="sy3">+</span><span class="st0">'\bp7.0\BIN\KOD.exe'</span><span class="sy1">,</span><span class="st0">''</span><span class="sy1">,</span> SW_SHOWNORMAL<span class="br0">&#41;</span><span class="sy1">;</span>
<span class="coMULTI">{перевод кодировок из dos в win (из одного файла в другой), т.к. Delphi работает</span>
<span class="coMULTI">с Win-кодировкой, а Pascal с dos-кодировкой}</span>
MyRewriteProc<span class="br0">&#40;</span><span class="kw3">ExtractFileDir</span><span class="br0">&#40;</span>Application<span class="sy1">.</span><span class="me1">ExeName</span><span class="br0">&#41;</span><span class="sy3">+</span><span class="st0">'\bp7.0\BIN\output.txt'</span><span class="sy1">,</span><span class="st0">'DOStoWIN'</span><span class="br0">&#41;</span><span class="sy1">;</span>
Memo4<span class="sy1">.</span><span class="me1">Lines</span><span class="sy1">.</span><span class="me1">LoadFromFile</span><span class="br0">&#40;</span><span class="kw3">ExtractFileDir</span><span class="br0">&#40;</span>Application<span class="sy1">.</span><span class="me1">ExeName</span><span class="br0">&#41;</span><span class="sy3">+</span><span class="st0">'\bp7.0\BIN\output.txt'</span><span class="br0">&#41;</span><span class="sy1">;</span>
<span class="kw1">end</span><span class="sy1">;</span>
&nbsp;
<span class="kw1">end</span><span class="sy1">.</span></pre></td></tr></table></div></td></tr></tbody></table></div><br />
<br />
<br />
При запуске процесса компилятора в качестве параметра указан параметр -b т.е. компиляция всех указанных файлов, так же существуют и другие параметры которые приведены ниже :<br />
<br />
Компилятор командной строки позволяет вам вызывать все функции компилятора IDE из командной строки DOS (она же командная строка cmd.exe в Windows).<br />
Компилятор командной строки использует следующий синтаксис<br />
<br />
      TPC [опции] &lt;имя файла&gt; [опции]<br />
      BPC [опции] &lt;имя файла&gt; [опции]<br />
<br />
 Где в качестве [опций] могут быть одна или большее<br />
 количество опций, разделенных пробелами.<br />
<br />
  ¦ Поместите + (или пробел) после опции, чтобы включить ее.<br />
  ¦ Поместите - после опции, чтобы выключить ее.<br />
Опции директив компилятора<br />
<br />
   /$A    Выравнивание данных             (Align Data)<br />
   /$B    Булева оценка                   (Boolean Evaluation)<br />
   /$D    Отладочная информация           (Debug Information)<br />
   /$F    Дальний тип вызова              (Force FAR Calls)<br />
   /$G    Генерировать 286 команды        (Generate 286 Instruction)<br />
   /$I    Проверка ввода/вывода           (Input/Output Checking)<br />
   /$L    Информация о локальных символах (Local Symbol Information)<br />
   /$N    80x87 коды (FPU сопроцессор)    (80x87 Code (Numeric coprocessor))<br />
   /$R    Проверка диапазона              (Range Checking)<br />
   /$S    Проверка переполнения стека     (Stack-Overflow Checking)<br />
   /$T    Типизированный @ указатель      (Typed @ Pointer)<br />
   /$V    Проверка строковых переменных   (String Var Checking)<br />
   /$W    Запись активации Windows        (Windows Stack Frame)<br />
   /$X    Расширенный синтаксис           (Extended Syntax)<br />
Опции режима компилятора<br />
<br />
   /B     Компилировать все               (Build All)<br />
   /F     Найти ошибку                    (Find Error)<br />
   /L     Буфер компоновщика              (Link Buffer)<br />
   /M     Создать                         (Make)<br />
   /Q     Тихий (нет эквивалента в IDE)   (Quiet)<br />
Опция условного выражения<br />
<br />
   /D     Условные выражения              (Conditional Defines)<br />
Опции отладки<br />
<br />
   /G     .Map файл<br />
   /V     Включить отладочную информация в EXE файл<br />
Опции Каталога<br />
<br />
   /E     Каталог для EXE и TPU<br />
   /I     Каталог включений (include)<br />
   /O     Каталог объектных файлов<br />
   /R     Каталог ресурсов<br />
   /T     Каталог Turbo Pascal<br />
   /U     Каталог модулей (unit)<br />
<br />
 Большинство опций командной строки имеет эквивалентные команды меню.<br />
<br />
Структура папок для указанного примера должна быть следующая :<br />
<br />
Папака с проектом<br />
¦   Project1.cfg<br />
¦   Project1.dof<br />
¦   Project1.dpr<br />
¦   Project1.exe<br />
¦   Project1.res<br />
¦   tree.txt<br />
¦   Unit1.dcu<br />
¦   Unit1.ddp<br />
¦   Unit1.dfm<br />
¦   Unit1.pas<br />
¦   Unit1.~ddp<br />
¦   Unit1.~dfm<br />
¦   Unit1.~pas<br />
¦   <br />
L---bp7.0<br />
    +---BGI<br />
    ¦       ATT.BGI<br />
    ¦       BOLD.CHR<br />
    ¦       CGA.BGI<br />
    ¦       EGAVGA.BGI<br />
    ¦       EURO.CHR<br />
    ¦       GOTH.CHR<br />
    ¦       HERC.BGI<br />
    ¦       IBM8514.BGI<br />
    ¦       LCOM.CHR<br />
    ¦       LITT.CHR<br />
    ¦       PC3270.BGI<br />
    ¦       SANS.CHR<br />
    ¦       SCRI.CHR<br />
    ¦       SIMP.CHR<br />
    ¦       SVGA256.BGI<br />
    ¦       TRIP.CHR<br />
    ¦       TSCR.CHR<br />
    ¦       VESA16.BGI<br />
    ¦       <br />
    +---BIN<br />
    ¦       BP.DSK<br />
    ¦       BP.EXE<br />
    ¦       BP.ICO<br />
    ¦       BP.TP<br />
    ¦       BPC.EXE // наш компилятор который мы скачивали отдельно<br />
    ¦       DPMI16BI.OVL<br />
    ¦       Input.txt<br />
    ¦       KOD.EXE<br />
    ¦       KOD.PAS<br />
    ¦       otvet.txt<br />
    ¦       OUTPUT.TXT<br />
    ¦       PRNFLTR.EXE<br />
    ¦       RTM.EXE<br />
    ¦       TPP.TPL<br />
    ¦       TURBO.TPH<br />
    ¦       TURBO.TPL<br />
    ¦       TVISION.TPH<br />
    ¦       Русская версия Borland Pascal.PIF<br />
    ¦       <br />
    L---UNITS<br />
            APP.TPP<br />
            APP.TPU<br />
            COLORSEL.TPP<br />
            COLORSEL.TPU<br />
            DIALOGS.TPP<br />
            DIALOGS.TPU<br />
            DRIVERS.TPP<br />
            DRIVERS.TPU<br />
            EDITORS.TPP<br />
            EDITORS.TPU<br />
            GRAPH.TPP<br />
            GRAPH.TPU<br />
            HISTLIST.TPP<br />
            HISTLIST.TPU<br />
            MEMORY.TPP<br />
            MEMORY.TPU<br />
            MENUS.TPP<br />
            MENUS.TPU<br />
            MSGBOX.TPP<br />
            MSGBOX.TPU<br />
            OBJECTS.TPP<br />
            OBJECTS.TPU<br />
            OUTLINE.TPP<br />
            OUTLINE.TPU<br />
            STDDLG.TPP<br />
            STDDLG.TPU<br />
            STRINGS.TPU<br />
            TEXTVIEW.TPP<br />
            TEXTVIEW.TPU<br />
            VALIDATE.TPP<br />
            VALIDATE.TPU<br />
            VIEWS.TPP<br />
            VIEWS.TPU<br />
            WINDOS.TPU<br />
<br />
Во вложенном архиве находится рабочая программа, исходники, BP7.0, компилятор bpc.exe и все это размещено по настроенным ссылкам в программе.<br />
<br />
Использованые источники для составления статьи : <br />
процедура перевода кодировок пользователя kukuruku310 с форума cyberforum.ru<br />
tp7.info<br />
sysman.ru<br />
pascal.toom.su<br />
поиск google.com ))</div>


<!-- attachments -->
	<div style="margin-top:10px">

		
		
		
		
			<fieldset class="fieldset">
				<legend>Вложения</legend>
				<table cellpadding="0" cellspacing="3" border="0">
				<tr>
	<td><img loading="lazy" decoding="async" class="inlineimg" src="http://www.cyberforum.ru//cyberstatic.net/images/attach/rar.gif" alt="Тип файла: rar" width="16" height="16" border="0" style="vertical-align:baseline" /></td>
	<td><a href="https://www.cyberforum.ru/blog_attachment.php?attachmentid=578&amp;d=1334591737">Работа с pascal компилятором.rar</a> (1.32 Мб, 844 просмотров)</td>
</tr>
				</table>
			</fieldset>
		

	</div>
<!-- / attachments -->
]]></content:encoded>
			<dc:creator>Andretti</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/255119/321.html</guid>
		</item>
	</channel>
</rss>
