![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
В поток записана последовательность целых чисел. Найти минимум и максимум и поменять их местами, не используя дополнительных потоков.
Начала я с того, что попыталась сосчитать первое число, чтоб было с чем сравнивать... Проблема в том, что если в файле одно число - то оно фиксируется и выводиться (в компонент Memo) как надо, но если больше - приложение вылетает с ошибкой " '1-е число из файла' is not a valid integer value".. структура файла: 11 22 56 ... и т.д Объясните, как исправить, чтоб отработало без ошибок?
procedure TForm1.Convert;
var
i, j, k: Word;
c: Char;
l,numb,min,max: Integer;
str:string;
f: Boolean;
S: TStream; // переменная потокового типа
begin
S := TFileStream.Create(FName, fmOpenReadWrite);
//загружаем в поток типа FileStream содержимое файла FName
//тело алгоритма
with S do
begin
Position := 0; // установка указателя потока в начало
i := 0;
k := Size; // в k - размер потока в байтах
Read(c,1);
j:=1;
while (c<>#10)and(i<=k-1) do
begin
inc(i);
inc(j);
str:=str+c;
read(c,1);
end;
min:=StrToInt(str);
memo1.Lines.Add(IntToStr(min));
end
end;
Сообщение отредактировано: 18192123 - 24.04.2008 14:14 |
![]() ![]() |
![]() |
Текстовая версия | 8.08.2025 9:37 |