Работа со строками
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
- Подробности
- Родительская категория: Работа со строками
- Категория: Преобразования строк из и в другие типы
Страница 9 из 21