Code:

{:Converts Unicode string to Ansi string using specified code page.

@param ws Unicode string.

@param codePage Code page to be used in conversion.

@returns Converted ansi string.

}

 

function WideStringToString(const ws: WideString; codePage: Word): AnsiString;

var

l: integer;

begin

if ws = ''then

Result := ''else

begin

l := WideCharToMultiByte(codePage,

WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,

@ws[1], - 1, nil, 0, nil, nil);

SetLength(Result, l - 1);

if l > 1then

WideCharToMultiByte(codePage,

WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,

@ws[1], - 1, @Result[1], l - 1, nil, nil);

end;

end; { WideStringToString }

 

 

 

 

Взято с сайтаhttps://www.swissdelphicenter.ch/en/tipsindex

Code:

function StrToArrays(str, r: string; out Temp: TStrings): Boolean;

var

j: integer;

begin

if temp <> nilthen

begin

temp.Clear;

while str <> ''do

begin

j := Pos(r,str);

if j=0then

j := Length(str) + 1;

temp.Add(Copy(Str,1,j-1));

Delete(Str,1,j+length(r)-1);

end;

Result:=True;

end

else

Result:=False;

end;

 

function ArrayToStr(str: TStrings; r: string): string;

var

i: integer;

begin

Result:='';

if str = nilthen

Exit;

for i := 0to Str.Count-1do

Result := Result + Str.Strings[i] + r;

end;

 

 

 

 

 

Взято с https://delphiworld.narod

Более подробно ищите в хелпе Delphi по словам "Variant" и "TVarData"...

 

Code:

 

function ToString(Value: Variant): String;

begin

case TVarData(Value).VType of

varSmallInt,

varInteger : Result := IntToStr(Value);

varSingle,

varDouble,

varCurrency : Result := FloatToStr(Value);

varDate : Result := FormatDateTime('dd/mm/yyyy', Value);

varBoolean : if Value then Result := 'T'else Result := 'F';

varString : Result := Value;

else Result := '';

end;

end;

 

Использование:

Code:

ShowMessage(ToString(10.87));

ShowMessage(ToString(10));

 

 

или

 

Code:

var

V1 : Double;

V2 : Integer;

V3 : TDateTime;

V4 : Boolean;

 

begin

...

 

ShowMessage(ToString(V1)); // Double a String

ShowMessage(ToString(V2)); // Integer a String

ShowMessage(ToString(V3)); // DateTime a String

ShowMessage(ToString(V4)); // Boolean a String

end;

 

 

Так же можно пользоваться другими вариантами, например:

 

varCurrency : Result := CurrToStrF(Value ,ffFixed,CurrencyDecimals);

 

и

 

varDate: Result := DateToStr(Value);

 

 

https://delphiworld.narod

DelphiWorld 6.0

Автор: Rem

Code:

function BinStrToByte(a_sBinStr: string): byte;

var

i: integer;

begin

Result := 0;

for i := 1to length(a_sBinStr) do

Result := (Result shl1) or byte(a_sBinStr[i] = '1');

end;

 

function ByteToBinStr(a_bByte: byte): string;

var

i: integer;

begin

SetLength(Result, 8);

for i := 8downto1do

begin

Result[i] := chr($30 + (a_bByte and1));

a_bByte := a_bByte shr1;

end;

end;

 

// Примечание: вторая функция использует тот факт,

// что в таблице ANSI коды '0' = $30 и '1' = $31

 

 

 

 

 

Взято с https://delphiworld.narod

Code:

type

TEmployee = record

cNo: array [0..3] of Char;

cName: array [0..7] of Char;

end;

PEmployee = ^TEmployee;

 

procedure ParseData;

const

sData = '0001Mosquito';

var

sNo, sName: string;

begin

with PEmployee(Pointer((@sData)^))^ do

begin

sNo := cNo; // sNo = '0001'

sName := cName; // sName = 'Mosquito'

end

end;

 

 

 

https://delphiworld.narod

DelphiWorld 6.0