Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Delphi .NET
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #3  
Старый 05.06.2010, 07:48
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,107
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от OnzMill
попонятние изложи суть

Ну и чего тут непонятного. Есть дробные числа, записанные в виде строки через пробел. Надо удалить в них ведущие (незначащие) нули, кроме последнего, если он перед точкой (т.е. число < 1).

Решение. Преобразуем массив (видимо в массиве символы) в список строк (с ними удобнее работать) и далее убираем все ведушие нули.

Код:
// Массив в строку сам переведешь.
function ProcessNumberArray(S : String) : String;
var
  L : TStringList;
  Buf : String;
  Idx, I : Integer;
begin
  // "Пилим" на строки
  L := TStringList.Create;
  Idx := Pos(' ',S);
  While Idx > 0 Do
    Begin
      Buf := Copy(S,1,Idx-1);
      S := Copy(S,Idx+1,Length(S)-Idx+1);
      If Buf <> '' Then L.Add(Buf);
      Idx := Pos(' ',S);
    End;
  If S <> '' Then L.Add(S);

  // Удаляем все лишнее
  For I := 0 To L.Count-1 Do
    Begin
      Buf := L[i];
      While (Length(Buf) > 1) And (Buf[1] = '0') And (Buf[2] <> '.') Do
        Buf := Copy(Buf,2,Length(Buf)-1); // можно через delete
      L[i] := Buf;
    End;

  // Собираем результат
  Result := '';
  For I := 0 To L.Count-1 Do
    Begin
      If Result <> '' Then Result := Result + ' ';
      Result := Result + L[i];
    End;

  // Чистим за собой...
  L.Free;
end;
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:49.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025