-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathioutils.html
179 lines (172 loc) · 7.73 KB
/
ioutils.html
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
---
dl-file-prefix: "dd-ioutils-"
layout: "codelib-tplt"
group: lib
priority: 14
version: "1.0.1"
release-date: "2014-01-11"
platforms: ["Win32", "Win64"]
frameworks: ["VCL"]
compatibility: "Delphi 2005 & later"
title: "I/O Utility Classes"
precis: "Classes to assist in various I/O related tasks"
summary: "Various Delphi Pascal classes designed to assist in various I/O related tasks."
meta-title: "File & Pipe IO Utility Classes for Delphi Pascal VCL | Open Source | 32 & 64 bit"
meta-desc: "Delphi Pascal classes that encapsulate Windows pipes and file handles. Has filters for reading Unicode & ANSI text from pipes. Required Delphi 2005 & later."
download-base-url: "https://sourceforge.net/projects/ddablib/files/ioutils/"
repo-url: "https://github.com/ddablib/ioutils"
docs-url: "https://github.com/delphidabbler/ddab-lib-docs/blob/master/Docs/IOUtils.md"
want-header-buttons: true
status: "current"
---
{% assign dl-file = page.dl-file-prefix | append: page.version | append: ".zip" %}
{% assign dl-url = page.download-base-url | append: dl-file %}
<section class="panel panel-default">
<div class="panel-heading">
<h2 class="panel-title">
Overview
</h2>
</div>
<div class="panel-body">
<p>
These classes are designed to assist in various I/O related tasks. Classes are provided to:
</p>
<ul class="wide">
<li>
Simplify the opening of files in various different modes with specified security attributes and provide access to the file handle.
</li>
<li>
Simplify working with un-named pipes.
</li>
<li>
Handle the formatting of data read from pipes, for example reading Unicode strings.
</li>
</ul>
<p class="alert alert-info glyph">
These classes used to be included in the <em><a href="{{ site.base-rule }}{{ site.data.core.software-base-url}}/consoleapp.html">Console Application Runner Classes</a></em> project to help handle standard I/O redirection but were pulled out into their own project because they have wider uses.
</p>
<h3 data-toggle="collapse" data-target="#demo" class="collapsible collapsed">
Demo code
</h3>
<div id="demo" class="collapse"> <!-- begin collapsible #demo section -->
<p>
There are no demo projects included with the download. However, much of the code is used in some of the demos included with the <a href="{{ site.data.core.software-base-url}}/consoleapp.html">Console Application Runner Classes</a>.
</p>
</div> <!-- /#demo -->
</div>
</section>
<section class="panel panel-default">
<div class="panel-heading">
<h2 class="panel-title">
Get The Code
</h2>
</div>
<div class="panel-body">
<p>
You can download the latest version of the <em>{{page.title}}</em> directly from SourceForge as <code>{{ dl-file }}</code>.
</p>
<p class="text-center">
<a class="btn btn-primary" role="button" href="{{ dl-url }}" aria-label="Go to SourceForge and download latest version automatically">Download <span class="hidden-xs">release </span>v{{ page.version }}<span class="hidden-xs"> from SourceForge</span></a>
</p>
<p>
The <em>{{ page.title }}</em> source code is hosted in the <a href="{{ page.repo-url }}" aria-label="Link to the ddablib/ioutils repository on GitHub"><code>ddablib/ioutils</code></a> GitHub repository. You can <code>git clone</code> or fork the repository as required.
</p>
</div>
</section>
<section class="panel panel-default">
<div class="panel-heading">
<h2 class="panel-title">
Installation
</h2>
</div>
<div class="panel-body">
<p>
The <em>{{page.title}}</em> are supplied in a zip file. Before installing you need to extract all the files from the zip file, preserving the directory structure. The following files will be extracted:
</p>
<ul class="list-group">
<li class="list-group-item">
<strong><code>PJFileHandle.pas</code></strong> – source code of the class used to open files in various sharing and security modes.
</li>
<li class="list-group-item">
<strong><code>PJPipe.pas</code></strong> – source code of the class used to encapsulate un-named pipes.
</li>
<li class="list-group-item">
<strong><code>PJPipeFilters.pas</code></strong> – source code of classes used to filter output from pipes.
</li>
<li class="list-group-item">
<code>ReadMe.htm</code> – read-me file.
</li>
<li class="list-group-item">
<code>ChangeLog.txt</code> – project change log.
</li>
<li class="list-group-item">
<code>MPL-2.txt</code> – the Mozilla Public License v2.0.
</li>
<li class="list-group-item">
<code>Documentation.URL</code> – short-cut to the unit's online documentation.
</li>
</ul>
<p>
There are three possible ways to use the units.
</p>
<ol class="wide">
<li>
The simplest way is to add <code>PJFileHandle.pas</code>, <code>PJPipe.pas</code> and <code>PJPipeFilters.pas</code>to your projects as you need them.
</li>
<li>
To make the units easier to re-use you can either copy them to a folder on your Delphi search path, or add the folder where you extracted the units to the search path. You then simply use the units as required without needing to add them to your project.
</li>
<li>
For maximum portability you can add the units to a Delphi design time package. If you need help doing this <a href="{{ site.data.core.install-to-ide-link }}" aria-title="see a tip on working with design time packages">see here</a>.
</li>
</ol>
</div>
</section>
<section class="panel panel-default">
<div class="panel-heading">
<h2 class="panel-title">
Documentation
</h2>
</div>
<div class="panel-body">
<p>
The <em>{{page.title}}</em> are comprehensively documented online <a href="{{ page.docs-url }}" aria-title="View the online documentation">here</a>
</p>
<p>
The project's change log can be viewed <a href="https://raw.githubusercontent.com/ddablib/ioutils/main/Docs/ChangeLog.txt" aria-title="View the change log in plain text">here</a>.
</p>
<p>
A read-me file (<code>ReadMe.htm</code>) is included in the project download.
</p>
</div>
</section>
<section class="panel panel-default">
<div class="panel-heading">
<h2 class="panel-title" id="feedback">
Feedback & Queries
</h2>
</div>
<div class="panel-body">
<p>
If you find any bugs or want to suggest a new feature please report them using the <em>{{page.title}}</em> <a href="https://github.com/ddablib/ioutils/issues">issue tracker</a>.
</p>
<p>
If you have created a bug fix or have implemented a new feature please open a pull request for it.
</p>
<p>
Should you have any queries about using the classes please read the <a href="{{ page.docs-url }}">documentation</a>. If you can't find an answer in the documentation then post a message in the <a href="https://github.com/orgs/ddablib/discussions">discussion group</a>.
</p>
</div>
</section>
<section class="panel panel-default">
<div class="panel-heading">
<h2 class="panel-title">
License
</h2>
</div>
<div class="panel-body">
<p>
<span class="fa fa-copyright fa-pull-left fa-3x"></span> The <em>{{page.title}}</em> are open source. They are copyright © 2013-20414 by <a href="https://en.gravatar.com/delphidabbler" aria-label="Peter Johnson's Gravatar account">Peter Johnson</a>. The source code is made available under the terms of the <a href="https://www.mozilla.org/MPL/2.0/" aria-label="Mozilla Public License v2.0 on mozilla.org">Mozilla Public License v2.0</a>. All relevant trademarks are acknowledged.
</p>
</div>
</section>