Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Файлы Delphi [XP]


Страницы:   1 2 3

Tatb9na ©   (2008-12-15 01:06:00) 

добрый вечер!
помогите начинающему!
ниже задание (все сделано), осталось реалтзовать проверку при открытие файла на нходящиеся в нем данные. типа данные д.б. только числовые и также при сохранении.
Приложение должно выводить на экран значения всех компонентов выбранного пользователем файла, а также вычислять и выводить на экран одну из следующих характеристик:
• количество чисел в файле;
• среднее арифметическое этих чисел;
• количество положительных чисел;
• количество четных чисел;
• максимальное значение.
Выбор файла должен осуществляться с помощью стандартного окна диалога.
Выбор характеристики должен осуществляться с помощью списка.


clickmaker   (2008-12-15 14:16:00) [41]

> [18] Tatb9na ©   (15.12.08 14:09)

если стоит задача при любом неверном символе прекратить расчет, то да - try/except всего цикла
если задача - хоть что-то расчитать, даже при наличии в файле мусора, то [17]


Tatb9na   (2008-12-15 14:10:00) [42]

в файле может содержаться инфа след вида:
1 2 3 4 5 6 7
 8 9  10 11
12 13 14 15 16 17
18 19 20 21 22


Tatb9na   (2008-12-15 14:09:00) [43]

AssignFile(g,OD.FileName);
reset(f);
while not  eof(f)   do
       begin
       read(f,sss);
       id:=strtoint(sss);
       ir[i]:=id;
       inc(id);
    end;
  CloseFile(f);

а вот так можно и заключит все в блок try expect  с обработкой класса исключит ситуации:  EConvertError


clickmaker   (2008-12-15 14:04:00) [44]

if TryStrToInt(S, val) then
 ir[i] := val
else
 пропустить или выдать сообщение, что файл неверного формата


Сергей М.   (2008-12-15 14:01:00) [45]

Приведи фрагмент "правильного" содержимого файла ..


Tatb9na   (2008-12-15 13:55:00) [46]

integer


Сергей М.   (2008-12-15 13:46:00) [47]


> в массив ir [i]


Массив данных какоготипа - целых или вещественных чисел ?


Tatb9na   (2008-12-15 13:43:00) [48]

в массив ir [i]


Сергей М.   (2008-12-15 13:28:00) [49]


> не могу понять как сделать проверку


А куда ты складываешь прочитанные из файла "числа" ?


{RASkov}   (2008-12-15 13:26:00) [50]

StrToInt{Def}


Tatb9na   (2008-12-15 13:22:00) [51]

не принимают у меня по причине того, если в файле какая-нит ьбуква, то все вычисления не работаают и  я не могу понять как сделать проверку.
далее я считываю файл в массив типа integer:

AssignFile(g,OD.FileName);
reset(f);
while not  eof(f)   do
       begin
       read(f,ir[i]);
       inc(i);
    end;
  CloseFile(f);

и если не все числа он должен выдать ошибку. в -общем я запуталась уже трындец как.


{RASkov}   (2008-12-15 13:07:00) [52]

> [7] Tatb9na ©   (15.12.08 13:00)

И зачем все это шаманство? Да еще с таким форматированием :(
Вот тоже самое:
procedure TForm1.Button3Click(Sender: TObject);
begin
 with TOpenDialog.Create(nil) do try
  if Execute then try
   Memo1.lines.LoadFromFile(FileName);
  except
   ShowMessage('Невозможно считать данные из файла: '+FileName);
  end;
 finally
  Free;
 end;
end;


Сергей М.   (2008-12-15 13:06:00) [53]


> Файл текстовый


Ну так и грузи его сразув Мемо, раз он у тебя текстовый.


Tatb9na   (2008-12-15 13:00:00) [54]

Файл текстовый...
открываю файл вот так:
procedure TForm1.Button3Click(Sender: TObject);
Var

a,b,c: string;
s2: string;
//a  : array of string;
err1,err2: integer;
i,j: integer;
begin
  i:=0;
 OD.Options:=OD.Options+[OfFileMustExist, OfPathMustExist];
 If OD.Execute
      then
      begin
       AssignFile(f,OD.FileName);
     {$I-}
     Reset(f);
     Err1:=IOResult;
     Readln(f,s2);
     err2:=IOResult;
     If (err1=0) and (err2=0)
         then
           begin
           Memo1.Lines.LoadFromFile(OD.FileName);

           end
     else
     ShowMessage('Невозможно считать данные из файла' +OD.FileName);
     CloseFile(f);
     {$I+}

     end;        end;


{RASkov}   (2008-12-15 01:48:00) [55]

> [5] Германн ©   (15.12.08 01:41)

Я не люблю обманщиков :( И тем более не люблю хитро-вывернутых....
Если не приведет никаких своих примеров, проб.... не ждать ей(му) от меня помощи...)


Германн   (2008-12-15 01:41:00) [56]


> {RASkov} ©   (15.12.08 01:27) [4]
>
> Эх... Татьяна... Татьяна...:) Показывай как записывала и
> как читаешь файлы...
>

Да ничего он не записывал и не считывал. Максимум он только "выбрал файл с помощью стандартного диалога".


{RASkov}   (2008-12-15 01:27:00) [57]

Эх... Татьяна... Татьяна...:) Показывай как записывала и как читаешь файлы...


Германн   (2008-12-15 01:26:00) [58]


> (все сделано), осталось реалтзовать проверку при открытие
> файла на нходящиеся в нем данные

Тогда ответь сначала на два вопроса.
1. Какой тип файла?
2. Что есть "число" в твоём понимании?


{RASkov}   (2008-12-15 01:16:00) [59]

> типа данные д.б. только числовые

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


{RASkov}   (2008-12-15 01:11:00) [60]

> осталось реалтзовать проверку при открытие файла на нходящиеся в нем данные

Если остально все сделал, то тут-то в чем запнулся?


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо