GVKun编程网logo

VB Split 函数在 Delphi 中的不完全实现(split函数在vb中的用法)

6

如果您想了解VBSplit函数在Delphi中的不完全实现的相关知识,那么本文是一篇不可错过的文章,我们将对split函数在vb中的用法进行全面详尽的解释,并且为您提供关于.Delphi7升级到Del

如果您想了解VB Split 函数在 Delphi 中的不完全实现的相关知识,那么本文是一篇不可错过的文章,我们将对split函数在vb中的用法进行全面详尽的解释,并且为您提供关于.Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结、BcdDivide函数在Delphi XE和XE2中的行为不同、Delphi IsPathDelimiter、delphi string.split 按照任意字符串分割语句的有价值的信息。

本文目录一览:

VB Split 函数在 Delphi 中的不完全实现(split函数在vb中的用法)

VB Split 函数在 Delphi 中的不完全实现(split函数在vb中的用法)

.Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结

.Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结

总结

以上是小编为你收集整理的.Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

BcdDivide函数在Delphi XE和XE2中的行为不同

BcdDivide函数在Delphi XE和XE2中的行为不同

FmtBcd.pas已经在Delphi XE2中进行了大量的修改。在我的一个项目中,我有一个case对两个Bcd值使用除法运算,但两个版本产生不同的结果。在最坏的情况下,Delphi XE2可能会抛出一个Bcd溢出错误。

示例:在Delphi XE2控制台应用程序中运行以下代码:

var A,B,C,D: TBcd;
begin
  A := StrToBcd('1');
  B := StrToBcd('3');
  BcdDivide(A,C);
  WriteLn(BcdToStr(C));

  try
    BcdMultiply(C,D);
    WriteLn(BcdToStr(D));
  except
    on E: Exception do
      WriteLn(E.Message);
  end;

  ReadLn;
end.

以上的输出将是:

0.333333333333333333333333333333333333333333333333333333333333333
BCD overflow

变量C包含具有63个小数位特异性的Bcd值。对变量C执行第二个BcdMultiply操作将导致Bcd溢出错误。

但是,在Delphi XE中运行相同的代码会产生以下结果,没有任何异常提示:

0.3333333333
0.11111111108888888889

任何人都可以建议一个最佳实践的方法来解决这个问题?

解决方法

问题中的代码在XE2更新4中产生预期的输出。请注意,更新3产生错误的输出,因此清楚地,更新4到达修正。此外,XE3产生期望的输出。

Delphi IsPathDelimiter

Delphi IsPathDelimiter

总结

以上是小编为你收集整理的Delphi IsPathDelimiter全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

delphi string.split 按照任意字符串分割语句

delphi string.split 按照任意字符串分割语句

delphi string.split 按照任意字符串分割语句

 

1、就是把一个指定的字符串用指定的分割符号分割成多个子串,放入一个 TStringList 中
function ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: PChar;
 Strings: TStrings): Integer;
比如要把 ''abc,defg,hijkl''; 按照逗号'',''分割开:
var
 Res: TStringList;
 Count: Integer;
begin
 s := ''abc,defg,hijkl'';
 Res := TStringList.Create;
 Count := ExtractStrings(['',''], [], PChar(s), Res);
 ShowMessage(''共分割出 '' + IntToStr(Count) + '' 个子串'');
 ShowMessage(Res.Text);
 Res.Free;
end; 

2、Split函数(自建)

var
  I: Integer;
  S: string;
  A: TArray<string>;
begin
  S := ''AAA分割bbb分割ccc'';
  A := S.Split([''分割'']);
  for I := 0 to High(A) do
    ShowMessage(A[I]);
end;

 

输出结果为:

AAA

BBB

CCC

 

var

  str: string;
  arr: TArray<string>;
begin
  str := ''A-1,B-2,,,C-3,D-4'';

  arr := str.Split(['','']);                                   // arr[0] = A-1; Length(arr) = 6
  arr := str.Split(['',''], TStringSplitOptions.ExcludeEmpty); // 忽略空项; Length(arr) = 4
  arr := str.Split(['',''], 2);                                // 只提取前 2

  arr := str.Split(['','', ''-''], ExcludeEmpty); //arr[0] = A; Length(arr) = 8

  arr := str.Split(['',,,''], None);            // 分隔符可以是一个字符串数组
end;

今天关于VB Split 函数在 Delphi 中的不完全实现split函数在vb中的用法的介绍到此结束,谢谢您的阅读,有关.Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结、BcdDivide函数在Delphi XE和XE2中的行为不同、Delphi IsPathDelimiter、delphi string.split 按照任意字符串分割语句等更多相关知识的信息可以在本站进行查询。

本文标签: