|
Вопрос # 278/ вопрос решён / |
|
Здравствуйте.
Как можно определить количество заполненных строк компонента StringGrid1?
Сколько разрядов в стандартной записи вещественного числа? И ещё назовите, пожалуйста, стандартную функцию с ее параметрами для преобразования вещественного числа в строку с указанием формата записи числа.
С уважением, Сергей Анатольевич.
 |
Вопрос задал: Полушин Сергей Анатольевич (статус: Посетитель)
Вопрос отправлен: 21 января 2007, 21:56
Состояние вопроса: решён, ответов: 2.
|
Ответ #1. Отвечает эксперт: Вадим К
>>Как можно определить количество заполненных строк компонента StringGrid1?
А что же сложного? Для начала определимся, что такое "заполненая строка"
для этого напишем функцию
function LineFull(sg:TStringGrid,l:integer):boolean;
var i:integer;
begin
result:=false;
for i:=0 to sg.ColCount-1 do
if Trim(sg.Cells[i,l])='' then exit;
result:=true;
end;
Я предположил, что заполненая строка не должна содержать незаполненых строк. ячейки с одними пробелами считаются пустыми.
Теперь фунцция, которая считает количество заполненых строк.
functio CountFullLine(sg:TStringGrid):integer;
var i:integer;
begin
result:=0;
for i:=0 to sg.RowCount-1 do
if LineFull(sg,i) then inc(result);
end;
Вызываем так count:=CountFullLine(StringGrid1);
------------
>>Сколько разрядов в стандартной записи вещественного числа?
Всё зависит от типа переменной: Single(около 7), Extendet(18),Double(15). Но ответить точно на этот вопрос нельзя. Нельзя в десятичной системе счисления, но можно в двоичной. Достаточно посмотреть в хелпе, скоко розрядов отводиться под мантису. Просто поищите в хелпе по словам Real Double. Там всё есть!
----------------
>>И ещё назовите, пожалуйста, стандартную функцию с ее параметрами для преобразования вещественного числа в строку с указанием формата записи числа.
Как не странно, это
function FloatToStrF(Value: Extended; Format: TFloatFormat; Precision: Integer; Digits: Integer): string; overload;
первый параметр собственно само число.
второй - константа, которая указывает способ форматирования числа ffGeneral, ffExponent, ffFixed, ffNumber, ffCurrency
третий и четвёртый указывают сколько чисел отвести под дробную часть и под число в целом.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 21 января 2007, 22:42
Оценка за ответ: 5
|
Ответ #2. Отвечает эксперт: Николай Рубан
1) Как можно определить количество заполненных строк компонента StringGrid1?
Вот процедура:
procedure TForm1.BitBtn1Click(Sender: TObject);
var i,j,kol,rez:integer;
b:boolean;
begin
kol:=0;//количество НЕ заполненных строк
with StringGrid1 do
for i:=0 to RowCount-1 do
begin
b:=true;
for j:=0 to RowCount-1 do
if Cells[j,i]<>'' then
begin b:=false; break; end;
if b then inc(kol);
end;
rez:=StringGrid1.ColCount-1-kol;//количество заполненных строк
end;
2) И ещё назовите, пожалуйста, стандартную функцию с ее параметрами для преобразования вещественного числа в строку с указанием формата записи числа.
Рекомендую Вам пользоваться функцией Format().
function Format(const Format: string; const Args: array of const) : string;
Первым параметром функции выступает форматирующая строка. Это обычная текстовая строка, но в ней на нужных местах стоят специальные символы, которые определяют, какие и как туда будут подставлены параметры.
Второй параметр функции Format называется списком аргументов. Он и содержит "вставляемые" в форматирующую строку параметры. Обратите внимание, что этот открытый массив имеет тип array of const, и в нем может передаваться переменное число разнотипных параметров.
Более подробно о параметрах и возможностях функции можно прочитать по ссылкеhttp://psf.grsu.by/UchProc/konspekt/delphi/ch05/ch03.
Удачи!!!
 |
Ответ отправил: Николай Рубан (статус: 10-ый класс)
Время отправки: 21 января 2007, 22:49
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 0.
31 января 2011, 19:26: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|