--- ibx/trunk/runtime/IBUtils.pas 2013/02/28 16:56:14 16 +++ ibx/trunk/runtime/IBUtils.pas 2013/12/28 19:22:24 17 @@ -1,168 +1,168 @@ -{************************************************************************} -{ } -{ Borland Delphi Visual Component Library } -{ InterBase Express core components } -{ } -{ Copyright (c) 1998-2000 Inprise Corporation } -{ } -{ InterBase Express is based in part on the product } -{ Free IB Components, written by Gregory H. Deatz for } -{ Hoagland, Longo, Moran, Dunst & Doukas Company. } -{ Free IB Components is used under license. } -{ } -{ The contents of this file are subject to the InterBase } -{ Public License Version 1.0 (the "License"); you may not } -{ use this file except in compliance with the License. You } -{ may obtain a copy of the License at http://www.Inprise.com/IPL.html } -{ Software distributed under the License is distributed on } -{ an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either } -{ express or implied. See the License for the specific language } -{ governing rights and limitations under the License. } -{ The Original Code was created by InterBase Software Corporation } -{ and its successors. } -{ Portions created by Inprise Corporation are Copyright (C) Inprise } -{ Corporation. All Rights Reserved. } -{ Contributor(s): Jeff Overcash } -{ } -{ IBX For Lazarus (Firebird Express) } -{ Contributor: Tony Whyman, MWA Software http://www.mwasoftware.co.uk } -{ Portions created by MWA Software are copyright McCallum Whyman } -{ Associates Ltd 2011 } -{ } -{************************************************************************} - -unit IBUtils; - -{$Mode Delphi} - -interface - -uses -{$IFDEF WINDOWS } - Windows, -{$ELSE} - unix, -{$ENDIF} - Classes, SysUtils; - -const - CRLF = #13 + #10; - CR = #13; - LF = #10; - TAB = #9; - NULL_TERMINATOR = #0; - -function Max(n1, n2: Integer): Integer; -function Min(n1, n2: Integer): Integer; -function RandomString(iLength: Integer): String; -function RandomInteger(iLow, iHigh: Integer): Integer; -function StripString(st: String; CharsToStrip: String): String; -function FormatIdentifier(Dialect: Integer; Value: String): String; -function FormatIdentifierValue(Dialect: Integer; Value: String): String; -function ExtractIdentifier(Dialect: Integer; Value: String): String; -function QuoteIdentifier(Dialect: Integer; Value: String): String; - -implementation - -function Max(n1, n2: Integer): Integer; -begin - if (n1 > n2) then - result := n1 - else - result := n2; -end; - -function Min(n1, n2: Integer): Integer; -begin - if (n1 < n2) then - result := n1 - else - result := n2; -end; - -function RandomString(iLength: Integer): String; -begin - result := ''; - while Length(result) < iLength do - result := result + IntToStr(RandomInteger(0, High(Integer))); - if Length(result) > iLength then - result := Copy(result, 1, iLength); -end; - -function RandomInteger(iLow, iHigh: Integer): Integer; -begin - result := Trunc(Random(iHigh - iLow)) + iLow; -end; - -function StripString(st: String; CharsToStrip: String): String; -var - i: Integer; -begin - result := ''; - for i := 1 to Length(st) do begin - if AnsiPos(st[i], CharsToStrip) = 0 then - result := result + st[i]; - end; -end; - -function FormatIdentifier(Dialect: Integer; Value: String): String; -begin - Value := Trim(Value); - if Dialect = 1 then - Value := AnsiUpperCase(Value) - else - if (Value <> '') and (Value[1] = '"') then - Value := '"' + StringReplace (TrimRight(Value), '"', '""', [rfReplaceAll]) + '"' - else - Value := AnsiUpperCase(Value); - Result := Value; -end; - -function FormatIdentifierValue(Dialect: Integer; Value: String): String; -begin - Value := Trim(Value); - if Dialect = 1 then - Value := AnsiUpperCase(Value) - else - begin - if (Value <> '') and (Value[1] = '"') then - begin - Delete(Value, 1, 1); - Delete(Value, Length(Value), 1); - Value := StringReplace (Value, '""', '"', [rfReplaceAll]); - end - else - Value := AnsiUpperCase(Value); - end; - Result := Value; -end; - -function ExtractIdentifier(Dialect: Integer; Value: String): String; -begin - Value := Trim(Value); - if Dialect = 1 then - Value := AnsiUpperCase(Value) - else - begin - if (Value <> '') and (Value[1] = '"') then - begin - Delete(Value, 1, 1); - Delete(Value, Length(Value), 1); - Value := StringReplace (Value, '""', '"', [rfReplaceAll]); - end - else - Value := AnsiUpperCase(Value); - end; - Result := Value; -end; - -function QuoteIdentifier(Dialect: Integer; Value: String): String; -begin - if Dialect = 1 then - Value := AnsiUpperCase(Trim(Value)) - else - Value := '"' + Value + '"'; - Result := Value; -end; - -end. +{************************************************************************} +{ } +{ Borland Delphi Visual Component Library } +{ InterBase Express core components } +{ } +{ Copyright (c) 1998-2000 Inprise Corporation } +{ } +{ InterBase Express is based in part on the product } +{ Free IB Components, written by Gregory H. Deatz for } +{ Hoagland, Longo, Moran, Dunst & Doukas Company. } +{ Free IB Components is used under license. } +{ } +{ The contents of this file are subject to the InterBase } +{ Public License Version 1.0 (the "License"); you may not } +{ use this file except in compliance with the License. You } +{ may obtain a copy of the License at http://www.Inprise.com/IPL.html } +{ Software distributed under the License is distributed on } +{ an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either } +{ express or implied. See the License for the specific language } +{ governing rights and limitations under the License. } +{ The Original Code was created by InterBase Software Corporation } +{ and its successors. } +{ Portions created by Inprise Corporation are Copyright (C) Inprise } +{ Corporation. All Rights Reserved. } +{ Contributor(s): Jeff Overcash } +{ } +{ IBX For Lazarus (Firebird Express) } +{ Contributor: Tony Whyman, MWA Software http://www.mwasoftware.co.uk } +{ Portions created by MWA Software are copyright McCallum Whyman } +{ Associates Ltd 2011 } +{ } +{************************************************************************} + +unit IBUtils; + +{$Mode Delphi} + +interface + +uses +{$IFDEF WINDOWS } + Windows, +{$ELSE} + unix, +{$ENDIF} + Classes, SysUtils; + +const + CRLF = #13 + #10; + CR = #13; + LF = #10; + TAB = #9; + NULL_TERMINATOR = #0; + +function Max(n1, n2: Integer): Integer; +function Min(n1, n2: Integer): Integer; +function RandomString(iLength: Integer): String; +function RandomInteger(iLow, iHigh: Integer): Integer; +function StripString(st: String; CharsToStrip: String): String; +function FormatIdentifier(Dialect: Integer; Value: String): String; +function FormatIdentifierValue(Dialect: Integer; Value: String): String; +function ExtractIdentifier(Dialect: Integer; Value: String): String; +function QuoteIdentifier(Dialect: Integer; Value: String): String; + +implementation + +function Max(n1, n2: Integer): Integer; +begin + if (n1 > n2) then + result := n1 + else + result := n2; +end; + +function Min(n1, n2: Integer): Integer; +begin + if (n1 < n2) then + result := n1 + else + result := n2; +end; + +function RandomString(iLength: Integer): String; +begin + result := ''; + while Length(result) < iLength do + result := result + IntToStr(RandomInteger(0, High(Integer))); + if Length(result) > iLength then + result := Copy(result, 1, iLength); +end; + +function RandomInteger(iLow, iHigh: Integer): Integer; +begin + result := Trunc(Random(iHigh - iLow)) + iLow; +end; + +function StripString(st: String; CharsToStrip: String): String; +var + i: Integer; +begin + result := ''; + for i := 1 to Length(st) do begin + if AnsiPos(st[i], CharsToStrip) = 0 then + result := result + st[i]; + end; +end; + +function FormatIdentifier(Dialect: Integer; Value: String): String; +begin + Value := Trim(Value); + if Dialect = 1 then + Value := AnsiUpperCase(Value) + else + if (Value <> '') and (Value[1] = '"') then + Value := '"' + StringReplace (TrimRight(Value), '"', '""', [rfReplaceAll]) + '"' + else + Value := AnsiUpperCase(Value); + Result := Value; +end; + +function FormatIdentifierValue(Dialect: Integer; Value: String): String; +begin + Value := Trim(Value); + if Dialect = 1 then + Value := AnsiUpperCase(Value) + else + begin + if (Value <> '') and (Value[1] = '"') then + begin + Delete(Value, 1, 1); + Delete(Value, Length(Value), 1); + Value := StringReplace (Value, '""', '"', [rfReplaceAll]); + end + else + Value := AnsiUpperCase(Value); + end; + Result := Value; +end; + +function ExtractIdentifier(Dialect: Integer; Value: String): String; +begin + Value := Trim(Value); + if Dialect = 1 then + Value := AnsiUpperCase(Value) + else + begin + if (Value <> '') and (Value[1] = '"') then + begin + Delete(Value, 1, 1); + Delete(Value, Length(Value), 1); + Value := StringReplace (Value, '""', '"', [rfReplaceAll]); + end + else + Value := AnsiUpperCase(Value); + end; + Result := Value; +end; + +function QuoteIdentifier(Dialect: Integer; Value: String): String; +begin + if Dialect = 1 then + Value := AnsiUpperCase(Trim(Value)) + else + Value := '"' + Value + '"'; + Result := Value; +end; + +end.