123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393 |
- %
- % $Id$
- % This file is part of the FPC documentation.
- % Copyright (C) 1997, by Michael Van Canneyt
- %
- % The FPC documentation is free text; you can redistribute it and/or
- % modify it under the terms of the GNU Library General Public License as
- % published by the Free Software Foundation; either version 2 of the
- % License, or (at your option) any later version.
- %
- % The FPC Documentation is distributed in the hope that it will be useful,
- % but WITHOUT ANY WARRANTY; without even the implied warranty of
- % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- % Library General Public License for more details.
- %
- % You should have received a copy of the GNU Library General Public
- % License along with the FPC documentation; see the file COPYING.LIB. If not,
- % write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- % Boston, MA 02111-1307, USA.
- %
- \chapter{The STRINGS unit.}
- This chapter describes the \var{STRINGS} unit for \fpc. This unit is system
- independent, and therefore works on all supported platforms.
- Since the unit only provides some procedures and functions, there is
- only one section, which gives the declarations of these functions, together
- with an explanation.
- \section{Functions and procedures.}
- \begin{function}{StrAlloc}
- \Declaration
- Function StrAlloc (Len : Longint);PChar
- \Description
- \var{StrAlloc} reserves memory on the heap for a string with length \var{Len},
- terminating \var{\#0} included, and returns a pointer to it.
- \Errors
- If there is not enough memory, a run-time error occurs.
- \SeeAlso
- \seef{StrNew}, \seef{StrPCopy}.
- \end{function}
- \begin{function}{StrCat}
- \Declaration
- Function StrCat (Dest,Source : PChar) : PChar;
- \Description
- Attaches \var{Source} to \var{Dest} and returns \var{Dest}.
- \Errors
- No length checking is performed.
- \SeeAlso
- \seem{Concat}{}
- \end{function}
- \latex{\lstinputlisting{stringex/ex11.pp}}
- \html{\input{stringex/ex11.tex}}
- \begin{function}{StrComp}
- \Declaration
- Function StrComp (S1,S2 : PChar) : Longint;
- \Description
- Compares the null-terminated strings \var{S1} and \var{S2}.
- The result is
- \begin{itemize}
- \item A negative \var{Longint} when \var{S1<S2}.
- \item 0 when \var{S1=S2}.
- \item A positive \var{Longint} when \var{S1>S2}.
- \end{itemize}
- \Errors
- None.
- \SeeAlso
- \seef{StrLComp}, \seef{StrIComp}, \seef{StrLIComp}
- \end{function}
- For an example, see \seef{StrLComp}.
- \begin{function}{StrCopy}
- \Declaration
- Function StrCopy (Dest,Source : PChar) : PChar;
- \Description
-
- Copy the null terminated string in \var{Source} to \var{Dest}, and
- returns a pointer to \var{Dest}. \var{Dest} needs enough room to contain
- \var{Source}, i.e. \var{StrLen(Source)+1} bytes.
- \Errors
- No length checking is performed.
- \SeeAlso
- \seef{StrPCopy}, \seef{StrLCopy}, \seef{StrECopy}
- \end{function}
- \latex{\lstinputlisting{stringex/ex4.pp}}
- \html{\input{stringex/ex4.tex}}
- \begin{procedure}{StrDispose}
- \Declaration
- Procedure StrDispose (P : PChar);
- \Description
- Removes the string in \var{P} from the heap and releases the memory.
- \Errors
- None.
- \SeeAlso
- \seem{Dispose}{}, \seef{StrNew}
- \end{procedure}
- \latex{\lstinputlisting{stringex/ex17.pp}}
- \html{\input{stringex/ex17.tex}}
- \begin{function}{StrECopy}
- \Declaration
- Function StrECopy (Dest,Source : PChar) : PChar;
- \Description
- Copies the Null-terminated string in \var{Source} to \var{Dest}, and
- returns a pointer to the end (i.e. the terminating Null-character) of the
- copied string.
- \Errors
- No length checking is performed.
- \SeeAlso
- \seef{StrLCopy}, \seef{StrCopy}
- \end{function}
- \latex{\lstinputlisting{stringex/ex6.pp}}
- \html{\input{stringex/ex6.tex}}
- \begin{function}{StrEnd}
- \Declaration
- Function StrEnd (P : PChar) : PChar;
- \Description
- Returns a pointer to the end of \var{P}. (i.e. to the terminating
- null-character.
- \Errors
- None.
- \SeeAlso
- \seef{StrLen}
- \end{function}
- \latex{\lstinputlisting{stringex/ex7.pp}}
- \html{\input{stringex/ex7.tex}}
- \begin{function}{StrIComp}
- \Declaration
- Function StrIComp (S1,S2 : PChar) : Longint;
- \Description
- Compares the null-terminated strings \var{S1} and \var{S2}, ignoring case.
- The result is
- \begin{itemize}
- \item A negative \var{Longint} when \var{S1<S2}.
- \item 0 when \var{S1=S2}.
- \item A positive \var{Longint} when \var{S1>S2}.
- \end{itemize}
- \Errors
- None.
- \SeeAlso
- \seef{StrLComp}, \seef{StrComp}, \seef{StrLIComp}
- \end{function}
- \latex{\lstinputlisting{stringex/ex8.pp}}
- \html{\input{stringex/ex8.tex}}
- \begin{function}{StrLCat}
- \Declaration
- Function StrLCat (Dest,Source : PChar; MaxLen : Longint) : PChar;
- \Description
- Adds \var{MaxLen} characters from \var{Source} to \var{Dest}, and adds a
- terminating null-character. Returns \var{Dest}.
- \Errors
- None.
- \SeeAlso
- \seef{StrCat}
- \end{function}
- \latex{\lstinputlisting{stringex/ex12.pp}}
- \html{\input{stringex/ex12.tex}}
- \begin{function}{StrLComp}
- \Declaration
- Function StrLComp (S1,S2 : PChar; L : Longint) : Longint;
- \Description
- Compares maximum \var{L} characters of the null-terminated strings
- \var{S1} and \var{S2}.
- The result is
- \begin{itemize}
- \item A negative \var{Longint} when \var{S1<S2}.
- \item 0 when \var{S1=S2}.
- \item A positive \var{Longint} when \var{S1>S2}.
- \end{itemize}
- \Errors
- None.
- \SeeAlso
- \seef{StrComp}, \seef{StrIComp}, \seef{StrLIComp}
- \end{function}
- \latex{\lstinputlisting{stringex/ex8.pp}}
- \html{\input{stringex/ex8.tex}}
- \begin{function}{StrLCopy}
- \Declaration
- Function StrLCopy (Dest,Source : PChar; MaxLen : Longint) : PChar;
- \Description
- Copies \var{MaxLen} characters from \var{Source} to \var{Dest}, and makes
- \var{Dest} a null terminated string.
- \Errors
- No length checking is performed.
- \SeeAlso
- \seef{StrCopy}, \seef{StrECopy}
- \end{function}
-
- \latex{\lstinputlisting{stringex/ex5.pp}}
- \html{\input{stringex/ex5.tex}}
- \begin{function}{StrLen}
- \Declaration
- Function StrLen (p : PChar) : Longint;
- \Description
- Returns the length of the null-terminated string \var{P}.
- \Errors
- None.
- \SeeAlso
- \seem{Length}{}
- \end{function}
- \latex{\lstinputlisting{stringex/ex1.pp}}
- \html{\input{stringex/ex1.tex}}
- \begin{function}{StrLIComp}
- \Declaration
- Function StrLIComp (S1,S2 : PChar; L : Longint) : Longint;
- \Description
- Compares maximum \var{L} characters of the null-terminated strings \var{S1}
- and \var{S2}, ignoring case.
- The result is
- \begin{itemize}
- \item A negative \var{Longint} when \var{S1<S2}.
- \item 0 when \var{S1=S2}.
- \item A positive \var{Longint} when \var{S1>S2}.
- \end{itemize}
- \Errors
- None.
- \SeeAlso
- \seef{StrLComp}, \seef{StrComp}, \seef{StrIComp}
- \end{function}
- For an example, see \seef{StrIComp}
- \begin{function}{StrLower}
- \Declaration
- Function StrLower (P : PChar) : PChar;
- \Description
- Converts \var{P} to an all-lowercase string. Returns \var{P}.
- \Errors
- None.
- \SeeAlso
- \seem{Upcase}{}, \seef{StrUpper}
- \end{function}
- \latex{\lstinputlisting{stringex/ex14.pp}}
- \html{\input{stringex/ex14.tex}}
- \begin{function}{StrMove}
- \Declaration
- Function StrMove (Dest,Source : PChar; MaxLen : Longint) : PChar;
- \Description
- Copies \var{MaxLen} characters from \var{Source} to \var{Dest}. No
- terminating null-character is copied.
- Returns \var {Dest}.
- \Errors
- None.
- \SeeAlso
- \seef{StrLCopy}, \seef{StrCopy}
- \end{function}
- \latex{\lstinputlisting{stringex/ex10.pp}}
- \html{\input{stringex/ex10.tex}}
- \begin{function}{StrNew}
- \Declaration
- Function StrNew (P : PChar) : PChar;
- \Description
- Copies \var{P} to the Heap, and returns a pointer to the copy.
- \Errors
- Returns \var{Nil} if no memory was available for the copy.
- \SeeAlso
- \seem{New}{}, \seef{StrCopy}, \seep{StrDispose}
- \end{function}
- \latex{\lstinputlisting{stringex/ex16.pp}}
- \html{\input{stringex/ex16.tex}}
- \begin{function}{StrPas}
- \Declaration
- Function StrPas (P : PChar) : String;
- \Description
- Converts a null terminated string in \var{P} to a Pascal string, and returns
- this string. The string is truncated at 255 characters.
- \Errors
- None.
- \SeeAlso
- \seef{StrPCopy}
- \end{function}
- \latex{\lstinputlisting{stringex/ex3.pp}}
- \html{\input{stringex/ex3.tex}}
- \begin{function}{StrPCopy}
- \Declaration
- Function StrPCopy (Dest : PChar; Const Source : String) : PChar;
- \Description
- Converts the Pascal string in \var{Source} to a Null-terminated
- string, and copies it to \var{Dest}. \var{Dest} needs enough room to contain
- the string \var{Source}, i.e. \var{Length(Source)+1} bytes.
- \Errors
- No length checking is performed.
- \SeeAlso
- \seef{StrPas}
- \end{function}
- \latex{\lstinputlisting{stringex/ex2.pp}}
- \html{\input{stringex/ex2.tex}}
- \begin{function}{StrPos}
- \Declaration
- Function StrPos (S1,S2 : PChar) : PChar;
- \Description
- Returns a pointer to the first occurrence of \var{S2} in \var{S1}.
- If \var{S2} does not occur in \var{S1}, returns \var{Nil}.
- \Errors
- None.
- \SeeAlso
- \seem{Pos}{}, \seef{StrScan}, \seef{StrRScan}
- \end{function}
- \latex{\lstinputlisting{stringex/ex15.pp}}
- \html{\input{stringex/ex15.tex}}
- \begin{function}{StrRScan}
- \Declaration
- Function StrRScan (P : PChar; C : Char) : PChar;
- \Description
- Returns a pointer to the last occurrence of the character \var{C} in the
- null-terminated string \var{P}. If \var{C} does not occur, returns
- \var{Nil}.
- \Errors
- None.
- \SeeAlso
- \seem{Pos}{}, \seef{StrScan}, \seef{StrPos}
- \end{function}
- For an example, see \seef{StrScan}.
- \begin{function}{StrScan}
- \Declaration
- Function StrScan (P : PChar; C : Char) : PChar;
- \Description
- Returns a pointer to the first occurrence of the character \var{C} in the
- null-terminated string \var{P}. If \var{C} does not occur, returns
- \var{Nil}.
- \Errors
- None.
- \SeeAlso
- \seem{Pos}{}, \seef{StrRScan}, \seef{StrPos}
- \end{function}
- \latex{\lstinputlisting{stringex/ex13.pp}}
- \html{\input{stringex/ex13.tex}}
- \begin{function}{StrUpper}
- \Declaration
- Function StrUpper (P : PChar) : PChar;
- \Description
- Converts \var{P} to an all-uppercase string. Returns \var{P}.
- \Errors
- None.
- \SeeAlso
- \seem{Upcase}{}, \seef{StrLower}
- \end{function}
- For an example, see \seef{StrLower}
|