Удаление ведущих нулей из строки delphi
Delphi 7
Как удалить ведущие нули в строке delphi?
Пример:
00000004357816
function removeLeadingZeros(ValueStr: String): String
begin
result:=
end;
Ответы
Ответ 1
function removeLeadingZeros(const Value: string): string;
var
i: Integer;
begin
for i := 1 to Length(Value) do
if Value[i]<>'0' then
begin
Result := Copy(Value, i, MaxInt);
exit;
end;
Result := '';
end;
В зависимости от точных требований вы можете обрезать пробелы. Я не сделал этого здесь, так как в вопросе не упоминался.
Обновление
Я исправил ошибку, указанную Сергом в исходной версии этого ответа.
Ответ 2
Код, который правильно удаляет ведущие нули из "000" -подобных строк:
function TrimLeadingZeros(const S: string): string;
var
I, L: Integer;
begin
L:= Length(S);
I:= 1;
while (I < L) and (S[I] = '0') do Inc(I);
Result:= Copy(S, I);
end;
Ответ 3
Вероятно, не самый быстрый, но это однострочный; -)
function RemoveLeadingZeros(const aValue: String): String;
begin
Result := IntToStr(StrToIntDef(aValue,0));
end;
Работает только для чисел внутри диапазона Integer.
Ответ 4
Используйте JEDI Code Library, чтобы сделать это:
uses JclStrings;
var
S: string;
begin
S := StrTrimCharLeft('00000004357816', '0');
end.