Консультация № 167197
13.05.2009, 16:56
0.00 руб.
0 2 1
Уважаемые эксперты, помогите ответить на вопросы по следующей задаче:заданы сведения о сотрудниках организации- фамилия, заработная плата. Количество сведений любое.Сохранить сведения в файле. Прочитать из файла по запросу и определить среднюю заработную плату всех сотрудников организации. Предусмотреть дополнение сведений и их исправление.
1. Создайте структуру данных типа "Запись" для обработки требуемых сведений.
2. Объявите типизированный файл для сохранения данных созданного типа.
3. Как можно найти запись в файле по ее номеру.
4. С помощью какой функции можно определить количествто заполненных строк компонента StringGrid.. Какое условие позволит определеить количество заполненных строк.
5.Каким образом открывать только текущий каталог, в котором находится программа.
Я думаю, для вас они довольно простые. Заранее спасибо.

Обсуждение

Неизвестный
13.05.2009, 21:20
общий
это ответ
Здравствуйте, Vlad9240!

1. Структуру описать можно так:
Код:

type TSotrInfo=record
Surname: string[30];
Zarplata: real;
end;


2. Файл объявляем следующим образом:
var f: file of TSotrInfo;

3. Для перехода к записи с определенным номером существует функция Seek(f,RecordNumber) где, f - файл, RecordNumber - номер нужной записи. (Учтите также, что нумерация записей начинается с 0)

4. TStringGrid не имеет встроенного метода или свойства, позволяющих определить количество заполненных строк. Это можно сделать например описав такую функцию:
Код:

function CountFilledRows(Grid: TStringGrid): LongInt;
begin
Result:=0;
while (Result<Grid.RowCount) and (Grid.Cells[0,Result]<>'') do inc(Result);
end;

В качестве параметра она получает StringGrid, а возвращает количество заполненных строк до первой пустой (предполагаю, что строки заполняются последовательно).

А вот с пятым пунктом немного неясно, что вы имеете ввиду под
открывать только текущий каталог, в котором находится программа
Где открывать?
5
спасибо!
Неизвестный
14.05.2009, 20:33
общий
По 5 пункту можно использовать такую запись, чтобы получить каталог, из которого запущена программа:
ExtractFilePath(Application.ExeName)
Форма ответа